You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: Use an Azure AD workload identities on Azure Kubernetes Service (AKS)
2
+
title: Use an Azure AD workload identity on Azure Kubernetes Service (AKS)
3
3
description: Learn about Azure Active Directory workload identity for Azure Kubernetes Service (AKS) and how to migrate your application to authenticate using this identity.
4
4
ms.topic: article
5
5
ms.custom: build-2023
6
-
ms.date: 08/18/2023
6
+
ms.date: 08/24/2023
7
7
---
8
8
9
9
# Use Azure AD workload identity with Azure Kubernetes Service (AKS)
@@ -29,36 +29,189 @@ In the Azure Identity client libraries, choose one of the following approaches:
29
29
- Create a `ChainedTokenCredential` instance that includes `WorkloadIdentityCredential`.
30
30
- Use `WorkloadIdentityCredential` directly.
31
31
32
-
The following table provides the **minimum** package version required for each language's client library.
32
+
The following table provides the **minimum** package version required for each language ecosystem's client library.
| C++ |[azure-identity-cpp](https://github.com/Azure/azure-sdk-for-cpp/blob/main/sdk/identity/azure-identity/README.md)| 1.6.0-beta.1 |[Link](https://github.com/Azure/azure-sdk-for-cpp/blob/main/sdk/identity/azure-identity/samples/workload_identity_credential.cpp)|
38
-
| Go |[azidentity](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity)| 1.3.0|[Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/azure-identity/go)|
† In the C++ library, `WorkloadIdentityCredential` isn't part of the `DefaultAzureCredential` authentication flow.
44
44
45
+
In the following code samples, the credential type will use the environment variables injected by the Azure Workload Identity mutating webhook to authenticate with Azure Key Vault.
| Go |[microsoft-authentication-library-for-go](https://github.com/AzureAD/microsoft-authentication-library-for-go)|`ghcr.io/azure/azure-workload-identity/msal-go:latest`|[Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-go)| Yes |
206
+
| Java |[microsoft-authentication-library-for-java](https://github.com/AzureAD/microsoft-authentication-library-for-java)|`ghcr.io/azure/azure-workload-identity/msal-java:latest`|[Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-java)| No |
207
+
| JavaScript |[microsoft-authentication-library-for-js](https://github.com/AzureAD/microsoft-authentication-library-for-js)|`ghcr.io/azure/azure-workload-identity/msal-node:latest`|[Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-node)| No |
208
+
| Python |[microsoft-authentication-library-for-python](https://github.com/AzureAD/microsoft-authentication-library-for-python)|`ghcr.io/azure/azure-workload-identity/msal-python:latest`|[Link](https://github.com/Azure/azure-workload-identity/tree/main/examples/msal-python)| No |
56
209
57
210
## Limitations
58
211
59
212
- You can only have 20 federated identity credentials per managed identity.
60
213
- It takes a few seconds for the federated identity credential to be propagated after being initially added.
61
-
-[Virtual nodes][aks-virtual-nodes] add on, based on the open source project [Virtual Kubelet][virtual-kubelet], is not supported.
214
+
-[Virtual nodes][aks-virtual-nodes] add on, based on the open source project [Virtual Kubelet][virtual-kubelet], isn't supported.
62
215
63
216
## How it works
64
217
@@ -96,7 +249,7 @@ If you've used [Azure AD pod-managed identity][use-azure-ad-pod-identity], think
96
249
97
250
### Service account annotations
98
251
99
-
All annotations are optional. If the annotation is not specified, the default value will be used.
252
+
All annotations are optional. If the annotation isn't specified, the default value will be used.
100
253
101
254
|Annotation |Description |Default |
102
255
|-----------|------------|--------|
@@ -115,12 +268,12 @@ All annotations are optional. If the annotation is not specified, the default va
115
268
116
269
### Pod annotations
117
270
118
-
All annotations are optional. If the annotation is not specified, the default value will be used.
271
+
All annotations are optional. If the annotation isn't specified, the default value will be used.
119
272
120
273
|Annotation |Description |Default |
121
274
|-----------|------------|--------|
122
275
|`azure.workload.identity/service-account-token-expiration`|Represents the `expirationSeconds` field for the projected service account token. It's an optional field that you configure to prevent any downtime caused by errors during service account token refresh. Kubernetes service account token expiry isn't correlated with Azure AD tokens. Azure AD tokens expire in 24 hours after they're issued. <sup>1</sup> |3600<br> Supported range is 3600-86400. |
123
-
|`azure.workload.identity/skip-containers`|Represents a semi-colon-separated list of containers to skip adding projected service account token volume. For example `container1;container2`. |By default, the projected service account token volume is added to all containers if the service account is labeled with `azure.workload.identity/use: true`. |
276
+
|`azure.workload.identity/skip-containers`|Represents a semi-colon-separated list of containers to skip adding projected service account token volume. For example,`container1;container2`. |By default, the projected service account token volume is added to all containers if the service account is labeled with `azure.workload.identity/use: true`. |
124
277
|`azure.workload.identity/inject-proxy-sidecar`|Injects a proxy init container and proxy sidecar into the pod. The proxy sidecar is used to intercept token requests to IMDS and acquire an Azure AD token on behalf of the user with federated identity credential. |true |
125
278
|`azure.workload.identity/proxy-sidecar-port`|Represents the port of the proxy sidecar. |8000 |
0 commit comments