Create a User Assgined Managed Identity

Previous blog post in the series: Introduction to Managed Identities Posts in this series: Introduction to Managed Identities Create a user-assigned Managed Identity Using Managed Identity with Azure SQL (coming soon) Machine to Machine authentication (coming soon) With the new Azure SDK Management Libraries I have had the requirement to create a user-assgined Identity. Unfortunately there is no easy way in the new SDK to do so. [Read More]

Getting rid of credentials with Managed Identities in Azure

Posts in this series: Introduction to Managed Identities Create a user-assigned Managed Identity Using Managed Identity with Azure SQL (coming soon) Machine to Machine authentication (coming soon) Introduction to Managed Identities A Managed Identity (MI), formerly known as Managed Service Identity (MSI), is a special Service Principal that is exclusively designed for Azure services. You can assign one or more identities to an Azure service and these Managed Identities can be used to access other Azure services within the Azure environment. [Read More]

Refreshing Access Tokens in ASP.NET Core

Client Credential Flow Client acquires Access Token from Authorization Server using ClientId Client Secret Audience GrantType Client sends Access Token to Resource Server Resource Server retrieves jwks.json ASP.NET Core takes care of caching the jwks.json. So only the first API request will be slow. Resource Server validates JWT Signature Resource Server checks expiration, permissions and so on Client receives Protected Resources Setup Auth0 for Machine-to-Machine Authentication https://auth0. [Read More]

Dependency Injection

Explained

A long time ago, I answered several questions on Stackoverflow about Dependency Injection. To get my blog started, I thought to reuse my given answers in this blog post. DIP means that you program against an abstraction. You invert the kind of a dependency from an implementation to an abstraction. IOC means that somebody else is responsible for getting the implementation for the given abstraction. Normally the consumer would use the new keyword to get a dependency. [Read More]