我开发了一个使用Express MSAL tutorial作为身份验证机制的小应用程序。
我可以登录并通过https://graph.microsoft.com/v1.0/me请求我的用户信息。
但是,如果我切换到测试用户(在同一个域中),我在访问https://graph.microsoft.com/v1.0/me时会收到403错误。还确认了这种情况发生在同事身上(也在同一个域中)
使用jwt.ms,我可以看到我自己的用户获得的访问令牌具有scp: openid profile User.Read email
,而我的测试用户仅获得scp: openid profile email
。所以我猜,它正在按预期工作。但是,问题是-如何添加用户。向使用该应用的所有用户阅读?
在Azure门户中我的应用的API权限中,我将Delegated
User.Read
作为权限。(我认为这是自动添加的)x1c 0d1x
1条答案
按热度按时间5fjcxozz1#
我尝试在我的环境中重现相同的错误,但得到了如下相同的错误:
如果用户没有执行操作所需的权限,则通常会发生此错误:
我同意 * DipeshJadhav *,生成scope为
https://graph.microsoft.com/.default
的令牌:访问令牌包含**
user.read
**权限,解码如下:通过正确的范围后,我能够成功读取用户详细信息:
在您的代码中,尝试将范围传递为:
scopes: ["https://graph.microsoft.com/.default"]