Hi, the next code work for me, in my proyect .Net Core 6.0 Web App
public bool CheckAzureTokenIsValid(string access_token, AzureConnectionDTO azureConnectionDTO)
{
string stsDiscoveryEndpoint = "https://xxx.b2clogin.com/xxx.onmicrosoft.com/<policy-name>/v2.0/.well-known/openid-configuration";
var configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, new OpenIdConnectConfigurationRetriever()); //1. need the 'new OpenIdConnect...'
OpenIdConnectConfiguration config = configManager.GetConfigurationAsync().Result;
TokenValidationParameters validationParameters = new TokenValidationParameters
{
ValidateAudience = true,
ValidateIssuer = true,
ValidateIssuerSigningKey = true,
ValidateLifetime = true,
RequireSignedTokens = true,
ClockSkew = TimeSpan.Zero,
ValidAudience = azureConnectionDTO.ClientId,
IssuerSigningKeys = config.SigningKeys,
ValidIssuer = config.Issuer
};
JwtSecurityTokenHandler tokendHandler = new JwtSecurityTokenHandler();
SecurityToken jwt;
var validatedToken = (SecurityToken)new JwtSecurityToken();
try
{
var result = tokendHandler.ValidateToken(access_token, validationParameters, out jwt);
var dataToValidate = jwt as JwtSecurityToken;
return true;
}
catch (Exception ex)
{
string m = ex.Message;
Console.WriteLine("FormatException: " + m);
return false;
}
}