【发布时间】:2017-02-10 09:07:55
【问题描述】:
我正在测试向来宾用户发送加入租户邀请的 Microsoft Graph Beta 端点。我使用的端点是:
https://graph.microsoft.com/beta/invitations
主体:
{
"invitedUserEmailAddress": "abc@xyz.com",
"inviteRedirectUrl": "https://myDomain"
}
我正在通过 ADAL4J api 为本地管理员用户获得的授权标头中传递不记名令牌。但是,这个调用给了我一个 401 Unauthorized 错误。以下是回复:
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "Access token validation failure.",
"innerError": {
"request-id": "91f8129e-70cc-467d-a45b-9309e55788d6",
"date": "2017-02-10T08:46:09"
}
}
}
关于如何让这个请求工作的任何线索?在 Github 上,我经历了其他用户面临相同问题的讨论 (eg)。
【问题讨论】:
-
您是否检查了访问令牌中的范围声明?您可以使用 jwt.io 之类的网站来检查它们。此外,您的问题标题谈到了 Azure AD Graph,但这是 Microsoft Graph API。不要混淆它们,它们是具有不同功能的不同 API。
-
@juunas 我可以使用 jwt.io 从访问令牌中获取信息,但我不确定范围声明是什么。你指的是权限吗?我已更改问题的标题。
-
我已授予 Microsoft Graph API 应用程序中的所有权限。我也可以在令牌信息中看到。
-
一个常见的错误是请求所有委派的权限,然后使用使用 client_credentials(仅限应用程序)流程获取的令牌调用,反之亦然或有关令牌的更多详细信息。您应该能够将访问令牌直接粘贴到 jwt.calebb.net 以查看令牌及其声明。
-
@DanKershaw-MSFT 声称这是 ("scp:Calendars.Read Calendars.Read.Shared") 你的意思是什么?
标签: java azure microsoft-graph-api azure-ad-graph-api