Azure AD + Graph API:如何在新权限后重新同意?

时间:2017-08-22 10:10:27

标签: azure azure-active-directory microsoft-graph adal azure-ad-graph-api

我在Azure AD中有一个应用程序注册,它为它设置了一些Graph API委派权限。

该应用程序只是SharePoint中的一个页面,它正在进行图形调用,并使用ADAL.js库进行身份验证。

我现在想在页面上对新的Graph API端点进行额外的Graph调用,因此我需要为应用程序分配一个额外的权限。我在Azure AD中设置此权限并保存。但是,永远不会要求访问SharePoint页面的用户重新同意新的权限,因此新的Graph调用将失败并显示401 Unauthorized消息。

我已经尝试了许多不同的端点和权限,我确信我在应用程序中设置了正确的权限。

如何在应用程序权限更改时自动为用户显示同意对话框?

管理员同意不是一种选择。

1 个答案:

答案 0 :(得分:3)

我记得有一段时间与Azure AD团队的成员讨论过这个问题,这是他当时的建议(尽管我从未尝试过,所以它可能无效)。

基本上他建议的是,当您收到Unauthorized (401)错误时,您会再次将用户重定向到Azure AD登录,即再次关注OAuth授权流程,但在登录URI中包含prompt=consent。这将向用户显示具有最新权限的同意页面。用户同意最新权限后,您可以将用户重定向回应用程序。您可能会发现此链接有助于了解propmpt参数的不同值:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-openid-connect-code

同样,我没有亲自尝试过,所以它可能无效。如果它没有,请告诉我,我将删除我的答案。