diff --git a/Directory.Build.props b/Directory.Build.props index 15e64a792..ecd59f50c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -79,21 +79,25 @@ 8.14.0 - 4.76.0 + 4.83.1 3.3.0 4.7.2 4.6.0 - 1.11.4 + 1.17.2 4.6.0 4.36.0 4.57.0-preview 9.3.0 - 8.0.5 + 8.0.6 8.0.1 4.14.0 4.14.0 + + 8.0.3 @@ -104,9 +108,10 @@ $(NetNineRuntimeVersion) $(NetNineRuntimeVersion) $(AspNetCoreNineRuntimeVersion) - $(NetNineRuntimeVersion) - $(NetNineRuntimeVersion) + 9.0.15 + 9.0.15 $(NetNineRuntimeVersion) + $(NetNineRuntimeVersion) $(NetNineRuntimeVersion) $(NetNineRuntimeVersion) $(NetNineRuntimeVersion) @@ -119,9 +124,10 @@ 8.0.1 8.0.0 8.0.1 - 8.0.0 - 8.0.1 + 8.0.1 + 8.0.3 8.0.0 + 8.0.3 8.0.0 8.0.0 8.0.0 @@ -149,7 +155,7 @@ 6.0.0 6.0.1 - 6.0.1 + 8.0.1 6.0.4 @@ -175,9 +181,8 @@ 6.0.0 - - 6.0.0 - 2.1.0 + 8.0.0 + 8.0.0 @@ -185,13 +190,12 @@ 7.0.2 4.7.1 - 4.7.1 2.1.0 2.1.1 3.1.3 2.1.0 - 2.1.0 - 2.2.4 + 8.0.0 + 8.0.0 diff --git a/src/Microsoft.Identity.Web.Certificate/KeyVaultCertificateLoader.cs b/src/Microsoft.Identity.Web.Certificate/KeyVaultCertificateLoader.cs index e25822248..3c30d0b8e 100644 --- a/src/Microsoft.Identity.Web.Certificate/KeyVaultCertificateLoader.cs +++ b/src/Microsoft.Identity.Web.Certificate/KeyVaultCertificateLoader.cs @@ -66,7 +66,6 @@ public async Task LoadIfNeededAsync(CredentialDescription credentialDescription, ExcludeAzureDeveloperCliCredential = true, ExcludeAzurePowerShellCredential = true, ExcludeInteractiveBrowserCredential = true, - ExcludeSharedTokenCacheCredential = true, ExcludeVisualStudioCodeCredential = true, ExcludeVisualStudioCredential = true }; diff --git a/src/Microsoft.Identity.Web.Certificate/Microsoft.Identity.Web.Certificate.csproj b/src/Microsoft.Identity.Web.Certificate/Microsoft.Identity.Web.Certificate.csproj index a94798335..a1a73aed8 100644 --- a/src/Microsoft.Identity.Web.Certificate/Microsoft.Identity.Web.Certificate.csproj +++ b/src/Microsoft.Identity.Web.Certificate/Microsoft.Identity.Web.Certificate.csproj @@ -17,7 +17,7 @@ - + diff --git a/src/Microsoft.Identity.Web.Certificateless/ManagedIdentityClientAssertion.cs b/src/Microsoft.Identity.Web.Certificateless/ManagedIdentityClientAssertion.cs index 0f9568a47..660125651 100644 --- a/src/Microsoft.Identity.Web.Certificateless/ManagedIdentityClientAssertion.cs +++ b/src/Microsoft.Identity.Web.Certificateless/ManagedIdentityClientAssertion.cs @@ -91,6 +91,11 @@ private void Log( string message, bool containsPii) { + if (_logger == null) + { + return; + } + switch (level) { case Client.LogLevel.Always: diff --git a/src/Microsoft.Identity.Web.Certificateless/Microsoft.Identity.Web.Certificateless.csproj b/src/Microsoft.Identity.Web.Certificateless/Microsoft.Identity.Web.Certificateless.csproj index 6301c69a9..29b64c76f 100644 --- a/src/Microsoft.Identity.Web.Certificateless/Microsoft.Identity.Web.Certificateless.csproj +++ b/src/Microsoft.Identity.Web.Certificateless/Microsoft.Identity.Web.Certificateless.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.cs b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.cs index 4886ebc82..7a0a22758 100644 --- a/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.cs +++ b/src/Microsoft.Identity.Web.DownstreamApi/DownstreamApi.cs @@ -516,7 +516,7 @@ public Task CallApiForAppAsync( await UpdateRequestAsync(httpRequestMessage, content, effectiveOptions, appToken, user, cancellationToken); - using HttpClient client = string.IsNullOrEmpty(serviceName) ? _httpClientFactory.CreateClient() : _httpClientFactory.CreateClient(serviceName); + using HttpClient client = string.IsNullOrEmpty(serviceName) ? _httpClientFactory.CreateClient() : _httpClientFactory.CreateClient(serviceName!); // Send the HTTP message var downstreamApiResult = await client.SendAsync(httpRequestMessage, cancellationToken).ConfigureAwait(false); diff --git a/src/Microsoft.Identity.Web.OWIN/AppBuilderExtension.cs b/src/Microsoft.Identity.Web.OWIN/AppBuilderExtension.cs index 43612febd..458625bfa 100644 --- a/src/Microsoft.Identity.Web.OWIN/AppBuilderExtension.cs +++ b/src/Microsoft.Identity.Web.OWIN/AppBuilderExtension.cs @@ -62,10 +62,10 @@ public static IAppBuilder AddMicrosoftIdentityWebApi( configuration?.GetSection(configurationSection).Bind(option); })); - string instance = configuration.GetValue($"{configurationSection}:Instance"); - string tenantId = configuration.GetValue($"{configurationSection}:TenantId"); - string clientId = configuration.GetValue($"{configurationSection}:ClientId"); - string audience = configuration.GetValue($"{configurationSection}:Audience"); + string? instance = configuration.GetValue($"{configurationSection}:Instance"); + string? tenantId = configuration.GetValue($"{configurationSection}:TenantId"); + string? clientId = configuration.GetValue($"{configurationSection}:ClientId"); + string? audience = configuration.GetValue($"{configurationSection}:Audience"); string authority = instance + tenantId + "/v2.0"; TokenValidationParameters tokenValidationParameters = new() { @@ -121,10 +121,10 @@ public static IAppBuilder AddMicrosoftIdentityWebApp( configuration?.GetSection(configurationSection).Bind(option); })); - string instance = configuration.GetValue($"{configurationSection}:Instance"); - string tenantId = configuration.GetValue($"{configurationSection}:TenantId"); - string clientId = configuration.GetValue($"{configurationSection}:ClientId"); - string postLogoutRedirectUri = configuration.GetValue($"{configurationSection}:SignedOutCallbackPath"); + string? instance = configuration.GetValue($"{configurationSection}:Instance"); + string? tenantId = configuration.GetValue($"{configurationSection}:TenantId"); + string? clientId = configuration.GetValue($"{configurationSection}:ClientId"); + string? postLogoutRedirectUri = configuration.GetValue($"{configurationSection}:SignedOutCallbackPath"); string authority = instance + tenantId + "/v2.0"; OpenIdConnectAuthenticationOptions options = new() diff --git a/src/Microsoft.Identity.Web.OWIN/Microsoft.Identity.Web.OWIN.csproj b/src/Microsoft.Identity.Web.OWIN/Microsoft.Identity.Web.OWIN.csproj index 57eb766f0..09b7e717f 100644 --- a/src/Microsoft.Identity.Web.OWIN/Microsoft.Identity.Web.OWIN.csproj +++ b/src/Microsoft.Identity.Web.OWIN/Microsoft.Identity.Web.OWIN.csproj @@ -23,8 +23,8 @@ - - + + diff --git a/src/Microsoft.Identity.Web.OWIN/OwinTokenAcquirerFactory.cs b/src/Microsoft.Identity.Web.OWIN/OwinTokenAcquirerFactory.cs index 1e6de0372..a6219c4af 100644 --- a/src/Microsoft.Identity.Web.OWIN/OwinTokenAcquirerFactory.cs +++ b/src/Microsoft.Identity.Web.OWIN/OwinTokenAcquirerFactory.cs @@ -25,15 +25,15 @@ public class OwinTokenAcquirerFactory : TokenAcquirerFactory /// protected override string DefineConfiguration(IConfigurationBuilder builder) { - _ = builder.AddInMemoryCollection(new Dictionary() + _ = builder.AddInMemoryCollection(new Dictionary() { - ["AzureAd:Instance"] = EnsureTrailingSlash(ConfigurationManager.AppSettings["ida:Instance"] ?? ConfigurationManager.AppSettings["ida:AADInstance"] ?? "https://login.microsoftonline.com/"), - ["AzureAd:ClientId"] = ConfigurationManager.AppSettings["ida:ClientId"], - ["AzureAd:TenantId"] = ConfigurationManager.AppSettings["ida:Tenant"] ?? ConfigurationManager.AppSettings["ida:TenantId"], - ["AzureAd:Audience"] = ConfigurationManager.AppSettings["ida:Audience"], - ["AzureAd:ClientSecret"] = ConfigurationManager.AppSettings["ida:ClientSecret"], - ["AzureAd:SignedOutCallbackPath"] = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"], - ["AzureAd:RedirectUri"] = ConfigurationManager.AppSettings["ida:RedirectUri"], + ["AzureAd:Instance"] = EnsureTrailingSlash(System.Configuration.ConfigurationManager.AppSettings["ida:Instance"] ?? System.Configuration.ConfigurationManager.AppSettings["ida:AADInstance"] ?? "https://login.microsoftonline.com/"), + ["AzureAd:ClientId"] = System.Configuration.ConfigurationManager.AppSettings["ida:ClientId"], + ["AzureAd:TenantId"] = System.Configuration.ConfigurationManager.AppSettings["ida:Tenant"] ?? System.Configuration.ConfigurationManager.AppSettings["ida:TenantId"], + ["AzureAd:Audience"] = System.Configuration.ConfigurationManager.AppSettings["ida:Audience"], + ["AzureAd:ClientSecret"] = System.Configuration.ConfigurationManager.AppSettings["ida:ClientSecret"], + ["AzureAd:SignedOutCallbackPath"] = System.Configuration.ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"], + ["AzureAd:RedirectUri"] = System.Configuration.ConfigurationManager.AppSettings["ida:RedirectUri"], }); return HostingEnvironment.MapPath("~/"); diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/JwtBearerOptionsMerger.cs b/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/JwtBearerOptionsMerger.cs index d92481cc5..cfc293d01 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/JwtBearerOptionsMerger.cs +++ b/src/Microsoft.Identity.Web.TokenAcquisition/AspNetCore/JwtBearerOptionsMerger.cs @@ -18,11 +18,11 @@ public JwtBearerOptionsMerger(IMergedOptionsStore mergedOptions) private readonly IMergedOptionsStore _mergedOptionsMonitor; public void PostConfigure( -#if NET7_0_OR_GREATER +#if !NET6_0 string? name, #else string name, -#endif +#endif JwtBearerOptions options) { MergedOptions mergedOptions = _mergedOptionsMonitor.Get(name ?? string.Empty); diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/Microsoft.Identity.Web.TokenAcquisition.csproj b/src/Microsoft.Identity.Web.TokenAcquisition/Microsoft.Identity.Web.TokenAcquisition.csproj index 34322a4d9..96b074647 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/Microsoft.Identity.Web.TokenAcquisition.csproj +++ b/src/Microsoft.Identity.Web.TokenAcquisition/Microsoft.Identity.Web.TokenAcquisition.csproj @@ -26,7 +26,7 @@ - + diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/ConfidentialClientApplicationOptionsMerger.cs b/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/ConfidentialClientApplicationOptionsMerger.cs index 017748a51..00327bd76 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/ConfidentialClientApplicationOptionsMerger.cs +++ b/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/ConfidentialClientApplicationOptionsMerger.cs @@ -16,7 +16,7 @@ public ConfidentialClientApplicationOptionsMerger(IMergedOptionsStore mergedOpti private readonly IMergedOptionsStore _mergedOptionsMonitor; public void PostConfigure( -#if NET7_0_OR_GREATER +#if !NET6_0 string? name, #else string name, diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/MicrosoftAuthenticationOptionsMerger.cs b/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/MicrosoftAuthenticationOptionsMerger.cs index 89a88f228..053d14be3 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/MicrosoftAuthenticationOptionsMerger.cs +++ b/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/MicrosoftAuthenticationOptionsMerger.cs @@ -16,11 +16,11 @@ public MicrosoftIdentityApplicationOptionsMerger(IMergedOptionsStore mergedOptio private readonly IMergedOptionsStore _mergedOptionsMonitor; public void PostConfigure( -#if NET7_0_OR_GREATER +#if !NET6_0 string? name, #else string name, -#endif +#endif MicrosoftIdentityApplicationOptions options) { MergedOptions.UpdateMergedOptionsFromMicrosoftIdentityApplicationOptions(options, _mergedOptionsMonitor.Get(name ?? string.Empty)); diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/MicrosoftIdentityOptionsMerger.cs b/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/MicrosoftIdentityOptionsMerger.cs index 99bfe3c4c..7c0b41be6 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/MicrosoftIdentityOptionsMerger.cs +++ b/src/Microsoft.Identity.Web.TokenAcquisition/OptionsMergers/MicrosoftIdentityOptionsMerger.cs @@ -15,7 +15,7 @@ public MicrosoftIdentityOptionsMerger(IMergedOptionsStore mergedOptions) private readonly IMergedOptionsStore _mergedOptionsMonitor; public void PostConfigure( -#if NET7_0_OR_GREATER +#if !NET6_0 string? name, #else string name, diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net462/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net462/InternalAPI.Unshipped.txt index 7dc5c5811..e0b2c08c6 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net462/InternalAPI.Unshipped.txt +++ b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net462/InternalAPI.Unshipped.txt @@ -1 +1,7 @@ #nullable enable +*REMOVED*Microsoft.Identity.Web.ConfidentialClientApplicationOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Client.ConfidentialClientApplicationOptions! options) -> void +Microsoft.Identity.Web.ConfidentialClientApplicationOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Client.ConfidentialClientApplicationOptions! options) -> void +*REMOVED*Microsoft.Identity.Web.MicrosoftIdentityApplicationOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Abstractions.MicrosoftIdentityApplicationOptions! options) -> void +Microsoft.Identity.Web.MicrosoftIdentityApplicationOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Abstractions.MicrosoftIdentityApplicationOptions! options) -> void +*REMOVED*Microsoft.Identity.Web.MicrosoftIdentityOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Web.MicrosoftIdentityOptions! options) -> void +Microsoft.Identity.Web.MicrosoftIdentityOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Web.MicrosoftIdentityOptions! options) -> void diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net472/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net472/InternalAPI.Unshipped.txt index 7dc5c5811..e0b2c08c6 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net472/InternalAPI.Unshipped.txt +++ b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net472/InternalAPI.Unshipped.txt @@ -1 +1,7 @@ #nullable enable +*REMOVED*Microsoft.Identity.Web.ConfidentialClientApplicationOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Client.ConfidentialClientApplicationOptions! options) -> void +Microsoft.Identity.Web.ConfidentialClientApplicationOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Client.ConfidentialClientApplicationOptions! options) -> void +*REMOVED*Microsoft.Identity.Web.MicrosoftIdentityApplicationOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Abstractions.MicrosoftIdentityApplicationOptions! options) -> void +Microsoft.Identity.Web.MicrosoftIdentityApplicationOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Abstractions.MicrosoftIdentityApplicationOptions! options) -> void +*REMOVED*Microsoft.Identity.Web.MicrosoftIdentityOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Web.MicrosoftIdentityOptions! options) -> void +Microsoft.Identity.Web.MicrosoftIdentityOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Web.MicrosoftIdentityOptions! options) -> void diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/netstandard2.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/netstandard2.0/InternalAPI.Unshipped.txt index 7dc5c5811..e0b2c08c6 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/netstandard2.0/InternalAPI.Unshipped.txt +++ b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/netstandard2.0/InternalAPI.Unshipped.txt @@ -1 +1,7 @@ #nullable enable +*REMOVED*Microsoft.Identity.Web.ConfidentialClientApplicationOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Client.ConfidentialClientApplicationOptions! options) -> void +Microsoft.Identity.Web.ConfidentialClientApplicationOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Client.ConfidentialClientApplicationOptions! options) -> void +*REMOVED*Microsoft.Identity.Web.MicrosoftIdentityApplicationOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Abstractions.MicrosoftIdentityApplicationOptions! options) -> void +Microsoft.Identity.Web.MicrosoftIdentityApplicationOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Abstractions.MicrosoftIdentityApplicationOptions! options) -> void +*REMOVED*Microsoft.Identity.Web.MicrosoftIdentityOptionsMerger.PostConfigure(string! name, Microsoft.Identity.Web.MicrosoftIdentityOptions! options) -> void +Microsoft.Identity.Web.MicrosoftIdentityOptionsMerger.PostConfigure(string? name, Microsoft.Identity.Web.MicrosoftIdentityOptions! options) -> void diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs b/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs index 2f371921e..5cef5e099 100644 --- a/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs +++ b/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using System; @@ -149,7 +149,9 @@ public async Task AddAccountToCacheFromAuthorizationCodeAsyn if (mergedOptions.ExtraQueryParameters != null) { +#pragma warning disable CS0618 builder.WithExtraQueryParameters((Dictionary)mergedOptions.ExtraQueryParameters); +#pragma warning restore CS0618 } if (!string.IsNullOrEmpty(authCodeRedemptionParameters.Tenant)) @@ -417,12 +419,14 @@ public async Task GetAuthenticationResultForUserAsync( var dict = MergeExtraQueryParameters(mergedOptions, tokenAcquisitionOptions); if (dict != null) { +#pragma warning disable CS0618 // WithExtraQueryParameters is deprecated in newer MSAL but used here for backward compat builder.WithExtraQueryParameters(dict); +#pragma warning restore CS0618 } if (tokenAcquisitionOptions.ExtraHeadersParameters != null) { - builder.WithExtraHttpHeaders(tokenAcquisitionOptions.ExtraHeadersParameters); + Microsoft.Identity.Client.Extensibility.AcquireTokenParameterBuilderExtensions.WithExtraHttpHeaders(builder, tokenAcquisitionOptions.ExtraHeadersParameters); } if (tokenAcquisitionOptions.CorrelationId != null) { @@ -602,11 +606,13 @@ public async Task GetAuthenticationResultForAppAsync( if (dict != null) { +#pragma warning disable CS0618 // WithExtraQueryParameters is deprecated in newer MSAL but used here for backward compat builder.WithExtraQueryParameters(dict); +#pragma warning restore CS0618 } if (tokenAcquisitionOptions.ExtraHeadersParameters != null) { - builder.WithExtraHttpHeaders(tokenAcquisitionOptions.ExtraHeadersParameters); + Microsoft.Identity.Client.Extensibility.AcquireTokenParameterBuilderExtensions.WithExtraHttpHeaders(builder, tokenAcquisitionOptions.ExtraHeadersParameters); } AddExtraBodyParametersIfNeeded(tokenAcquisitionOptions, builder); @@ -1143,11 +1149,13 @@ private void NotifyCertificateSelection( dict.Remove(subAssertionConstant); } +#pragma warning disable CS0618 builder.WithExtraQueryParameters(dict); +#pragma warning restore CS0618 } if (tokenAcquisitionOptions.ExtraHeadersParameters != null) { - builder.WithExtraHttpHeaders(tokenAcquisitionOptions.ExtraHeadersParameters); + Microsoft.Identity.Client.Extensibility.AcquireTokenParameterBuilderExtensions.WithExtraHttpHeaders(builder, tokenAcquisitionOptions.ExtraHeadersParameters); } if (tokenAcquisitionOptions.CorrelationId != null) { @@ -1300,11 +1308,13 @@ private Task GetAuthenticationResultForWebAppWithAccountFr if (dict != null) { +#pragma warning disable CS0618 builder.WithExtraQueryParameters(dict); +#pragma warning restore CS0618 } if (tokenAcquisitionOptions.ExtraHeadersParameters != null) { - builder.WithExtraHttpHeaders(tokenAcquisitionOptions.ExtraHeadersParameters); + Microsoft.Identity.Client.Extensibility.AcquireTokenParameterBuilderExtensions.WithExtraHttpHeaders(builder, tokenAcquisitionOptions.ExtraHeadersParameters); } if (tokenAcquisitionOptions.CorrelationId != null) {