我的系统由Angular前端和.Net Core API后端组成。两者都在Azure门户中注册为单独的Active Directory应用。
因此,两个应用程序均受Azure AD保护。 Angular前端上的身份验证用户可以公开和使用API。
问题是-我希望用户具有不同类型的用户角色(用户/主持人/管理员)。这些角色将根据用户角色使某些API端点可访问或不可访问。用户角色也会影响Angular的UI。
从我的研究看来,我可以在Azure AD上使用称为Application Roles的东西,但是我对如何实现它们迷失了。
我有以下问题-
答案 0 :(得分:1)
应在哪个注册的Azure AD应用程序(API或Angular)上定义应用程序角色?
我想说的是在API应用程序上注册它们。 无论如何,您都无法在前端强制执行这些角色,因此至少需要在后端对其进行授权检查。
我将如何访问这些角色-它们是包含在承载令牌中还是我需要进行Microsoft Graph API调用来检索它们?
如果您在API应用中定义它们并将它们分配给用户,则它们将位于访问令牌中。 如果通过隐式流获取令牌,令牌中的金额会有一定的限制,但是如果您像您提到的那样拥有3个,则应该没事。