使用Azure AD和应用程序角色保护Angular和.Net Core API的安全

时间:2019-09-25 16:35:11

标签: c# angular azure azure-active-directory

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

因此,两个应用程序均受Azure AD保护。 Angular前端上的身份验证用户可以公开和使用API​​。

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

从我的研究看来,我可以在Azure AD上使用称为Application Roles的东西,但是我对如何实现它们迷失了。

我有以下问题-

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

1 个答案:

答案 0 :(得分:1)

  

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

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

  

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

如果您在API应用中定义它们并将它们分配给用户,则它们将位于访问令牌中。 如果通过隐式流获取令牌,令牌中的金额会有一定的限制,但是如果您像您提到的那样拥有3个,则应该没事。