首页 > 解决方案 > 使用 Azure AD 和应用程序角色保护 Angular 和 .Net Core API

问题描述

我的系统由 Angular 前端和 .Net Core API 后端组成。两者都在 Azure 门户中注册为单独的 Active Directory 应用程序。

因此,这两个应用程序都受 Azure AD 保护。API 由 Angular 前端经过身份验证的用户公开和使用。

问题是 - 我希望用户拥有不同类型的用户角色(用户/版主/管理员)。这些角色将根据用户角色使某些 API 端点可访问或不可访问。用户角色也会塑造 Angular 上的 UI。

根据我的研究,我似乎可以在 Azure AD 上使用称为应用程序角色的东西,但是我不知道如何实现它们。

我有以下问题-

  1. 应在哪个已注册的 Azure AD 应用程序(API 或 Angular)上定义应用程序角色?
  2. 我将如何访问这些角色 - 它们是包含在不记名令牌中还是我需要调用 Microsoft Graph API 来检索它们?

标签: c#angularazureazure-active-directory

解决方案


应在哪个已注册的 Azure AD 应用程序(API 或 Angular)上定义应用程序角色?

我会说在 API 应用程序上注册它们。无论如何,您无法在前端强制执行这些角色,因此您至少需要在后端对它们实施授权检查。

我将如何访问这些角色 - 它们是包含在不记名令牌中还是我需要调用 Microsoft Graph API 来检索它们?

如果您在 API 应用程序中定义它们并将它们分配给用户,它们将位于访问令牌中。如果通过隐式流获得令牌中的数量会有一些限制,但如果你有像你提到的 3 一样,你应该没问题。


推荐阅读