From db832f9dc6ee5f9ab79078d62e6996fa4dafbe3f Mon Sep 17 00:00:00 2001 From: Paul Van Eck Date: Thu, 2 Apr 2026 01:49:52 +0000 Subject: [PATCH] [Identity] Fix kwarg default in DefaultAzureCredential The behavior of `workload_identity_credential_id` should match what is currently documented. Signed-off-by: Paul Van Eck --- sdk/identity/azure-identity/CHANGELOG.md | 2 ++ .../azure-identity/azure/identity/_credentials/default.py | 4 +++- .../azure-identity/azure/identity/aio/_credentials/default.py | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 686480a47a00..097934dd826b 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -8,6 +8,8 @@ ### Bugs Fixed +- `DefaultAzureCredential`'s `workload_identity_client_id` keyword argument no longer inherits the value of `managed_identity_client_id`. It now independently defaults to the `AZURE_CLIENT_ID` environment variable, matching the documented behavior. ([#46073](https://github.com/Azure/azure-sdk-for-python/pull/46073)) + ### Other Changes ## 1.25.3 (2026-03-12) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/default.py b/sdk/identity/azure-identity/azure/identity/_credentials/default.py index d44f5580ba8d..cb96575b1239 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/default.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/default.py @@ -157,7 +157,9 @@ def __init__(self, **kwargs: Any) -> None: # pylint: disable=too-many-statement managed_identity_client_id = kwargs.pop( "managed_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID) ) - workload_identity_client_id = kwargs.pop("workload_identity_client_id", managed_identity_client_id) + workload_identity_client_id = kwargs.pop( + "workload_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID) + ) workload_identity_tenant_id = kwargs.pop( "workload_identity_tenant_id", os.environ.get(EnvironmentVariables.AZURE_TENANT_ID) ) diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/default.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/default.py index f9a377d7c452..05fe0a0fae55 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/default.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/default.py @@ -140,7 +140,9 @@ def __init__(self, **kwargs: Any) -> None: # pylint: disable=too-many-statement managed_identity_client_id = kwargs.pop( "managed_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID) ) - workload_identity_client_id = kwargs.pop("workload_identity_client_id", managed_identity_client_id) + workload_identity_client_id = kwargs.pop( + "workload_identity_client_id", os.environ.get(EnvironmentVariables.AZURE_CLIENT_ID) + ) workload_identity_tenant_id = kwargs.pop( "workload_identity_tenant_id", os.environ.get(EnvironmentVariables.AZURE_TENANT_ID) )