如何解决Azure AD OBO 重新同意
我目前正在开发一个应用程序,它由一个前端 SPA 组成,它向 Node 后端发出请求。节点后端向 MS Graph 发出请求。对于这个用例,我设置了运行良好的 OBO 流程。
SPA 使用 MSAL.js 为具有 /.default
范围的中间层 API 请求令牌。中间层 API 在其清单中将客户端称为“knownclient”。在第一次登录时,应用程序希望用户同意来自客户端和中间层的组合范围。 (如果用户之前从未使用过该应用)
现在的问题如下:随着开发过程的进一步深入,在中间层 API 中为 MS Graph 添加了新的范围。但是,尽管在客户端中使用了 /.default
范围,但客户端并未向用户显示同意提示以表示同意使用新的后端范围。
我采用的第一种方法是将 prompt='consent'
设置为前端的 MSAL 设置。这种方法有效,但导致用户每次登录时都要征求他的同意。
预期行为是在中间层 API 更改其范围时仅征求同意。
我必须如何设置我的应用程序才能获得此结果?
解决方法
正如我在评论中所说,如果您只是添加新权限,请不要使用prompt='consent'
,因为这会导致您每次以用户身份登录时都会触发管理员同意页面。
当您添加新权限时,只需授予管理员同意,无需再次请求用户同意。因此,您只需在 Azure 门户中授予管理员同意即可。或者,使用管理员同意的网址:https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id={client-id}
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。