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
`WorkloadIdentityCredential` supports an opt-in identity binding mode to work around [Entra ID's limit on federated identity credentials (FICs)](https://learn.microsoft.com/entra/workload-id/workload-identity-federation-considerations#federated-identity-credential-considerations) per managed identity. When enabled via the `IsAzureKubernetesTokenProxyEnabled ` option, the credential redirects token requests to an AKS-provided proxy that handles the FIC exchange centrally, allowing multiple pods to share the same identity without hitting FIC limits.
113
-
114
-
**Note:** This feature is only available when using `WorkloadIdentityCredential` directly. It is not supported by `DefaultAzureCredential` or `ManagedIdentityCredential`.
When enabled, the credential reads these environment variables (typically configured by AKS):
126
-
127
-
*`AZURE_KUBERNETES_TOKEN_PROXY` - Base HTTPS URL for the proxy endpoint
128
-
*`AZURE_KUBERNETES_CA_FILE` - Path to PEM bundle with proxy CA certificates
129
-
*`AZURE_KUBERNETES_CA_DATA` - PEM-encoded CA bundle (mutually exclusive with `AZURE_KUBERNETES_CA_FILE `)
130
-
*`AZURE_KUBERNETES_SNI_NAME` - TLS Server Name Indication (optional)
131
-
132
-
The credential validates the configuration at construction time and throws `InvalidOperationException` if the configuration is invalid or incomplete.
133
-
134
-
### Migration from ManagedIdentityCredential
135
-
136
-
If you're currently using `ManagedIdentityCredential` for workload identity in AKS and need to use identity binding mode, migrate to `WorkloadIdentityCredential`:
By default, credentials authenticate to the Microsoft Entra endpoint for the Azure Public Cloud. To access resources in other clouds, such as Azure US Government or a private cloud, use one of the following solutions:
@@ -181,7 +142,7 @@ Not all credentials require this configuration. Credentials that authenticate th
181
142
|-|-|-|
182
143
|[`EnvironmentCredential`][ref_EnvironmentCredential]|Authenticates a service principal or user via credential information specified in [environment variables](#environment-variables).||
183
144
|[`ManagedIdentityCredential`][ref_ManagedIdentityCredential]|Authenticates the managed identity of an Azure resource.|[user-assigned managed identity][uami_doc]<br>[system-assigned managed identity][sami_doc]|
184
-
|[`WorkloadIdentityCredential`][ref_WorkloadIdentityCredential]|Supports [Microsoft Entra Workload ID](https://learn.microsoft.com/azure/aks/workload-identity-overview) on Kubernetes. Supports [identity binding mode](#identity-binding-mode-workloadidentitycredential) to work around FIC limits in AKS.||
145
+
|[`WorkloadIdentityCredential`][ref_WorkloadIdentityCredential]|Supports [Microsoft Entra Workload ID](https://learn.microsoft.com/azure/aks/workload-identity-overview) on Kubernetes.||
[System.ObsoleteAttribute("This option requires additional dependencies on Microsoft.Identity.Client.Desktop and is no longer supported. Consider using brokered authentication instead")]
[System.ObsoleteAttribute("This option requires additional dependencies on Microsoft.Identity.Client.Desktop and is no longer supported. Consider using brokered authentication instead")]
internalconststringTenantIdDiscoveredAndNotUsedEventMessage="A token was request for a different tenant than was configured on the credential, but the configured value was used since multi tenant authentication has been disabled. Configured TenantId: {0}, Requested TenantId {1}";
51
48
internalconststringTenantIdDiscoveredAndUsedEventMessage="A token was requested for a different tenant than was configured on the credential, and the requested tenant id was used to authenticate. Configured TenantId: {0}, Requested TenantId {1}";
internalconststringServiceFabricManagedIdentityRuntimeConfigurationNotSupportedMessage="Service Fabric user assigned managed identity ClientId or ResourceId is not configurable at runtime.";
57
54
internalconststringManagedIdentitySourceAttemptedMessage="ManagedIdentitySource {0} was attempted. IsSelected={1}.";
58
55
internalconststringManagedIdentityCredentialSelectedMessage="Managed Identity source selected: {0} with ID: {1}";
59
-
internalconststringKubernetesProxyCaCertificateReloadSkippedMessage="Kubernetes proxy CA certificate reload skipped. Reason: {0}";
60
-
internalconststringKubernetesProxyCaCertificateReloadFailedMessage="Kubernetes proxy CA certificate read failed. Error: {0}";
61
-
internalconststringKubernetesProxyCaCertificateReloadedMessage="Kubernetes proxy CA certificate changed, handler will be reloaded.";
0 commit comments