diff --git a/sdk/identity/Azure.Identity.Broker/tests/DefaultAzureCredentialFactoryTests.cs b/sdk/identity/Azure.Identity.Broker/tests/DefaultAzureCredentialFactoryTests.cs index 3c8c4b954bdd..94a372bdc9c9 100644 --- a/sdk/identity/Azure.Identity.Broker/tests/DefaultAzureCredentialFactoryTests.cs +++ b/sdk/identity/Azure.Identity.Broker/tests/DefaultAzureCredentialFactoryTests.cs @@ -57,7 +57,7 @@ public void ValidateDefaultAzureCredentialAZURE_TOKEN_CREDENTIALS_Honored_WithBr Assert.IsTrue(chain.Any(cred => cred is VisualStudioCredential)); Assert.IsTrue(chain.Any(cred => cred is AzureDeveloperCliCredential)); Assert.IsTrue(chain.Any(cred => cred.GetType() == typeof(VisualStudioCodeCredential))); - Assert.IsFalse(chain.Any(cred => cred.GetType() == typeof(InteractiveBrowserCredential))); + Assert.IsTrue(chain.Any(cred => cred.GetType() == typeof(InteractiveBrowserCredential))); } else if (credSelection == Constants.ProdCredentials) { diff --git a/sdk/identity/Azure.Identity/CHANGELOG.md b/sdk/identity/Azure.Identity/CHANGELOG.md index 791f9a081219..1a742a90b772 100644 --- a/sdk/identity/Azure.Identity/CHANGELOG.md +++ b/sdk/identity/Azure.Identity/CHANGELOG.md @@ -9,6 +9,7 @@ ### Bugs Fixed - Fixed `AzureDeveloperCliCredential` hanging when the `AZD_DEBUG` environment variable is set by adding the `--no-prompt` flag to prevent interactive prompts ([#52005](https://github.com/Azure/azure-sdk-for-net/issues/52005)). +- `BrokerCredential` is now included in the chain when `AZURE_TOKEN_CREDENTIALS` is set to `dev` and the `Azure.Identity.Broker` package is installed. ### Other Changes diff --git a/sdk/identity/Azure.Identity/src/DefaultAzureCredentialFactory.cs b/sdk/identity/Azure.Identity/src/DefaultAzureCredentialFactory.cs index a049e1c0a183..f18fc463c6c2 100644 --- a/sdk/identity/Azure.Identity/src/DefaultAzureCredentialFactory.cs +++ b/sdk/identity/Azure.Identity/src/DefaultAzureCredentialFactory.cs @@ -38,14 +38,21 @@ public TokenCredential[] CreateCredentialChain() { if (_useDevCredentials) { - return - [ + var devCredentials = new List + { CreateVisualStudioCredential(), CreateVisualStudioCodeCredential(), CreateAzureCliCredential(), CreateAzurePowerShellCredential(), CreateAzureDeveloperCliCredential() - ]; + }; + + if (TryCreateDevelopmentBrokerOptions(out InteractiveBrowserCredentialOptions brokerOptions)) + { + devCredentials.Add(CreateBrokerCredential(brokerOptions)); + } + + return devCredentials.ToArray(); } else if (_useProdCredentials) { @@ -98,6 +105,10 @@ public TokenCredential[] CreateCredentialChain() { chain.Add(CreateManagedIdentityCredential()); } + if (!Options.ExcludeBrokerCredential && TryCreateDevelopmentBrokerOptions(out InteractiveBrowserCredentialOptions brokerOptions)) + { + chain.Add(CreateBrokerCredential(brokerOptions)); + } } if (!_useProdCredentials)