【问题标题】:Getting Exception while validating access token验证访问令牌时出现异常
【发布时间】:2019-06-29 01:03:07
【问题描述】:

我收到以下异常。 我已经使用 post 方法使用服务主体获取令牌 Message = "IDX10708: 'System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler' 无法读取此字符串

我正在使用 ""https://login.microsoftonline.com/{TenantId}/oauth2/token" 生成访问令牌并尝试对其进行验证

            SecurityToken securityToken;
            JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
            IConfigurationManager<OpenIdConnectConfiguration> configurationManager =
                   new ConfigurationManager<OpenIdConnectConfiguration>(
                       $"https://login.microsoftonline.com/{tenantId}/.well-known/openid-configuration",
                       new OpenIdConnectConfigurationRetriever());

            OpenIdConnectConfiguration openIdConfig = await configurationManager.GetConfigurationAsync(CancellationToken.None);
            TokenValidationParameters validationParameters = new TokenValidationParameters()
            {
                ValidateLifetime = true,
                IssuerSigningKeys = openIdConfig.SigningKeys,
                ValidateIssuerSigningKey = true,
                RequireSignedTokens = true

            };

            var userClaims = handler.ValidateToken(token, validationParameters, out securityToken);
            return userClaims.Claims.Where(claim => claim.Type == "appid").FirstOrDefault().Value;

我在验证时遇到异常

【问题讨论】:

    标签: c# azure validation access-token


    【解决方案1】:

    请尝试通过放置 try/catch 块来验证代码,并在调试器中查看声明值,例如uniquer_name 等

    您可以关注此主题以获得更清晰的信息:-

    When is JWTSecurityTokenHandler.ValidateToken() actually valid?

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 2012-09-18
      • 2020-07-12
      • 2012-01-19
      相关资源
      最近更新 更多