1

我正在检查 OAuth2,关于 On-Behalf-Of 流的一件事我不明白。流程如下所示: 我们有:

  • 应用程序1(前端)
  • 应用程序2(网络 API)
  • App3(数据资源(另一个 Web API))

假设它们是这样设置的:

  • App1 - 不公开任何 API;需要使用“App2Permission”的权限
  • App2 - 公开“App2Permission”;需要使用“App3Permission”的权限
  • App3 - 公开“App3Permisson”;不需要任何权限

现在,当用户转到 App1 时,它会将他重定向到 AAD 的登录页面 - 用户接受 App1 需要的“App2Permisions”。之后,App1 获得 App2 的访问令牌。App1 向 App2 发送请求(包括我刚才提到的访问令牌)。App2 收到这个请求,需要访问 App3 来获取实际数据。但是,它需要“App3Permission”——它是如何获得的?App2 不是能够向用户显示一些登录屏幕的交互式应用程序。

4

1 回答 1

2

根据文档,在 OAuth 2.0 On-Behalf-Of 流程中,中间层服务没有用户交互来获得用户同意访问下游 API(您的案例中的 App3)。

因此,授权访问下游 API 的选项作为身份验证期间同意步骤的一部分预先呈现。

要了解如何为您的应用程序进行设置,请参阅获得中间层应用程序的同意

于 2019-06-25T05:42:31.900 回答