只要是个公司,基本上都有邮箱和 AD(Active Directory). 在 AD 里,已经有了:
所以对于一些仅限于本公司一定范围内人员使用的管理或后台或运营运维类系统,其实是非常适合对接 AD 来进行认证、分组,以及根据分组来进行权限分配的。
对于 Rancher,假设使用者只会有这么几类:
那么就可以直接对接 AD 来实现认证、登录、分组、授权。
📚️Reference:
这使 Rancher 管理员可以对外部用户系统中的用户和组进行集群和项目的访问控制,同时允许最终用户在登录 Rancher UI 时使用其 Active Directory 凭据进行身份验证。
首先必须从邮箱管理员或 AD 管理员那申请一个新的 AD 用户,以用作 Rancher 的服务账户。此用户需要的权限是:
详细的步骤直接查看这里:对接 Active Directory | Rancher 文档
这里结合个人的实践说一些实用技巧:
CN=RancherSA,OU=ApplicationAccount,DC=example,DC=com
, 那么就只需要填写 RancherSA
就好了。OU=ITDepartment,DC=example,DC=com
, 那么就填写这个。objectClass
是什么,而且该 objectClass
一定要有 member
这样的属性和用户来关联。关于用户组的确认,我使用 JXplorer 来进行详细的分析和查看,具体如下:
这里我使用 AD Client - JXplorer
登录截图如下:
关于用户组,当初是想直接使用组织架构来作为用户组,组织架构的信息如下:
objectClass: organizationalUnit
member
却为空!所以,这个是不能用作用户组的.
如果用了这个,并根据用户组来配置权限,那么权限是无法通过用户组来映射到具体的用户的。
第二个选项,是想用邮件组 (mail group)作为用户组,邮件组的信息如下:
objectClass: group
member
和用户 (objectClass: person
) 是关联的。如下图:如上,那么是可以将邮件组 (mail group)作为用户组。而且🐾注意,邮件组是位于另外一个 OU 的,具体为:OU=Mail Group,DC=example,DC=com
综上,用户组搜索库最终为:OU=Mail Group,DC=example,DC=com
这里还是通过 JXplorer, 点击具体的一个人,查看其属性信息,示例如下图:
person
或 user
都可以name
或 cn
都可以sAMAccountName
, 如果想要使用邮箱登录,就是 userPrincipalName
sAMAccountName|sn|giverName
(默认值)(可以通过使用管道 (“|”) 符号分隔属性来指定多个属性。)userAccountControl
(默认值)group
(邮件组)name
distinguishedName
(默认值)member
name
这里填写管理员账号对应的 AD 账号。验证成功该 AD 账号直接就是管理员级别的权限.
至此,就可以根据用户组来进行授权,如下图:
可以根据用户组来对集群级别进行授权,如下图:
可以根据用户组来对项目级别进行授权,如下图:
🎉🎉🎉
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.