【发布时间】:2021-03-29 09:05:49
【问题描述】:
我目前正在开发一个由前端 SPA 组成的应用程序,该 SPA 向 Node 后端发出请求。 Node 后端向 MS Graph 发出请求。对于这个用例,我设置了运行良好的 OBO 流程。
SPA 使用 MSAL.js 为具有 /.default 范围的中间层 API 请求令牌。中间层 API 在其 Manifest 中将客户端称为“knownclient”。在第一次登录时,应用程序希望用户同意来自客户端和中间层的组合范围。 (如果用户以前从未使用过该应用)
现在的问题如下:通过在开发过程中更进一步,在中间层 API 中为 MS Graph 添加了新范围。但是,尽管在客户端中使用了 /.default 范围,但客户端并未向用户显示同意提示以同意使用新的后端范围。
我的第一种方法是将prompt='consent' 设置为前端的 MSAL 设置。这种方法有效,但会导致用户每次登录时都征得同意。
如果中间层 API 更改其范围,预期的行为将只是征求同意。
我必须如何设置我的应用程序才能获得此结果?
【问题讨论】:
-
如果添加新权限,为什么不直接在 Azure 门户中授予管理员同意?
-
我读到过。我只是不知道在给予管理员同意后是否提示用户给予同意。如果是这样的话,那可能就是我要走的路。
-
如果管理员同意,则不会再次提示用户同意。
-
好的,我明白了。非常感谢您的回答!!如果我不想使用
prompt='consent'我猜是这样,还是有其他方法? -
如前所述,如果添加新权限,只需在 Azure 门户中直接授予管理员同意即可。或者,使用管理员同意的网址:
https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id={client-id}。
标签: azure-active-directory msal msal.js