Repository navigation
Releases: AzureAD/microsoft-identity-web
Releases · AzureAD/microsoft-identity-web
Release list
4.16.0
What's Changed
- Add 4.15.0 release notes by Iarek Kovtunenko (@iarekk) in #4050
- Post-release 4.15.0: mark APIs shipped and bump version by Iarek Kovtunenko (@iarekk) in #4060
- Add Sidecar 1.1.2 changelog by Tanuj Sood (@soodt) in #4070
- Fix FIC telemetry enrichment during credential warm-up and assertion cache hits by Neha Bhargava (@neha-bhargava) in #4072
- Update agentic docs to cover current behavior by Avery-Dunn in #4077
- Bump the notsecurity group with 4 updates by Dependabot (@dependabot)[bot] in #4074
Full Changelog: 4.15.0...4.16.0
4.15.0
Federated credentials and proof of possession
- Federated credential token exchange derives cloud-specific audience and scope metadata from the authority host, with explicit overrides still supported. #3994
- The Entra Sidecar
/Validateendpoint accepts Signed HTTP Request proof-of-possession tokens for app-only client-credential flows. #4008 - Credential Guard key attestation is available through the optional
Microsoft.Identity.Web.KeyAttestationpackage andAddMicrosoftIdentityWebKeyAttestation()registration. #4004
Authentication and token acquisition
- EasyAuth app-token acquisition returns an app-only authentication result produced through client credentials. #4015
- Graph v4 credentials are attached only to destinations matching the configured absolute HTTPS origin; custom Graph proxy base URLs remain supported. #4012
Authorization and request validation
- OWIN web APIs require a non-empty recognized scope or role unless ACL-based authorization is explicitly enabled. #4006 #4009
- Explicitly configured missing scope or app-permission requirements now fail authorization. #4010
- Local redirect paths containing control characters are rejected. #4028
Entra Sidecar reliability and validation
- Invalid selected
AgentUserIdvalues return HTTP 400. #4011 - Automatic forwarded-header processing is rejected outside Development when
ForwardedHeaders_Enabled=true. #4018 - Non-local Host headers are rejected outside Development except on
/healthz. #4023 - Windows containers use
ContainerUser, and ACL authorization defaults are correctly applied to named bearer options. #4042
Dependency updates
Microsoft.Identity.ClientandMicrosoft.Identity.Client.KeyAttestation: 4.87.0 -> 4.90.0. #4003 #3994 #4052Microsoft.Identity.Abstractions: 12.6.0 -> 12.7.0. #4020 #3994
Full changelog: 4.14.2...4.15.0
4.14.2
Dependencies updates
- Bump the
Microsoft.IdentityModel.*(Wilson) version to 8.22.0. See #3986. - Fix the net8.0 crypto floor to use the patched
System.Security.Cryptography.Xml8.0.4 (and itsSystem.Security.Cryptography.Pkcs8.0.1 dependency) instead of over-bumping to the 9.0.18 servicing line (CVE-2026-47302, -47304, -50525, -50648). net9.0 (9.0.18) and net10.0 (10.0.10) are unchanged. See #3989.
4.14.0
New features
- Add
MicrosoftIdentityOptions.PartitionAppTokenCacheByAudienceto partition the app token cache by resource/audience. See #3979. - Expose MSAL's background token-refresh callback through Id.Web via
TokenAcquisitionExtensionOptions.OnBackgroundTokenRefreshCompleted. See #3973. - Add
MicrosoftIdentityOptions.UseFastUnboundedCache; stop short-circuiting the in-memory token cache serialization provider. See #3970. - OIDC FIC (
Microsoft.Identity.Web.OidcFIC) now supports mTLS token binding. See #3851.
Bug fixes
- Token binding: the CCA cache key now distinguishes a bound credential (
UseBoundCredential = true) from its unbound equivalent; the certificate-error retry path invalidates the cache entry for the actual request mode (bearer vs mTLS PoP). - Forward the OpenTelemetry tags enricher onto the inner FIC client-assertion leg. See #3968.
Dependencies updates
Microsoft.Identity.Client→ 4.87.0 (#3975)Microsoft.Identity.Abstractions→ 12.6.0 (#3976)System.Security.Cryptography.Xml/System.Security.Cryptography.Pkcs→ patched (CVE-2026-47302, -47304, -50525, -50648) (#3964)- notsecurity group: 1 update (#3965)
Full changelog: 4.13.2...4.14.0
4.13.2
What's Changed
- Apply reserved-header handling on the request-clone path and cover all X-MS-TOKEN- headers by Ignacio Inglese (@iNinja) in #3915
- Restore independent PR pipeline + pool-aware MI identity + net462/472 unit tests by Iarek Kovtunenko (@iarekk) in #3935
- Post-release 4.13.0: changelog and public API shipped move by Neha Bhargava (@neha-bhargava) in #3937
- Remove redundant 'Run unit tests' GitHub Action by Iarek Kovtunenko (@iarekk) in #3939
- Apply consistent redirect-URI validation on AccountController.SignIn by Ignacio Inglese (@iNinja) in #3940
- Fix duplicate logging of MsalUiRequiredException (in-repo copy of #3910) by Iarek Kovtunenko (@iarekk) in #3941
- Use MSAL's recent UserFIC API for agentic flows by Avery-Dunn in #3842
- Restore CustomizeHttpRequestMessage to run after the authorization header by Neha Bhargava (@neha-bhargava) in #3943
- Bump Microsoft.IdentityModel.Tokens.Saml from 5.7.0 to 8.19.1 by Dependabot (@dependabot)[bot] in #3909
- Revert #3909: keep OWIN Saml/WsFederation on 5.7.0 by Iarek Kovtunenko (@iarekk) in #3944
- Bump Microsoft.Identity.Abstractions from 12.4.0 to 12.5.0 by Neha Bhargava (@neha-bhargava) in #3947
- Add OnBeforeAuthHeaderCreation / OnAfterAuthHeaderCreation hooks to DownstreamApi by Neha Bhargava (@neha-bhargava) in #3942
- Update IdentityModelV5Version and SamlPackageVersion to 5.7.1 in proj… by Travis Walker (@trwalke) in #3950
- Rename retired MSALMSIV2 agent pool to MISEManagedIdentity by Gladwin Johnson VR (@gladjohn) with @Copilot in #3949
- Improve IDW10109 error handling for credential loading failures by Avery-Dunn in #3946
- Bump MSAL dependencies to 4.86.1 in central props by Gladwin Johnson VR (@gladjohn) with @Copilot in #3953
- Bump the notsecurity group with 3 updates by Dependabot (@dependabot)[bot] in #3954
Full Changelog: 4.13.0...4.13.2
4.13.0
What's Changed
- Categorize managed-identity E2E tests and exclude them from the PR build by Iarek Kovtunenko (@iarekk) in #3923
- Add more tests for TokenAcquisitionMetadata.ExpiresOn from AuthenticationResult by Neha Bhargava (@neha-bhargava) in #3904
- Test: consolidate MI E2E test onto shared Msal_Integration_tests UAMI by Ryan Auld (@RyAuld) in #3926
- docs: Credential architecture internals documentation by Gladwin Johnson VR (@gladjohn) in #3886
- Potential fix for code scanning alert no. 35: Missing cross-site request forgery token validation by Gladwin Johnson VR (@gladjohn) in #3929
- Register IAuthorizationHeaderProvider2 in DI by Neha Bhargava (@neha-bhargava) in #3927
- Bump Microsoft.Identity.Client to 4.86.0 by Neha Bhargava (@neha-bhargava) in #3931
- Split PR pipeline into independent net8 stages; add MI E2E stage on MSALMSIV2 by Iarek Kovtunenko (@iarekk) in #3933
- Run missing unit test projects in the ADO PR build by Iarek Kovtunenko (@iarekk) in #3934
- Revert PRs #3933 and #3934: restore single-job PR pipeline by Gladwin Johnson VR (@gladjohn) with @Copilot in #3936
Full Changelog: 4.12.2...4.13.0
4.12.2
Bug fixes
- Make the
Microsoft.Identity.Client.KeyAttestationdependency conditional on modern .NET (.NETCoreApp) targets. It transitively pulls the native-onlyMicrosoft.Azure.Security.KeyGuardAttestationpackage, which ships no .NET Framework/netstandard-compatible assets and broke NuGet restore for .NET Framework (packages.config) projects.Microsoft.Identity.Web.Certificatelessnow multi-targets, and .NET Framework consumers use thenetstandard2.0asset without this dependency. See #3894.
4.12.1
Bug fixes
- Preserve
ManagedIdentitywhen convertingAcquireTokenOptionstoTokenAcquisitionOptionsinTokenAcquirer. Previously theITokenAcquirer.GetTokenForAppAsync/GetTokenForUserAsyncpaths silently droppedManagedIdentityand fell back to the confidential-client path, breaking managed-identity mTLS PoP (e.g. MISE Native). See #3914.
Behavior changes
- Sidecar: outbound HTTP redirects suppressed by default. The sidecar no longer follows outbound HTTP redirects; a new opt-in
Sidecar:AllowOutboundRedirectsflag (defaultfalse) restores the previous behavior. See #3906. - Sidecar: per-request isolation of downstream API options. Downstream API options resolved from the singleton
IOptionsMonitorare now cloned per request (including freshExtraParameters/ExtraHeaderParameters/ExtraQueryParametersdictionaries), preventing request-scoped values from leaking across requests or racing under concurrency. See #3919.
Fundamentals
4.12.0
New features
- Implement
IAuthorizationHeaderProvider2(fromMicrosoft.Identity.Abstractions12.3.0) onDefaultAuthorizationHeaderProviderand the publicBaseAuthorizationHeaderProvider, exposing the metadata-richCreateAuthorizationHeaderInformation*surface (returningOperationResult) with binding-certificate propagation.DownstreamApiandMicrosoftIdentityMessageHandlernow preferIAuthorizationHeaderProvider2for mTLS PoP and soft-deprecate the bound-onlyIBoundAuthorizationHeaderProviderpath (kept as a fallback for source/binary compatibility). See #3899. - Populate
TokenAcquisitionMetadata.ExpiresOnonAcquireTokenResultfrom the MSALAuthenticationResult.ExpiresOnvalue. See #3905.
Bug fixes
- Finalize the
DownstreamApirequest (headers, query parameters, content, and customizations) before creating the authorization header, addingAuthorizationonly after signing so request-binding providers do not include it in their signed material. See #3902.
Dependencies updates
4.11.0
What's Changed
- Bump vitest from 3.2.4 to 4.1.0 in /tests/DevApps/SidecarAdapter/typescript by Dependabot (@dependabot)[bot] in #3836
- Bump MSAL.NET to 4.84.2 and align OWIN binding redirects by Gladwin Johnson VR (@gladjohn) with @Copilot in #3844
- docs(design): devex proposal for mTLS PoP on Managed Identity and FIC by Gladwin Johnson VR (@gladjohn) in #3832
- Prevent OpenIdConnectMiddlewareDiagnostics from logging sensitive values by Iarek Kovtunenko (@iarekk) in #3850
- Add MSI mTLS PoP support: pure MI + FIC-with-MI (impl for devex #3832) by Gladwin Johnson VR (@gladjohn) in #3839
- docs(design): devex proposal for Bearer tokens with bound credentials by Gladwin Johnson VR (@gladjohn) in #3833
- Add bound-credential support for Bearer tokens (cert + mTLS) by Gladwin Johnson VR (@gladjohn) in #3835
- Upgrade IdWeb Sidecar to .NET 10 (LTS) by Tanuj Sood (@soodt) in #3841
- MTLS Without Tokens Support - MicrosoftIdentityMessageHandler Support by Tom (@tlupes) in #3815
- fix: include isTokenBinding in CCA cache key to prevent bearer/PoP collision by Gladwin Johnson VR (@gladjohn) in #3867
- Test + doc: x-ms-tokenboundauth header for AKV mTLS PoP via ExtraHeaderParameters by Gladwin Johnson VR (@gladjohn) in #3864
- Add mTLS PoP Copilot skill (certificate, MSI, FIC) by Gladwin Johnson VR (@gladjohn) in #3872
- Fix CVE-2026-48109: Pin MessagePack to patched version 2.5.301 by Tanuj Sood (@soodt) in #3865
- Sidecar: gate agent identity parameters behind AllowOverrides by Ignacio Inglese (@iNinja) in #3871
- Bump System.Formats.Asn1 base version to 10.0.2 by Iarek Kovtunenko (@iarekk) in #3875
- Bump Microsoft.IdentityModel.* from 8.18.0 to 8.19.1 by Iarek Kovtunenko (@iarekk) in #3879
- Use IIdentityLogger for MSAL logging in TokenAcquisition and ManagedIdentityClientAssertion (#3820) by Neha Bhargava (@neha-bhargava) in #3880
- Update Microsoft.Identity.Abstractions to 12.2.0 and MSAL to 4.85.0 by Neha Bhargava (@neha-bhargava) in #3881
- Surface MSAL AuthenticationResultMetadata + exception details on AcquireTokenResult by Neha Bhargava (@neha-bhargava) in #3856
- Flow outgoing request to header providers via AcquireTokenOptions by Neha Bhargava (@neha-bhargava) in #3876
- Throw on Authority vs Instance/TenantId conflict (OIDC + MSAL parity) by Iarek Kovtunenko (@iarekk) in #3873
- Delete .github/workflows/evergreen.yml by Bogdan Gavril (@bgavrilMS) in #3803
- Add comprehensive authority configuration and precedence documentation by Jean-Marc Prieur (@jmprieur) with @Copilot in #3617
- Bump js-yaml from 4.1.1 to 4.2.0 in /tests/DevApps/SidecarAdapter/typescript by Dependabot (@dependabot)[bot] in #3862
- Move authority docs into docs/authority-configuration/ subfolder by Iarek Kovtunenko (@iarekk) in #3885
- Revert "Throw on Authority vs Instance/TenantId conflict (#3873)" by Iarek Kovtunenko (@iarekk) in #3888
- Update Microsoft.Identity.Client to 4.85.1 by Neha Bhargava (@neha-bhargava) in #3889
- Enable E2E test coverage on internal Azure DevOps pipelines by Gladwin Johnson VR (@gladjohn) in #3883
- Bump esbuild and tsx in /tests/DevApps/SidecarAdapter/typescript by Dependabot (@dependabot)[bot] in #3859
- Skip AcquireTokenWithMtlsPop test: AAD westus3 test slice returns Bearer by Neha Bhargava (@neha-bhargava) in #3892
New Contributors
- Iarek Kovtunenko (@iarekk) made their first contribution in #3850
- Tanuj Sood (@soodt) made their first contribution in #3841
Full Changelog: 4.10.0...4.11.0