Microsoft Graph API令牌的范围不同于Azure门户中设置的范围

yfa*_*183 4 c# asp.net azure office365 microsoft-graph

通过使用jwt.io,我设法确定我的应用为Microsoft Graph API获取的令牌仅包含Directory.Read.All和User.Read的范围:

在此处输入图片说明

这与我在Azure门户中设置的权限不同,Azure门户包含更多范围,例如User.ReadBasic.All:

在此处输入图片说明

有没有什么办法解决这一问题?

Jas*_*ton 5

在用户已经登录并同意使用您的应用后,回到您的应用并添加其他权限时,我通常会看到这种情况。该用户继续获得“旧”权限,但是新用户将获得新的权限。

如果我的猜测是正确的,那么您可能最初是使用Just Directory.Read.All和进行注册的User.Read。您使用您的用户帐户登录。然后,您去添加了其他权限,然后重试。听起来对吗?

问题在于,Azure的v1终结点不会动态更新已同意用户的范围。您需要为这些用户强制提供“重新同意”体验。prompt=consent向您的授权URL 添加参数。这将使用户再次看到具有更新的权限列表的同意屏幕。