Skip to content

Commit add88e9

Browse files
Copilotjennyf19keegan-carusojmprieur
authored
Update files for Microsoft Identity Web 4.0.0 release (#3498)
* Initial plan * Update files for 4.0.0 release: changelog and version properties Co-authored-by: jennyf19 <19942418+jennyf19@users.noreply.github.com> * Remove reference to PR #3481 from changelog as requested Co-authored-by: keegan-caruso <54109988+keegan-caruso@users.noreply.github.com> * Address review feedback: update breaking changes and remove unmerged PR references, generate API compatibility files Co-authored-by: keegan-caruso <54109988+keegan-caruso@users.noreply.github.com> * Update changelog for version 4.0.0 Update the changelog * Update changelog.md * Update Directory.Build.props * Fixing class mismatch * Fixing build errors * Update Directory.Build.props Co-authored-by: Keegan <Keegan.Caruso@microsoft.com> * Update changelog.md Co-authored-by: Keegan <Keegan.Caruso@microsoft.com> * Apply suggestion from @jmprieur --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jennyf19 <19942418+jennyf19@users.noreply.github.com> Co-authored-by: keegan-caruso <54109988+keegan-caruso@users.noreply.github.com> Co-authored-by: Jean-Marc Prieur <jmprieur@microsoft.com> Co-authored-by: Keegan <Keegan.Caruso@microsoft.com>
1 parent 7282233 commit add88e9

7 files changed

Lines changed: 90 additions & 47 deletions

File tree

Directory.Build.props

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
<PropertyGroup>
33
<!--This should be passed from the VSTS build-->
44
<!-- This needs to be greater than or equal to the validation baseline version -->
5-
<MicrosoftIdentityWebVersion Condition="'$(MicrosoftIdentityWebVersion)' == ''">3.14.1</MicrosoftIdentityWebVersion>
5+
<MicrosoftIdentityWebVersion Condition="'$(MicrosoftIdentityWebVersion)' == ''">4.0.0</MicrosoftIdentityWebVersion>
66
<!--This will generate AssemblyVersion, AssemblyFileVersion and AssemblyInformationVersion-->
77
<Version>$(MicrosoftIdentityWebVersion)</Version>
88

99
<EnablePackageValidation>true</EnablePackageValidation>
10-
<PackageValidationBaselineVersion>2.7.0</PackageValidationBaselineVersion>
10+
<PackageValidationBaselineVersion>3.14.1</PackageValidationBaselineVersion>
1111

1212
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)\build\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
1313
<RepositoryType>git</RepositoryType>
@@ -82,8 +82,8 @@
8282

8383
<PropertyGroup Label="Common dependency versions">
8484
<MicrosoftIdentityModelVersion Condition="'$(MicrosoftIdentityModelVersion)' == ''">8.14.0</MicrosoftIdentityModelVersion>
85-
<MicrosoftIdentityClientVersion Condition="'$(MicrosoftIdentityClientVersion)' == ''">4.77.0</MicrosoftIdentityClientVersion>
86-
<MicrosoftIdentityAbstractionsVersion Condition="'$(MicrosoftIdentityAbstractionsVersion)' == ''">9.4.0</MicrosoftIdentityAbstractionsVersion>
85+
<MicrosoftIdentityClientVersion Condition="'$(MicrosoftIdentityClientVersion)' == ''">4.77.1</MicrosoftIdentityClientVersion>
86+
<MicrosoftIdentityAbstractionsVersion Condition="'$(MicrosoftIdentityAbstractionsVersion)' == ''">9.5.0</MicrosoftIdentityAbstractionsVersion>
8787
<FxCopAnalyzersVersion>3.3.0</FxCopAnalyzersVersion>
8888
<SystemTextEncodingsWebVersion>4.7.2</SystemTextEncodingsWebVersion>
8989
<AzureSecurityKeyVaultSecretsVersion>4.6.0</AzureSecurityKeyVaultSecretsVersion>

changelog.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
4.0.0
2+
=========
3+
### Breaking Changes
4+
**Removed support for .NET 6.0 and .NET 7.0** - Microsoft Identity Web 4.0.0 no longer targets .NET 6.0 and .NET 7.0, following Microsoft's support lifecycle. The supported target frameworks are now .NET 8.0, .NET 9.0, .NET Framework 4.6.2, .NET Framework 4.7.2, and .NET Standard 2.0.
5+
6+
### New features
7+
- Various improvements to performance logging, authentication, and credential loading capabilities.
8+
- Bumped MSAL.NET to 4.77.1
9+
- Added credential description extensibility. For details, see [#3487](https://github.com/AzureAD/microsoft-identity-web/pull/3487)
10+
- Added a new CerticateObserverAction type: SuccessfullyUsed. See [#3505](https://github.com/AzureAD/microsoft-identity-web/pull/3505)
11+
- Add specification of OID (in addition to upn) for Agent User Identity. See [#3513](https://github.com/AzureAD/microsoft-identity-web/pull/3513)
12+
13+
### Fundamentals
14+
- Various improvements to .NET support and dependency optimizations.
15+
- Added doc for Agent identities. See [Agent identities](src/Microsoft.Identity.Web.AgentIdentities/README.AgentIdentities.md)
16+
- Combined and fixed test collections. See [#3472](https://github.com/AzureAD/microsoft-identity-web/pull/3472)
17+
- Migrate repository agent rules from .clinerules to agents.md. See [#3475](https://github.com/AzureAD/microsoft-identity-web/pull/3475)
18+
- Add .NET 6.x setup step to dotnetcore.yml workflow, as the default build agents don't have it any longer. See [#3489](https://github.com/AzureAD/microsoft-identity-web/pull/3489)
19+
120
3.14.1
221
=======
322
## Bug fix
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- https://learn.microsoft.com/dotnet/fundamentals/package-validation/diagnostic-ids -->
3+
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4+
<Suppression>
5+
<DiagnosticId>CP0008</DiagnosticId>
6+
<Target>T:Microsoft.Identity.Web.CertificateSource</Target>
7+
<Left>lib/net6.0/Microsoft.Identity.Web.Certificate.dll</Left>
8+
<Right>lib/netstandard2.0/Microsoft.Identity.Web.Certificate.dll</Right>
9+
<IsBaselineSuppression>true</IsBaselineSuppression>
10+
</Suppression>
11+
<Suppression>
12+
<DiagnosticId>CP0008</DiagnosticId>
13+
<Target>T:Microsoft.Identity.Web.CertificateSource</Target>
14+
<Left>lib/net7.0/Microsoft.Identity.Web.Certificate.dll</Left>
15+
<Right>lib/netstandard2.0/Microsoft.Identity.Web.Certificate.dll</Right>
16+
<IsBaselineSuppression>true</IsBaselineSuppression>
17+
</Suppression>
18+
</Suppressions>

src/Microsoft.Identity.Web.Sidecar/Endpoints/AuthorizationHeaderEndpoint.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public static void AddAuthorizationHeaderRequestEndpoints(this WebApplication ap
4747
"Repeat parameters like 'optionsOverride.Scopes' to add multiple scopes.");
4848
}
4949

50-
private static async Task<Results<Ok<AuthorizationHeaderResult>, ProblemHttpResult>> AuthorizationHeaderAsync(
50+
private static async Task<Results<Ok<Models.AuthorizationHeaderResult>, ProblemHttpResult>> AuthorizationHeaderAsync(
5151
HttpContext httpContext,
5252
[Description("The downstream API to acquire an authorization header for.")]
5353
[FromRoute]
@@ -114,6 +114,6 @@ private static async Task<Results<Ok<AuthorizationHeaderResult>, ProblemHttpResu
114114
statusCode: StatusCodes.Status500InternalServerError);
115115
}
116116

117-
return TypedResults.Ok(new AuthorizationHeaderResult(authorizationHeader));
117+
return TypedResults.Ok(new Models.AuthorizationHeaderResult(authorizationHeader));
118118
}
119119
}
Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,46 @@
1-
<?xml version="1.0" encoding="utf-8"?>
2-
<!-- https://learn.microsoft.com/dotnet/fundamentals/package-validation/diagnostic-ids -->
3-
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4-
<Suppression>
5-
<DiagnosticId>CP0001</DiagnosticId>
6-
<Target>T:Microsoft.Identity.Web.OpenIdConnectOptions</Target>
7-
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
8-
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
9-
</Suppression>
10-
<Suppression>
11-
<DiagnosticId>CP0002</DiagnosticId>
12-
<Target>M:Microsoft.Identity.Web.MicrosoftIdentityOptions.get_ErrorPath</Target>
13-
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
14-
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
15-
</Suppression>
16-
<Suppression>
17-
<DiagnosticId>CP0002</DiagnosticId>
18-
<Target>M:Microsoft.Identity.Web.MicrosoftIdentityOptions.get_ResetPasswordPath</Target>
19-
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
20-
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
21-
</Suppression>
22-
<Suppression>
23-
<DiagnosticId>CP0006</DiagnosticId>
24-
<Target>M:Microsoft.Identity.Web.ITokenAcquisition.ReplyForbiddenWithWwwAuthenticateHeader(System.Collections.Generic.IEnumerable{System.String},Microsoft.Identity.Client.MsalUiRequiredException,System.String,Microsoft.AspNetCore.Http.HttpResponse)</Target>
25-
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
26-
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
27-
</Suppression>
28-
<Suppression>
29-
<DiagnosticId>CP0006</DiagnosticId>
30-
<Target>M:Microsoft.Identity.Web.ITokenAcquisition.ReplyForbiddenWithWwwAuthenticateHeaderAsync(System.Collections.Generic.IEnumerable{System.String},Microsoft.Identity.Client.MsalUiRequiredException,Microsoft.AspNetCore.Http.HttpResponse)</Target>
31-
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
32-
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
33-
</Suppression>
34-
<Suppression>
35-
<DiagnosticId>CP0007</DiagnosticId>
36-
<Target>T:Microsoft.Identity.Web.MicrosoftIdentityOptions</Target>
37-
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
38-
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
39-
</Suppression>
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- https://learn.microsoft.com/dotnet/fundamentals/package-validation/diagnostic-ids -->
3+
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4+
<Suppression>
5+
<DiagnosticId>CP0001</DiagnosticId>
6+
<Target>T:Microsoft.Identity.Web.OpenIdConnectOptions</Target>
7+
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
8+
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
9+
</Suppression>
10+
<Suppression>
11+
<DiagnosticId>CP0002</DiagnosticId>
12+
<Target>M:Microsoft.Identity.Web.MicrosoftIdentityAuthenticationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)</Target>
13+
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
14+
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
15+
</Suppression>
16+
<Suppression>
17+
<DiagnosticId>CP0002</DiagnosticId>
18+
<Target>M:Microsoft.Identity.Web.MicrosoftIdentityOptions.get_ErrorPath</Target>
19+
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
20+
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
21+
</Suppression>
22+
<Suppression>
23+
<DiagnosticId>CP0002</DiagnosticId>
24+
<Target>M:Microsoft.Identity.Web.MicrosoftIdentityOptions.get_ResetPasswordPath</Target>
25+
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
26+
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
27+
</Suppression>
28+
<Suppression>
29+
<DiagnosticId>CP0006</DiagnosticId>
30+
<Target>M:Microsoft.Identity.Web.ITokenAcquisition.ReplyForbiddenWithWwwAuthenticateHeader(System.Collections.Generic.IEnumerable{System.String},Microsoft.Identity.Client.MsalUiRequiredException,System.String,Microsoft.AspNetCore.Http.HttpResponse)</Target>
31+
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
32+
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
33+
</Suppression>
34+
<Suppression>
35+
<DiagnosticId>CP0006</DiagnosticId>
36+
<Target>M:Microsoft.Identity.Web.ITokenAcquisition.ReplyForbiddenWithWwwAuthenticateHeaderAsync(System.Collections.Generic.IEnumerable{System.String},Microsoft.Identity.Client.MsalUiRequiredException,Microsoft.AspNetCore.Http.HttpResponse)</Target>
37+
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
38+
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
39+
</Suppression>
40+
<Suppression>
41+
<DiagnosticId>CP0007</DiagnosticId>
42+
<Target>T:Microsoft.Identity.Web.MicrosoftIdentityOptions</Target>
43+
<Left>lib/netstandard2.0/Microsoft.Identity.Web.TokenAcquisition.dll</Left>
44+
<Right>lib/net8.0/Microsoft.Identity.Web.TokenAcquisition.dll</Right>
45+
</Suppression>
4046
</Suppressions>

tests/E2E Tests/Sidecar.Tests/MockedEndToEndTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public async Task MockedAuthorizationFlow_WithValidConfiguration_ReturnsAuthoriz
6262
}
6363

6464
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
65-
var result = JsonSerializer.Deserialize<AuthorizationHeaderResult>(content, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
65+
var result = JsonSerializer.Deserialize<Microsoft.Identity.Web.Sidecar.Models.AuthorizationHeaderResult>(content, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
6666
Assert.NotNull(result);
6767
Assert.Equal(expectedAuthHeader, result.AuthorizationHeader);
6868
}

tests/E2E Tests/Sidecar.Tests/SidecarEndpointsE2ETests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public async Task GetAuthorizationHeaderForAgentUserIdentityUnauthenticated_With
133133

134134
Assert.True(result.IsSuccessStatusCode);
135135

136-
var response = await result.Content.ReadFromJsonAsync<AuthorizationHeaderResult>();
136+
var response = await result.Content.ReadFromJsonAsync<Microsoft.Identity.Web.Sidecar.Models.AuthorizationHeaderResult>();
137137

138138
Assert.NotNull(response?.AuthorizationHeader);
139139
Assert.StartsWith("Bearer ey", response.AuthorizationHeader, StringComparison.Ordinal);

0 commit comments

Comments
 (0)