IDX10503:Microsoft Graph和Azure AD

时间:2018-07-12 11:56:14

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

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

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

  

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

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

1 个答案:

答案 0 :(得分: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令牌。