diff --git a/Directory.Build.props b/Directory.Build.props
index ca5d00f5e..d2bf7947e 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -37,7 +37,7 @@
enable
true
true
- 13
+ 14
true
@@ -77,13 +77,13 @@
- 13
+ 14
8.15.0
4.82.0
- 10.0.0
+ 11.0.0
3.3.0
4.7.2
4.6.0
diff --git a/src/Microsoft.Identity.Web.Certificate/CertificateDescription.cs b/src/Microsoft.Identity.Web.Certificate/CertificateDescription.cs
index 72cb9cc28..b0a380cb3 100644
--- a/src/Microsoft.Identity.Web.Certificate/CertificateDescription.cs
+++ b/src/Microsoft.Identity.Web.Certificate/CertificateDescription.cs
@@ -161,12 +161,19 @@ public static CertificateDescription FromStoreWithDistinguishedName(
///
/// .
///
+#if NET10_0_OR_GREATER
+ public X509Certificate2? Certificate
+ {
+ get { return base.GetCertificateInternal(); }
+ protected internal set { base.SetCertificateInternal(value); }
+ }
+#else
public new X509Certificate2? Certificate
{
get { return base.Certificate; }
protected internal set { base.Certificate = value; }
}
-
+#endif
///
/// .
///
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/ConfidentialClientApplicationBuilderExtension.Logger.cs b/src/Microsoft.Identity.Web.TokenAcquisition/ConfidentialClientApplicationBuilderExtension.Logger.cs
index 8352fd046..9b954ac61 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/ConfidentialClientApplicationBuilderExtension.Logger.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/ConfidentialClientApplicationBuilderExtension.Logger.cs
@@ -67,13 +67,15 @@ internal static class Logger
///
public static void AttemptToLoadCredentialsFailed(
ILogger logger,
- CredentialDescription certificateDescription,
- Exception ex) =>
- s_credentialAttemptFailed(
+ CredentialDescription certificateDescription,
+ Exception ex)
+ {
+ s_credentialAttemptFailed(
logger,
certificateDescription.Id,
certificateDescription.Skip.ToString(),
ex);
+ }
///
/// Logger for attempting to use a CredentialDescription with MSAL
@@ -82,12 +84,14 @@ public static void AttemptToLoadCredentialsFailed(
///
public static void AttemptToLoadCredentials(
ILogger logger,
- CredentialDescription certificateDescription) =>
- s_credentialAttempt(
- logger,
- certificateDescription.Id,
- certificateDescription.Skip.ToString(),
+ CredentialDescription certificateDescription)
+ {
+ s_credentialAttempt(
+ logger,
+ certificateDescription.Id,
+ certificateDescription.Skip.ToString(),
default!);
+ }
///
/// Logger for attempting to use a CredentialDescription with MSAL
@@ -96,12 +100,14 @@ public static void AttemptToLoadCredentials(
///
public static void FailedToLoadCredentials(
ILogger logger,
- CredentialDescription certificateDescription) =>
- s_credentialAttemptFailed(
+ CredentialDescription certificateDescription)
+ {
+ s_credentialAttemptFailed(
logger,
certificateDescription.Id,
certificateDescription.Skip.ToString(),
default!);
+ }
///
/// Logger for handling information specific to ConfidentialClientApplicationBuilderExtension.
@@ -110,14 +116,20 @@ public static void FailedToLoadCredentials(
/// Exception message.
public static void NotUsingManagedIdentity(
ILogger logger,
- string message) => s_notManagedIdentity(logger, message, default!);
+ string message)
+ {
+ s_notManagedIdentity(logger, message, default!);
+ }
///
/// Logger for handling information specific to ConfidentialClientApplicationBuilderExtension.
///
/// ILogger.
public static void UsingManagedIdentity(
- ILogger logger) => s_usingManagedIdentity(logger, default!);
+ ILogger logger)
+ {
+ s_usingManagedIdentity(logger, default!);
+ }
///
/// Logger for handling information specific to ConfidentialClientApplicationBuilderExtension.
@@ -126,7 +138,10 @@ public static void UsingManagedIdentity(
///
public static void UsingPodIdentityFile(
ILogger logger,
- string signedAssertionFileDiskPath) => s_usingPodIdentityFile(logger, signedAssertionFileDiskPath, default!);
+ string signedAssertionFileDiskPath)
+ {
+ s_usingPodIdentityFile(logger, signedAssertionFileDiskPath, default!);
+ }
///
/// Logger for handling information specific to ConfidentialClientApplicationBuilderExtension.
@@ -135,7 +150,10 @@ public static void UsingPodIdentityFile(
///
public static void UsingSignedAssertionFromVault(
ILogger logger,
- string signedAssertionUri) => s_usingSignedAssertionFromVault(logger, signedAssertionUri, default!);
+ string signedAssertionUri)
+ {
+ s_usingSignedAssertionFromVault(logger, signedAssertionUri, default!);
+ }
///
/// Logger for handling information specific to ConfidentialClientApplicationBuilderExtension.
@@ -144,7 +162,10 @@ public static void UsingSignedAssertionFromVault(
///
public static void UsingSignedAssertionFromCustomProvider(
ILogger logger,
- string signedAssertionUri) => s_usingSignedAssertionFromCustomProvider(logger, signedAssertionUri, default!);
+ string signedAssertionUri)
+ {
+ s_usingSignedAssertionFromCustomProvider(logger, signedAssertionUri, default!);
+ }
///
/// Logger for handling information specific to ConfidentialClientApplicationBuilderExtension.
@@ -153,7 +174,10 @@ public static void UsingSignedAssertionFromCustomProvider(
///
public static void UsingCertThumbprint(
ILogger logger,
- string certThumbprint) => s_usingCertThumbprint(logger, certThumbprint, default!);
+ string? certThumbprint)
+ {
+ s_usingCertThumbprint(logger, certThumbprint ?? "null", default!);
+ }
}
}
}
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/ConfidentialClientApplicationBuilderExtension.cs b/src/Microsoft.Identity.Web.TokenAcquisition/ConfidentialClientApplicationBuilderExtension.cs
index 10b08f975..a03d6d508 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/ConfidentialClientApplicationBuilderExtension.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/ConfidentialClientApplicationBuilderExtension.cs
@@ -146,7 +146,7 @@ public static async Task WithClientCredent
{
if (credential.Certificate != null)
{
- Logger.UsingCertThumbprint(logger, credential.Certificate.Thumbprint);
+ Logger.UsingCertThumbprint(logger, credential.Certificate?.Thumbprint);
return credential;
}
}
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net10.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net10.0/InternalAPI.Unshipped.txt
index 47e6d8b58..a238605bc 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net10.0/InternalAPI.Unshipped.txt
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net10.0/InternalAPI.Unshipped.txt
@@ -3,4 +3,5 @@ const Microsoft.Identity.Web.Constants.ClientAssertionContainsInvalidSignature =
const Microsoft.Identity.Web.Constants.CertificateWasRevoked = "AADSTS7000277" -> string!
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOf(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> void
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOfAsync(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> System.Threading.Tasks.Task!
+static Microsoft.Identity.Web.ConfidentialClientApplicationBuilderExtension.Logger.UsingCertThumbprint(Microsoft.Extensions.Logging.ILogger! logger, string? certThumbprint) -> void
static readonly Microsoft.Identity.Web.Constants.s_certificateRelatedErrorCodes -> System.Collections.Generic.HashSet!
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 47e6d8b58..a238605bc 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net462/InternalAPI.Unshipped.txt
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net462/InternalAPI.Unshipped.txt
@@ -3,4 +3,5 @@ const Microsoft.Identity.Web.Constants.ClientAssertionContainsInvalidSignature =
const Microsoft.Identity.Web.Constants.CertificateWasRevoked = "AADSTS7000277" -> string!
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOf(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> void
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOfAsync(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> System.Threading.Tasks.Task!
+static Microsoft.Identity.Web.ConfidentialClientApplicationBuilderExtension.Logger.UsingCertThumbprint(Microsoft.Extensions.Logging.ILogger! logger, string? certThumbprint) -> void
static readonly Microsoft.Identity.Web.Constants.s_certificateRelatedErrorCodes -> System.Collections.Generic.HashSet!
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 47e6d8b58..a238605bc 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net472/InternalAPI.Unshipped.txt
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net472/InternalAPI.Unshipped.txt
@@ -3,4 +3,5 @@ const Microsoft.Identity.Web.Constants.ClientAssertionContainsInvalidSignature =
const Microsoft.Identity.Web.Constants.CertificateWasRevoked = "AADSTS7000277" -> string!
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOf(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> void
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOfAsync(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> System.Threading.Tasks.Task!
+static Microsoft.Identity.Web.ConfidentialClientApplicationBuilderExtension.Logger.UsingCertThumbprint(Microsoft.Extensions.Logging.ILogger! logger, string? certThumbprint) -> void
static readonly Microsoft.Identity.Web.Constants.s_certificateRelatedErrorCodes -> System.Collections.Generic.HashSet!
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net8.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net8.0/InternalAPI.Unshipped.txt
index 47e6d8b58..a238605bc 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net8.0/InternalAPI.Unshipped.txt
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net8.0/InternalAPI.Unshipped.txt
@@ -3,4 +3,5 @@ const Microsoft.Identity.Web.Constants.ClientAssertionContainsInvalidSignature =
const Microsoft.Identity.Web.Constants.CertificateWasRevoked = "AADSTS7000277" -> string!
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOf(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> void
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOfAsync(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> System.Threading.Tasks.Task!
+static Microsoft.Identity.Web.ConfidentialClientApplicationBuilderExtension.Logger.UsingCertThumbprint(Microsoft.Extensions.Logging.ILogger! logger, string? certThumbprint) -> void
static readonly Microsoft.Identity.Web.Constants.s_certificateRelatedErrorCodes -> System.Collections.Generic.HashSet!
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net9.0/InternalAPI.Unshipped.txt b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net9.0/InternalAPI.Unshipped.txt
index 47e6d8b58..a238605bc 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net9.0/InternalAPI.Unshipped.txt
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net9.0/InternalAPI.Unshipped.txt
@@ -3,4 +3,5 @@ const Microsoft.Identity.Web.Constants.ClientAssertionContainsInvalidSignature =
const Microsoft.Identity.Web.Constants.CertificateWasRevoked = "AADSTS7000277" -> string!
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOf(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> void
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOfAsync(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> System.Threading.Tasks.Task!
+static Microsoft.Identity.Web.ConfidentialClientApplicationBuilderExtension.Logger.UsingCertThumbprint(Microsoft.Extensions.Logging.ILogger! logger, string? certThumbprint) -> void
static readonly Microsoft.Identity.Web.Constants.s_certificateRelatedErrorCodes -> System.Collections.Generic.HashSet!
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 47e6d8b58..a238605bc 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
@@ -3,4 +3,5 @@ const Microsoft.Identity.Web.Constants.ClientAssertionContainsInvalidSignature =
const Microsoft.Identity.Web.Constants.CertificateWasRevoked = "AADSTS7000277" -> string!
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOf(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> void
Microsoft.Identity.Web.TokenAcquisitionExtensionOptions.InvokeOnBeforeTokenAcquisitionForOnBehalfOfAsync(Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder! builder, Microsoft.Identity.Abstractions.AcquireTokenOptions? acquireTokenOptions, System.Security.Claims.ClaimsPrincipal! user) -> System.Threading.Tasks.Task!
+static Microsoft.Identity.Web.ConfidentialClientApplicationBuilderExtension.Logger.UsingCertThumbprint(Microsoft.Extensions.Logging.ILogger! logger, string? certThumbprint) -> void
static readonly Microsoft.Identity.Web.Constants.s_certificateRelatedErrorCodes -> System.Collections.Generic.HashSet!
diff --git a/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.Logger.cs b/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.Logger.cs
index 3ab368f4f..3d4e7c19d 100644
--- a/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.Logger.cs
+++ b/src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquisition.Logger.cs
@@ -40,7 +40,10 @@ internal static class Logger
public static void TokenAcquisitionError(
ILogger logger,
string msalErrorMessage,
- Exception? ex) => s_tokenAcquisitionError(logger, msalErrorMessage, ex);
+ Exception? ex)
+ {
+ s_tokenAcquisitionError(logger, msalErrorMessage, ex);
+ }
///
/// Logger for handling information specific to MSAL in token acquisition.
@@ -61,7 +64,9 @@ public static void TokenAcquisitionMsalAuthenticationResultTime(
string tokenSource,
string correlationId,
string cacheRefreshReason,
- Exception? ex) => s_tokenAcquisitionMsalAuthenticationResultTime(
+ Exception? ex)
+ {
+ s_tokenAcquisitionMsalAuthenticationResultTime(
logger,
durationTotalInMs,
durationInHttpInMs,
@@ -70,6 +75,7 @@ public static void TokenAcquisitionMsalAuthenticationResultTime(
correlationId,
cacheRefreshReason,
ex);
+ }
}
}
}
diff --git a/tests/Microsoft.Identity.Web.Test/CertificatesObserverTests.cs b/tests/Microsoft.Identity.Web.Test/CertificatesObserverTests.cs
index bac961cc3..798fb03cd 100644
--- a/tests/Microsoft.Identity.Web.Test/CertificatesObserverTests.cs
+++ b/tests/Microsoft.Identity.Web.Test/CertificatesObserverTests.cs
@@ -364,7 +364,7 @@ protected override Task SendAsync(HttpRequestMessage reques
if (uri.StartsWith(kvp.Key, StringComparison.OrdinalIgnoreCase))
{
if (this.description.Certificate == null ||
- !this.ValidCertificates.Any(cert => cert.Thumbprint.Equals(this.description.Certificate.Thumbprint, StringComparison.OrdinalIgnoreCase)))
+ !this.ValidCertificates.Any(cert => cert.Thumbprint.Equals(this.description.Certificate?.Thumbprint, StringComparison.OrdinalIgnoreCase)))
{
var errorResponse = new
{