如何配置用户访问受Azure AD保护的API oAuth2

问题描述:

我们有一个现有的“私人/内部”API(非MS/Azure),我们希望通过Azure AD提供的oAuth2来保护,以便用户Azure AD管理员可以维护API的访问权限。如何配置用户访问受Azure AD保护的API oAuth2

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

根据我的理解,该API预计会根据我的理解验证令牌中收到的作用域并作出关于访问的决定。

但我无法弄清楚如何在Azure AD中针对用户配置API访问范围。即如何链接特定用户和Azure AD中的API范围?

有人可以提供意见吗?

谢谢。

+0

你说的大部分内容都是关注点,但是我失去了“如何链接特定用户和Azure AD中的API范围”。你只希望一个用户能够访问API吗?这是公共还是私人API? –

+0

我已更新说明。这是一个内部API,我们希望通过授予Azure AD中的访问权限仅限选定的用户来控制谁可以调用它。 – spoonboy

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

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

上的API控制器或在他们的行动的属性[Authorize]然后可以用所需的角色被配置为访问它们,像这样: [Authorize(Roles = "Admin, Writer, Approver")](任何三种命名角色的访问)。

有一个sample它演示了这一点。

+0

我已经厌倦了设置“需要用户分配”,但描述中提到它“仅在为基于SAML的SSO或带有Azure AD的WIA配置应用程序时启用”。那么,它会在非WAI应用上使用oAuth2吗? – spoonboy