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
gladjohn/ga-confidential-extensibilityAzureAD/microsoft-authentication-library-for-dotnet:gladjohn/ga-confidential-extensibilityCopy head branch name to clipboard
gladjohn/ga-confidential-extensibilityAzureAD/microsoft-authentication-library-for-dotnet:gladjohn/ga-confidential-extensibilityCopy head branch name to clipboard
remove the experimental feature opt-in requirement from the dynamic certificate provider API
GA OnMsalServiceFailure, OnCompletion, and confidential-client OnBackgroundTokenRefreshCompleted
update confidential-client tests to exercise these APIs without calling WithExperimentalFeatures()
document that static WithCertificate(X509Certificate2, ...) overloads capture one certificate and direct externally managed, rotating, or invalidatable key-handle scenarios to the dynamic certificate provider
Microsoft.Identity.Client builds successfully across its standard target frameworks
Compatibility
no public API signatures changed, so no Public API baseline update is required
the expected Microsoft.Identity.Web sibling checkout at D:\source\microsoft-identity-web was not present; searched APIs: WithCertificate, OnMsalServiceFailure, OnCompletion, and OnBackgroundTokenRefreshCompleted
Remove the experimental feature opt-in from the dynamic certificate and confidential client callback APIs, and update unit coverage to exercise them without experimental features enabled.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e29c0e10-6991-478c-a158-1d97f2a8d75f
Guide callers with externally managed, rotating, or invalidatable certificate handles from the static certificate overloads to the dynamic provider API.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e29c0e10-6991-478c-a158-1d97f2a8d75f
Updated remarks to clarify certificate handling and token request process.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
The GA dynamic-provider overload still silently ignores CertificateOptions.AssociateTokensWithCertificate. Unlike the static overload, this method never sets a certificate-derived cache-key component, and AcquireTokenForClientParameterBuilder.Create only partitions the cache when CertificateIdToAssociateWithToken is populated. Consequently, after rotation a cache hit can return a token associated with the previous certificate even when this option is true. Please either resolve/use the current serial for cache reads and writes or reject this option for dynamic providers until it is supported.
Remove doubled carriage returns introduced in the certificate remarks so documentation generation succeeds across CI targets.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e29c0e10-6991-478c-a158-1d97f2a8d75f
This overload stores the supplied X509Certificate2 reference as soon as WithCertificate is called; Build() does not capture or clone it. Saying capture happens at build time can mislead callers about when an externally managed handle must remain valid, and “each token request” also includes cache hits where the dynamic provider is not invoked. Match the precise wording used by the overload above.
This issue also appears on line 158 of the same file.
Clarify that all static certificate overloads capture the supplied certificate when called and that the dynamic provider runs only for network token requests.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e29c0e10-6991-478c-a158-1d97f2a8d75f
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
OnMsalServiceFailure,OnCompletion, and confidential-clientOnBackgroundTokenRefreshCompletedWithExperimentalFeatures()WithCertificate(X509Certificate2, ...)overloads capture one certificate and direct externally managed, rotating, or invalidatable key-handle scenarios to the dynamic certificate providerTesting
Microsoft.Identity.Test.Unitsuite: .NET 8 — 2,383 passed, 25 skipped; .NET Framework 4.8 — 2,388 passed, 22 skippedMicrosoft.Identity.Clientbuilds successfully across its standard target frameworksCompatibility
D:\source\microsoft-identity-webwas not present; searched APIs:WithCertificate,OnMsalServiceFailure,OnCompletion, andOnBackgroundTokenRefreshCompletedassistance: agentic-cli
type: feature
agent-tool: copilot-cli
agent-model: gpt-5.6-sol
work-item: AB#n/a