Azure Active Directory OAuth2-如何限制将令牌传递给未授权的应用

我正在尝试将active Directory配置为在以下用例中工作。

我在Azure API管理中公开了1个API。我希望仅由授权的应用程序调用此API。 我创建了一个代表该API的AD应用注册,并关联了一个应用URI ID。 我还创建了一个代表我的客户端应用程序的AD应用程序注册。

在POSTMAN中,我使用OAuth2客户端凭据授予类型来获取令牌,并且该令牌有效。我有一个包含正确受众的令牌(=我的API的应用程序应用URI ID)。

非常奇怪的是,我没有对2个AD应用之间的权限做任何事情。我以为由于“ API权限/配置的权限”,我需要授权客户端应用程序使用API​​应用程序,但是听起来好像不需要它。

但这不是我想要的,因为我只希望授权的应用程序能够获得具有正确受众价值的令牌。

我在配置中缺少什么吗?

qqmcgs2009 回答:Azure Active Directory OAuth2-如何限制将令牌传递给未授权的应用

默认情况下,受众通常是指“使用授权服务器的所有API”。一些(但不是全部)供应商允许以更精细的方式自定义它。

有时有用的另一个选项是将自定义范围用作高级特权:

  • UI 1包括scope = Orders
  • UI 2包含scope = Reports
  • API 1需要scope = Orders
  • 如果UI 2调用API 1,则由于缺少必需的作用域,您可以拒绝访问

在实现相同目标的同时,这可能是一种比受众群体更灵活的机制

如果您是在最终用户的同意屏幕上显示这些详细信息,则可能没有任何意义。

,

我找到了继续的步骤,这是步骤:

  • 在后端应用程序中,我们需要将所需的用户分配设置为true
  • 然后,我们需要手动更新后端应用程序的清单以创建“应用程序角色”。我们可以创建多个角色来充当“作用域”
  • 然后,我们需要在AD Client App中设置API权限,以授权BackEnd App的多个应用程序角色。

通过此配置,当客户端应用请求令牌时,如果角色被授权,它将获得令牌;如果令牌的“角色”声明,令牌将包含角色列表。

有关配置的详细信息,请参见该帖子的部分:https://github.com/Azure-Samples/active-directory-dotnet-daemon#ensure-that-tokens-azure-ad-issues-tokens-for-your-web-api-only-to-allowed-clients

本文链接:https://www.f2er.com/3069917.html

大家都在问