我遇到了Azure Active Directory OpenId
我有一个 ReactJs Web客户端,它对Azure AD进行身份验证,当在token_id
中签名时返回表示JWT令牌。
这将被传递回ASP.Net核心Web Api,然后使用JwtSecurityTokenHandler
中的System.IdentityModel.Tokens.Jwt
进行身份验证。
应用程序启动时,它与Middelware连接。当您在TokenValidated调用上访问OpenIdConnectOption事件时,该令牌已在后端验证。将TokenValidatedContext传入包含JwtSecurityToken的Event方法,我可以访问整个JWT Token。
我创建了一个单独的验证服务,它接受令牌字符串。
public ClaimsPrincipal ValidateToken(string token)
{
SecurityToken validatedToken;
var sectoken = TokenHandler.ReadJwtToken(token);
var tokenValidationParams = new TokenValidationParameters()
{
ValidAudiences = sectoken.Audiences,
ValidIssuer = sectoken.Issuer,
};
return TokenHandler.ValidateToken(token, tokenValidationParams, out validatedToken);
}
SigningKey对象是否为null且ValidateToken失败。如果我在事件调用中执行相同的验证,则SigningKey有效,并且证书设置为Microsoft Cert,这似乎是Azure AD服务的问题。
主要目标是拥有一个单独的令牌验证服务。
提前致谢。