我试图了解 Azure AD 中的角色和组、范围之间的区别。
我正在尝试在 Azure AD 中创建 protected Web API,如果我的理解有误,请纠正我。
组 --> Active Directory组已创建,需要访问权限的用户将被添加到组中,如果以下组规划不正确,请更正。
**Groups:**
API_Read_AppName --> Group1
API_ReadWrite_AppName --> Group 2
我假设创建了这两个组,一个是读取的,另一个是读写的,然后想要访问我 protected WebAPI 的用户将被添加到这些组中
角色 --> 这是确定 protected WebAPI 的访问级别的角色
**Roles:**
ReadEMCS
ReadWriteEMCS
我将创建上述角色并将这些角色分配给上面创建的组:
Role --> Group
ReadEMCS --> API_Read_AppName
ReadWriteEMCS --> API_ReadWrite_AppName
我对上述设置感到困惑,因为我的组已经具有读取组和读写组,并且用户将被添加到这些组中,并且根据组中将具有相应访问权限的用户,我的角色在我的情况下在做什么?我是否需要角色,因为在这种情况下,访问权限已由组维护。
- 当使用我们能够管理访问权限的群组时,角色有何用途?
- 在哪些用例中我们需要角色和组来管理访问权限?
- 什么是 Azure AD 中的范围及其用途?
最佳答案
我假设您正在谈论“角色”的应用程序角色。
应用角色和组声明具有相同的效果。在某种程度上,他们的角色是重复的。因此,您无需创建应用角色并将其分配给组。
通常如果用户组太多,超过两百个,那么组 id 不会直接包含在 jwt token 中,您可能需要使用 Microsoft Graph 来获取用户的组。这有点复杂,在这种情况下我们可以选择使用应用程序角色。
此外,如果您的企业应用有 User assignment required启用后,我们就可以选择一起使用应用角色。
简而言之,您可以灵活选择使用应用角色和群组声明。您甚至可以将它们组合起来,例如验证组声明和应用程序角色。
- What are Roles used for when using groups we are able to manage access ?
角色声明不是必需的。
- What are the usecases where we need a Role & Groups to manage access ?
这取决于您的需求。
- What is a Scope in Azure AD and what it is used for ?
范围是 setting specific to web APIs 。它定义了客户端访问您的 Web API(服务端)所需的权限。你可以把它看成是最基本的权限。仅当首先满足此条件时,我们才会考虑验证组声明或应用角色。
关于.net - Azure AD MSAL 中的范围、角色和组之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67876460/