【问题标题】:Azure AD OBO ReconsentAzure AD OBO 重新同意
【发布时间】: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


【解决方案1】:

正如我在cmets中所说,如果只是添加新权限,请不要使用prompt='consent',因为这会导致每次以用户身份登录时都会触发管理员同意页面。

添加新权限时,只需征得管理员同意即可,无需再次征得用户同意。因此,您只需在 Azure 门户中授予管理员许可。或者,使用管理员同意的url:https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id={client-id}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-30
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    相关资源
    最近更新 更多