OAuth2代理-用户如何接受中间层权限?

时间:2019-06-24 07:50:20

标签: azure oauth-2.0 azure-active-directory send-on-behalf-of

我正在检查OAuth2,关于代理流有一件我不了解的事情。 流看起来像这样: 我们有:

  • App1(前端)
  • App2(网络API)
  • App3(数据资源(另一个Web API))

假设他们的设置是这样的:

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

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

1 个答案:

答案 0 :(得分:2)

根据doc,在OAuth 2.0 On-Behalf-Of流中,中间层服务没有用户交互才能获得用户同意访问下游API(在您的情况下为App3)。

因此,在身份验证过程中,作为同意步骤的一部分,预先显示了授予对下游API的访问权限的选项。

要了解如何为您的应用设置此设置,请参见Gaining consent for the middle-tier application