如何使用OWIN从PPE环境验证AAD令牌?

时间:2017-07-07 17:56:01

标签: owin

我使用下面的代码来验证AAD访问令牌。

        app.UseWindowsAzureActiveDirectoryBearerAuthentication(
            new WindowsAzureActiveDirectoryBearerAuthenticationOptions
            {
                Tenant = ConfigSettings.MicrosoftAadTenant,
                TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateAudience = false,
                    ValidateIssuer = false
                }
            });

代码正常工作,直到我切换到使用从PPE环境生成的令牌,其Iss为“https://sts.windows-ppe.net/ ...”。我在下面粘贴了错误消息。你知道怎么解决吗?

  

Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationMiddleware   错误:0:身份验证失败   System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException:   IDX10500:签名验证失败。无法解决   SecurityKeyIdentifier:'SecurityKeyIdentifier       (       IsReadOnly = False,       数= 2,       条款[0] = X509ThumbprintKeyIdentifierClause(Hash = 0x871BE0E2BDD307841D01C8151AE2717D2DB9F376),       Clause [1] = System.IdentityModel.Tokens.NamedKeySecurityKeyIdentifierClause       )',

谢谢,

1 个答案:

答案 0 :(得分:0)

好的,我找出原因。查看git repo处的Microsoft Owin源代码,登录URL是硬编码的。没有办法配置它。我通过编写自己的扩展方法解决了这个问题。