是他们设置用户角色和权限的标准方法。
选项1: 创建组并分配成员。
我的人民dn如下。
DN: uid=55e44a75e4b0f16711714165,ou=people,dc=cofinding,dc=com
我为角色创建了群组。并在那个
中分配成员DN: cn=ADMIN,ou=roles,dc=cofinding,dc=com
并在此处添加了具有角色ADMIN的成员。大约有50,000名成员加入了ADMIn角色。
选项2:在人员中添加自定义值角色.e.g。我创建了dn as user_role
DN: uid=55e44a75e4b0f16711714165,ou=people,dc=cofinding,dc=com
在人们中,我们可以添加user_role = ADMIN,MASTER_ADMIN
是他们的任何其他选择或标准做法。因为角色在任何身份验证过程中都非常重要。
答案 0 :(得分:3)
首先:角色与身份验证无关,它们在授权过程中使用。当身份验证时,系统会根据一组凭据验证用户是谁;一旦建立,就会在授权过程中查询角色,以确定是否应授予用户访问某些特定资源的权限。
回答关于角色的问题:两种方式都有效。第一种方法可能是最常见的方法(大多数情况与LDAP中通常的结构方式一致。请查看groupOfNames和groupOfUniqueNames对象类来表示您的角色)。根据用例,我认为后者在许多情况下可能更实用,但你需要考虑到它不是标准的“LDAP方式”。
答案 1 :(得分:0)
另一种选择是选项#1和#2之间的混合。 您可以使用所谓的动态组或URL组来代替使用静态组(选项1):
dn: cn=ADMIN,ou=roles,dc=cofinding,dc=com
objectClass: top
objectClass: groupOfURLs
cn: ADMIN
memberURL: ldap:///ou=people,dc=cofinding,dc=com??sub?user_role=ADMIN
memberURL是一个过滤器,用于根据特定属性值和基本DN确定哪些用户属于该组。在上面的示例中,ou=people,dc=cofinding,dc=com
下具有属性user_role=ADMIN
的每个用户都将自动添加到ADMIN组中。以下是管理员用户示例:
dn: uid=55e44a75e4b0f16711714165,ou=people,dc=cofinding,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: John Doe
sn: Doe
uid: 55e44a75e4b0f16711714165
user_role: ADMIN
通过这种方法,您可以从两个选项(#1和#2)中获得最佳效果:
您可以查询该组以获取成员列表:
$ ldapsearch -p 1389 -D "cn=directory manager" -w password -b "cn=ADMIN,ou=roles,dc=cofinding,dc=com" "(objectClass=groupOfURLs)"
dn: cn=ADMIN,ou=roles,dc=cofinding,dc=com
cn: ADMIN
memberURL: ldap:///ou=people,dc=cofinding,dc=com??sub?user_role=ADMIN
member: uid=55e44a75e4b0f16711714165,ou=people,dc=cofinding,dc=com
您可以在搜索过滤器中使用memberOf虚拟属性:
(memberOf=cn=ADMIN,ou=roles,dc=cofinding,dc=com)