【问题标题】:How to configure users access to an API protected with Azure AD oAuth2如何配置用户访问受 Azure AD oAuth2 保护的 API
【发布时间】:2017-07-28 14:43:10
【问题描述】:

我们有一个现有的“私有/内部”API(非 MS/Azure),我们希望使用 Azure AD 提供的 oAuth2 来保护它,以便用户对 API 的访问可以由 Azure AD 管理员维护。

执行此操作的方法似乎是将 API 配置为 Azure AD 中的 Web 应用程序。然后,用户可以从 Azure oAuth2 服务器获取授权令牌并将其发送到 api(例如,从单页 Web 应用程序)。

根据我的理解,API 应验证令牌中收到的范围,并就访问做出决定。

但我不知道如何在 Azure AD 中针对用户配置 API 访问范围。 IE。如何在 Azure AD 中链接特定用户和 API 范围?

有人可以建议吗?

谢谢。

【问题讨论】:

  • 您所说的大部分内容都是正确的,但我在“如何在 Azure AD 中链接特定用户和 API 范围”时迷失了方向。您是否只希望一个用户能够访问 API?这是公共 API 还是私有 API?
  • 我已经更新了描述。这是一个内部 API,我们希望通过仅将 Azure AD 中的访问权限授予选定用户来控制谁可以调用它。

标签: oauth-2.0 active-directory azure-active-directory


【解决方案1】:

配置应用程序时,可以启用“需要用户分配”(在 Azure 门户的企业应用程序属性中),然后配置哪些用户或组应具有访问权限。

或者,如果您需要更多粒度,您可以使用基于角色的访问,您可以在应用程序清单 (https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles) 中定义角色,然后将用户分配给不同的角色。

API 控制器或其中的操作上的 [Authorize] 属性可以配置为访问它们所需的角色,如下所示: [Authorize(Roles = "Admin, Writer, Approver")](三个命名角色中的任何一个都可以访问)。

有一个sample 证明了这一点。

【讨论】:

  • 我已经厌倦了设置“需要用户分配”,但描述说它“仅在为基于 SAML 的 SSO 或带有 Azure AD 的 WIA 配置的应用程序中启用”。那么,它会在非 WAI 应用上与 oAuth2 一起使用吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2020-02-19
相关资源
最近更新 更多