2017-02-09 27 views
2

特定的角色,我希望发展,因为主要使用Azure的Active Directory中的应用程序,内置于网络API和在各种Azure工具轻松验证支持。Azure的AD - 为子项目

我的应用程序将包括一定数量的每一个都包含若干个子项目的项目。通过身份验证,我正试图解决现在如何处理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组。在后端,我可以指定用户应该在这些组中,并拒绝任何不是的人访问。

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

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

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

回答

0

你正在开发什么样的角色?你的意思是应用程序的角色?

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

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

,我预计我们会开始打的AD一共多少角色支持上端盖(尤其是在每个用户的基础上)。

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

Azure AD service limits and restrictions

Azure Active Directory editions

+0

飞嗨,我更新了原来的问题添加一个应用场景,说明为什么它似乎很奇怪,需要这么多不同的角色,而不是一些它们之间的某种属性。谢谢! – Xaniff

+0

不知道我理解正确。根据我的理解,你提到的所有子项目似乎都是一个单独的项目。我们可以在Azure上注册相应的应用程序,并通过同一租户中的组或角色管理它们,以便所有项目都可以共享相同的用户管理。如果我误解了,请随时告诉我。 –

+0

它们对代码示例[active-directory-dotnet-webapp-roleclaims](https://github.com/Azure-Samples/active-directory-dotnet-webapp-roleclaims)和[active-directory-dotnet-webapp -groupclaims](https://github.com/Azure-Samples/active-directory-dotnet-webapp-groupclaims)? –