【问题标题】:IDX10503: Signature validation failed with Microsoft Graph and Azure ADIDX10503:Microsoft Graph 和 Azure AD 的签名验证失败
【发布时间】:2018-12-20 15:36:49
【问题描述】:

我有一个 ASP.NET Core WebApi,它使用 Azure AD 承载令牌(由前端传递,使用 adal.js 获取)。
目前,我们正在使用 Azure AD Graph API,一切正常。
作为recommended by Microsoft,我们想从 Azure AD Graph API 迁移到 Microsoft Graph。

我在 API 和前端将受众从 https://graph.windows.net 更改为 https://graph.microsoft.com。我可以成功获取一个令牌,它在 jwt.io 中解密时看起来与旧的几乎相同,但是当我将它传递给 API 时,我得到:

承载未通过身份验证。失败消息:IDX10503:签名验证失败。尝试的密钥:'Microsoft.IdentityModel.Tokens.X509SecurityKey

我错过了什么吗?据我所知,应该可以使用 Microsoft Graph 登录吧?

【问题讨论】:

    标签: azure asp.net-web-api jwt azure-active-directory microsoft-graph-api


    【解决方案1】:

    如果我理解正确,您已将 API 受众配置为 MS Graph API 受众。 你不应该这样做。 首先,MS Graph API 访问令牌有点特殊,您不应该尝试验证它们, 其次,因为您的 API 不是 MS Graph API。

    您的前端应该为您的 API 获取访问令牌。 这要求您将 API 受众配置为其客户端 ID 或应用程序 ID URI(或两者)。 Azure AD 允许前端使用其中任何一个来获取令牌。 然后,API 可以使用 On-Behalf-Of 流将其交换为 MS Graph API 令牌。

    【讨论】:

    猜你喜欢
    • 2016-01-13
    • 2017-05-19
    • 2017-09-02
    • 2017-11-26
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    相关资源
    最近更新 更多