概述
只有是个公司,基本上都有邮箱和 AD(Active Directory). 在 AD 里,曾经有了:
-
用户
- 账号密码
- 邮箱
-
用户组
- 组织架构
所以对于一些仅限于本公司肯定范畴内人员应用的治理或后盾或经营运维类零碎,其实是非常适合对接 AD 来进行认证、分组,以及依据分组来进行权限调配的。
对于 Rancher,假如使用者只会有这么几类:
- 管理员:运维部门
- 我的项目管理员:我的项目负责人
- 使用者:开发
- 只读用户:其余人员
那么就能够间接对接 AD 来实现认证、登录、分组、受权。
📚️Reference:
这使 Rancher 管理员能够对外部用户零碎中的用户和组进行集群和我的项目的访问控制,同时容许最终用户在登录 Rancher UI 时应用其 Active Directory 凭据进行身份验证。
AD 账号申请
首先必须从邮箱管理员或 AD 管理员那申请一个新的 AD 用户,以用作 Rancher 的服务账户。此用户须要的权限是:
- 能够搜寻、读取(只读即可)AD 域下的用户和组,及其属性(比方至多要有 运维部门 / 开发部门 / 我的项目部门相干 OU 下的权限)
配置步骤
具体的步骤间接查看这里:对接 Active Directory | Rancher 文档
这里联合集体的实际说一些实用技巧:
AD 服务器参数
- 服务帐户 (service account) 用户名:就是 AD 管理员提供给你的 CN, 这里可能会给到你这样的一个串:
CN=RancherSA,OU=ApplicationAccount,DC=example,DC=com
, 那么就只须要填写RancherSA
就好了。 - 用户搜寻库:如果 运维部门 / 开发部门 / 我的项目部门 都在 IT 部之下,IT 部的 OU 是:
OU=ITDepartment,DC=example,DC=com
, 那么就填写这个。 - 用户组搜寻库:这里折腾了很久,你肯定要布局分明要依据什么维度来划分用户组,并且该用户组对应的
objectClass
是什么,而且该objectClass
肯定要有member
这样的属性和用户来关联。
对于用户组的确认,我应用 JXplorer 来进行具体的剖析和查看,具体如下:
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 账号间接就是管理员级别的权限.
受权组
至此,就能够依据用户组来进行受权,如下图:
集群级别受权
能够依据用户组来对集群级别进行受权,如下图:
我的项目级别受权
能够依据用户组来对我的项目级别进行受权,如下图:
🎉🎉🎉
系列文章
- Rancher 系列文章
📚️参考文档
- 对接 Active Directory | Rancher 文档