Skip to content

Commit e64b042

Browse files
authored
Merge pull request #232449 from miwithro/patch-234
Update workload-identity-overview.md
2 parents dd78ae1 + 6e64d24 commit e64b042

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

articles/aks/workload-identity-overview.md

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,50 +2,53 @@
22
title: Use an Azure AD workload identities (preview) on Azure Kubernetes Service (AKS)
33
description: Learn about Azure Active Directory workload identity (preview) for Azure Kubernetes Service (AKS) and how to migrate your application to authenticate using this identity.
44
ms.topic: article
5-
ms.date: 03/27/2023
5+
ms.date: 03/28/2023
66

77
---
88

9-
# Use Azure AD workload identity (preview) with Azure Kubernetes Service (AKS)
9+
# Use Azure AD workload identity with Azure Kubernetes Service (AKS)
1010

11-
Today with Azure Kubernetes Service (AKS), you can assign [managed identities at the pod-level][use-azure-ad-pod-identity], which has been a preview feature. This pod-managed identity allows the hosted workload or application access to resources through Azure Active Directory (Azure AD). For example, a workload stores files in Azure Storage, and when it needs to access those files, the pod authenticates itself against the resource as an Azure managed identity. This authentication method has been replaced with [Azure Active Directory (Azure AD) workload identities][azure-ad-workload-identity] (preview), which integrate with the Kubernetes native capabilities to federate with any external identity providers. This approach is simpler to use and deploy, and overcomes several limitations in Azure AD pod-managed identity:
12-
13-
- Removes the scale and performance issues that existed for identity assignment
14-
- Supports Kubernetes clusters hosted in any cloud or on-premises
15-
- Supports both Linux and Windows workloads
16-
- Removes the need for Custom Resource Definitions and pods that intercept [Azure Instance Metadata Service][azure-instance-metadata-service] (IMDS) traffic
17-
- Avoids the complicated and error-prone installation steps such as cluster role assignment from the previous iteration
11+
Azure AD Workload Identity leverages [Service Account Token Volume Projection](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#serviceaccount-token-volume-projection) giving pods the ability to use a Kubernetes identity (service account), to which a Kubernetes token is issued and [OIDC federation](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) which enables Kubernetes applications to access Azure cloud resources securely with Azure Active Directory based on annotated service accounts.
1812

1913
Azure AD workload identity works especially well with the Azure Identity client library using the [Azure SDK][azure-sdk-download] and the [Microsoft Authentication Library][microsoft-authentication-library] (MSAL) if you're using [application registration][azure-ad-application-registration]. Your workload can use any of these libraries to seamlessly authenticate and access Azure cloud resources.
2014

21-
This article helps you understand this new authentication feature, and reviews the options available to plan your migration phases and project strategy.
22-
23-
[!INCLUDE [preview features callout](./includes/preview/preview-callout.md)]
15+
This article helps you understand this new authentication feature, and reviews the options available to plan your project strategy and potential migration from Pod Identity.
2416

2517
## Dependencies
2618

2719
- AKS supports Azure AD workload identities on version 1.22 and higher.
2820

29-
- The Azure CLI version 2.40.0 or later. Run `az --version` to find the version, and run `az upgrade` to upgrade the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
21+
- The Azure CLI version 2.47.0 or later. Run `az --version` to find the version, and run `az upgrade` to upgrade the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
22+
23+
## Azure Identity SDK
3024

31-
- The `aks-preview` extension version 0.5.102 or later.
25+
The following client libraries are the **minimum** version required
3226

33-
- The following are the minimum versions of the [Azure Identity][azure-identity-libraries] client library supported:
27+
| Language | Library | Minimum Version | Example |
28+
|-----------|-----------|----------|----------|
29+
| Go | [azure-sdk-for-go](https://github.com/Azure/azure-sdk-for-go) | [sdk/azidentity/v1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-go/releases/tag/sdk/azidentity/v1.3.0-beta.1)| [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/azure-identity/go) |
30+
| C# | [azure-sdk-for-net](https://github.com/Azure/azure-sdk-for-net) | [Azure.Identity_1.5.0](https://github.com/Azure/azure-sdk-for-net/releases/tag/Azure.Identity_1.5.0)| [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/azure-identity/dotnet) |
31+
| JavaScript/TypeScript | [azure-sdk-for-js](https://github.com/Azure/azure-sdk-for-js) | [@azure/identity_2.0.0](https://github.com/Azure/azure-sdk-for-js/releases/tag/@azure/identity_2.0.0) | [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/azure-identity/node) |
32+
| Python | [azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python) | [azure-identity_1.7.0](https://github.com/Azure/azure-sdk-for-python/releases/tag/azure-identity_1.7.0) | [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/azure-identity/python) |
33+
| Java | [azure-sdk-for-java]() | [azure-identity_1.4.0](https://github.com/Azure/azure-sdk-for-java/releases/tag/azure-identity_1.4.0) | [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/azure-identity/java) |
3434

35-
* [.NET][dotnet-azure-identity-client-library] 1.5.0
36-
* [Java][java-azure-identity-client-library] 1.4.0
37-
* [JavaScript][javascript-azure-identity-client-library] 2.0.0
38-
* [Python][python-azure-identity-client-library] 1.7.0
35+
## Microsoft Authentication Library (MSAL)
36+
37+
The following client libraries are the **minimum** version required
38+
39+
| Language | Library | Image | Example | Has Windows |
40+
|-----------|-----------|----------|----------|----------|
41+
| Go | [microsoft-authentication-library-for-go](https://github.com/AzureAD/microsoft-authentication-library-for-go) | ghcr.io/azure/azure-workload-identity/msal-go | [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-go) | Yes |
42+
| C# | [microsoft-authentication-library-for-dotnet](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet) | ghcr.io/azure/azure-workload-identity/msal-net | [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-net/akvdotnet) | Yes |
43+
| JavaScript/TypeScript | [microsoft-authentication-library-for-js](https://github.com/AzureAD/microsoft-authentication-library-for-js) | ghcr.io/azure/azure-workload-identity/msal-node | [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-node) | No |
44+
| Python | [microsoft-authentication-library-for-python](https://github.com/AzureAD/microsoft-authentication-library-for-python) | ghcr.io/azure/azure-workload-identity/msal-python | [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-python) | No |
45+
| Java | [microsoft-authentication-library-for-java](https://github.com/AzureAD/microsoft-authentication-library-for-java) | ghcr.io/azure/azure-workload-identity/msal-java | [Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-java) | No |
3946

4047
## Limitations
4148

4249
- You can only have 20 federated identity credentials per managed identity.
4350
- It takes a few seconds for the federated identity credential to be propagated after being initially added.
4451

45-
## Language SDK examples
46-
- [Azure Identity SDK](https://azure.github.io/azure-workload-identity/docs/topics/language-specific-examples/azure-identity-sdk.html)
47-
- [MSAL](https://azure.github.io/azure-workload-identity/docs/topics/language-specific-examples/msal.html)
48-
4952
## How it works
5053

5154
In this security model, the AKS cluster acts as token issuer, Azure Active Directory uses OpenID Connect to discover public signing keys and verify the authenticity of the service account token before exchanging it for an Azure AD token. Your workload can exchange a service account token projected to its volume for an Azure AD token using the Azure Identity client library or the Microsoft Authentication Library.

0 commit comments

Comments
 (0)