Azure AD OpenId Connect令牌身份验证

时间:2016-11-23 13:01:40

标签: azure authentication asp.net-web-api openid dotnetopenauth

我遇到了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服务的问题。

主要目标是拥有一个单独的令牌验证服务。

提前致谢。

0 个答案:

没有答案