1.62.0 (2026-08-20)
Features Added
- Added experimental (
SCME0002)AzureCredentialResolver.Defaultpublic static property so standalone callers can share the process-wide credential cache used by DI-resolved paths. AzureCredentialResolvernow resolves everyChainedTokenCredentialSources[]entry through the active resolver chain, so any registeredCredentialResolver(built-in, broker, or third-party) can claim or override an entry. Entries are constructed as chained, so transient failures surface asCredentialUnavailableExceptionand the chain falls through.
Breaking Changes
AzureCredentialResolvernow resolves a top-level single source (e.g.CredentialSource: AzureCliCredential) to the concrete credential type (AzureCliCredential) rather than aDefaultAzureCredentialwrapper. Construction is unchanged (it uses the sameDefaultAzureCredentialFactoryhelpers) — only the returned type differs; callers usingCredentialSettings.TokenProvideras aTokenCredentialare unaffected.AzureCredentialResolverno longer claims top-levelBrokerCredentialsections (canonical name orbrokeralias); they now requireBrokerCredentialResolverfromAzure.Identity.Broker1.7.0+ (e.g. viaAddBrokerCredentialResolver()).BrokerCredentialentries nested inside aChainedTokenCredentialcontinue to resolve. Note: ifBrokerCredentialResolverfromAzure.Identity.Broker1.7.0 is registered ahead ofAzureCredentialResolver, a nestedBrokerCredentialentry is currently built as non-chained, so it may surfaceAuthenticationFailedExceptionand abort the chain instead of falling through to the next entry. Without a broker resolver registered, the built-in chain path builds the broker entry as chained (correct fall-through). A futureAzure.Identity.Brokerrelease will make its resolver honor chained semantics for nested entries.