Azure Identity Concepts

Understand the core principles and components of Azure Identity for secure access management.

Core Concepts of Azure Identity

Azure Identity is a comprehensive solution for managing identities and controlling access to your Azure resources. It leverages the power of Azure Active Directory (now Microsoft Entra ID) to provide robust security features.

1. Identities

An identity represents a user, application, or service that needs to access Azure resources. Azure Identity manages these identities and their credentials.

User Identities

These represent individual users. They can be:

Application Identities (Service Principals)

Applications and services need identities to access Azure resources programmatically. These are represented by Service Principals, which are identities for non-human actors.

Managed Identities

Managed Identities provide an identity for Azure services to use when connecting to other Azure services. They eliminate the need for developers to manage credentials.

Note: Managed Identities are the recommended approach for authenticating Azure services to other Azure services.

2. Authentication and Authorization

These are two distinct but related processes in securing access:

Authentication

This is the process of verifying who a user or service principal is. Azure Identity supports various authentication methods, including passwords, multi-factor authentication (MFA), certificates, and more.

Authorization

Once authenticated, authorization determines what actions an identity is allowed to perform on specific resources. This is managed through Azure Role-Based Access Control (RBAC).

3. Azure Role-Based Access Control (RBAC)

RBAC allows you to grant fine-grained access management to Azure resources. You can define roles that specify permissions and assign these roles to identities at various scopes (subscription, resource group, individual resource).

Roles

Roles are collections of permissions. Azure provides built-in roles (e.g., Owner, Contributor, Reader) and allows you to create custom roles.

Scopes

The scope at which access is granted. This can be at the management group, subscription, resource group, or resource level.

Role Assignments

The process of assigning a role to an identity at a specific scope. This is how you grant permissions.

Best Practice: Grant the least privilege necessary. Assign roles at the narrowest scope required to perform the task.

4. Credentials and Tokens

Azure Identity uses credentials to authenticate and security tokens to authorize access.

Credentials

These are secrets used to authenticate an identity. For applications, these can be client secrets or certificates. For users, they are typically passwords and MFA challenges.

Access Tokens

When an identity authenticates successfully, Azure AD issues an access token. This token contains claims about the identity and its permissions. Applications use this token to make authenticated requests to Azure services.

5. Azure SDKs and Identity Libraries

The Azure Identity client libraries simplify the process of authenticating your applications to Azure. They provide credential types that can automatically find and use the most appropriate credentials for your environment.

Credential Chain

The identity libraries abstract the complexity of finding credentials. They attempt to authenticate using a series of credential types in a predefined order, such as:


// Example of using Azure Identity library in C#
using Azure.Identity;
using Azure.Storage.Blobs;

// Credential chain attempts to authenticate automatically
TokenCredential credential = new DefaultAzureCredential();

// Use the credential to authenticate a BlobServiceClient
string blobStorageUri = "https://myaccount.blob.core.windows.net";
BlobServiceClient blobServiceClient = new BlobServiceClient(new Uri(blobStorageUri), credential);

Console.WriteLine("Successfully authenticated and created BlobServiceClient.");