Azure AD - 子项目的特定角色

时间:2017-02-09 09:14:34

标签: azure azure-active-directory

我希望使用Azure Active Directory开发应用程序,主要是因为内置支持在Web API和各种Azure工具中轻松进行身份验证。

我的应用程序将包含许多项目,每个项目都包含许多子项目。在涵盖身份验证的情况下,我正试图找出如何使用Azure AD处理授权。我设想每个子项目都会有不同的角色(5-10),人们会按子项目分配给他们。

现在,我知道AD支持角色和组。角色是权限集,组是用户集。虽然我可以为每个子项目创建一个组,但我希望某些角色可以根据每个较大的项目而有所不同,所以我不能只检查给定用户是否被分配给X小组和Y角色。更不用说,因为可以将用户分配给多个组和角色,所以我没有看到指定该角色仅适用于单个组的方法(因为用户可能不打算将其用于在所有小组中的作用)。

因此,我现在看到的唯一方法是在每次创建特定于每个项目的新项目和子项目时创建新角色。但是,随着这些项目和子项目的不断创建和删除,我希望我们能够开始达到AD支持的角色数量的上限(特别是基于每个用户)。

在传统的Active Directory中,我希望这可以通过组织单位来处理,组织单位可以代表每个项目和每个子项目,每个子项目都有指定的角色和组。但是,根据https://docs.microsoft.com/en-us/azure/active-directory-domain-services/active-directory-ds-admin-guide-create-ou,Azure AD中的组织单位不支持,并且无法通过AD Graph API分配。

使用Azure AD,除了此时每个子项目的独特角色之外,还有更好的方法吗?

谢谢!

编辑以获取更多信息:

现在,Azure AD支持组和角色。让我们说我有两个项目,A和B,每个项目都有两个内部子项目,A1和A2,以及B1和B2。此外,我有一个用户,我希望分配给A1上的管理员角色,B2上的高级用户角色,以及无法访问B2或A1。

似乎我可以为A1,A2,B1和B2创建一个组,并简单地将用户分配给组A1和B2。在后端,我可以指定用户应该在这些组中并拒绝任何不可访问的用户。

好的,这样可以处理组访问权限,但我想分配角色。我可以授予他们管理员和高级用户,但是他们会在他们所在的两个组中拥有这两个角色,因为我无法在组的上下文中分配角色。

我能看到的唯一其他方法是为每个组创建不同的角色,所以现在我有了#34; Admin-A1"," Power User-A1",&# 34; Admin-A2"," Power User-A2"," Admin-B1"," Power User-B1"," Admin- B2"和" Power User-B2",但随着时间的推移,这会大大增加我的对象数量(50个项目,每个10个子项目,8个角色将开始在那里工作,尽管500k是一个很高的门槛)。

我认为有这么多角色的可维护性问题。由于我无法将角色与组关联起来,并且只能为其指定显示名称和描述(两者对项目所有者在分配时都很有用),您如何建议我在后端识别哪些角色与哪个项目相关联(无需保留我自己的guid列表来存储额外的属性)?有没有办法用角色/组提交自定义属性?

1 个答案:

答案 0 :(得分:0)

您正在开发什么样的角色?你的意思是申请角色吗?

根据我的理解,我们可以为Azure门户上的每个子项目注册一个单独的应用程序,并根据我们注册的每个应用程序自定义角色,并将角色分配给我们想要的用户/组。此角色应仅适用于应用程序的相应项目。

有关基于角色管理应用程序的更多详细信息,您可以参考代码示例here

  

,我希望我们能够开始达到AD支持的角色数量的上限(特别是基于每个用户)。

单个用户的角色没有此限制。但是,如果您使用的是免费版Azure AD,则它支持500,000个对象。对象是目录服务中的条目,由其唯一的可分辨名称表示。以下是两个有用的链接供您参考:

Azure AD service limits and restrictions

Azure Active Directory editions