Rancher 系列文章 -Rancher 对接 Active Directory 实战

简介: Rancher 系列文章 -Rancher 对接 Active Directory 实战

概述

只要是个公司,基本上都有邮箱和 AD(Active Directory). 在 AD 里,已经有了:

  • 用户
  • 账号密码
  • 邮箱
  • 用户组
  • 组织架构

所以对于一些仅限于本公司一定范围内人员使用的管理或后台或运营运维类系统,其实是非常适合对接 AD 来进行认证、分组,以及根据分组来进行权限分配的。

对于 Rancher,假设使用者只会有这么几类:

  1. 管理员:运维部门
  2. 项目管理员: 项目负责人
  3. 使用者: 开发
  4. 只读用户: 其他人员

那么就可以直接对接 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

登录截图如下:

JXplorer 登录截图

JXplorer 首页

关于用户组,当初是想直接使用 组织架构 来作为用户组,组织架构的信息如下:

  • objectClass: organizationalUnit
  • 虽然从下图来看,组织架构 和 用户是有层次关系的,但是,在其属性中,member 却为空!

所以,这个是 不能用作用户组的.

如果用了这个,并根据用户组来配置权限,那么权限是无法通过用户组来映射到具体的用户的。

第二个选项,是想用 邮件组 (mail group) 作为用户组,邮件组的信息如下:

  • objectClass: group
  • member 和用户 (objectClass: person) 是关联的。如下图:

mail group AD

如上,那么是可以将 邮件组 (mail group) 作为用户组。而且🐾注意,邮件组是位于另外一个 OU 的,具体为:OU=Mail Group,DC=example,DC=com

综上,用户组搜索库最终为:OU=Mail Group,DC=example,DC=com

配置用户

这里还是通过 JXplorer, 点击具体的一个人,查看其属性信息,示例如下图:

用户的属性

  • 对象类:personuser 都可以
  • 用户名属性:namecn 都可以
  • 登录属性:一般都为 sAMAccountName, 如果想要使用邮箱登录,就是 userPrincipalName
  • 搜索属性:sAMAccountName|sn|giverName (默认值)(可以通过使用管道 (“|”) 符号分隔属性来指定多个属性。)
  • 用户启用属性:userAccountControl (默认值)

配置组

  • 对象类:group (邮件组)
  • 名称属性:name
  • 用户组成员属性:distinguishedName (默认值)
  • 用户组成员映射属性:member
  • 用户组域名属性:name

测试身份验证

这里填写管理员账号对应的 AD 账号。验证成功该 AD 账号直接就是管理员级别的权限.

授权组

至此,就可以根据用户组来进行授权,如下图:

根据用户组来进行授权

集群级别授权

可以根据用户组来对集群级别进行授权,如下图:

集群级别授权

项目级别授权

可以根据用户组来对项目级别进行授权,如下图:

项目级别授权

🎉🎉🎉

系列文章

📚️参考文档

相关文章
|
6月前
|
运维 数据可视化 Linux
云计算|OpenStack|社区版OpenStack安装部署文档(七--- 仪表盘服务dashboard的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(七--- 仪表盘服务dashboard的安装部署---Rocky版)
156 0
|
JSON Kubernetes Unix
Kubernetes crictl管理命令详解
Kubernetes crictl管理命令详解
|
Kubernetes Docker Windows
『阿里云加速』Docker DeskTop安装kubernetes时一直停留在Starting处理方案
📣读完这篇文章里你能收获到 - Docker DeskTop 安装K8S失败处理方案 - Docker 配置镜像加速器 - 数字签名的限制解除
1434 0
『阿里云加速』Docker DeskTop安装kubernetes时一直停留在Starting处理方案
|
3月前
|
存储 Linux Docker
【Azure 应用服务】应用服务中发布Docker Container,如何添加卷(如Azure File Share)以便永久存储文件
【Azure 应用服务】应用服务中发布Docker Container,如何添加卷(如Azure File Share)以便永久存储文件
|
6月前
|
存储 Kubernetes Cloud Native
云原生|kubernetes|centos7下离线化部署kubesphere-3.3.2---基于kubernetes-1.22.16(从网络插件开始记录)
云原生|kubernetes|centos7下离线化部署kubesphere-3.3.2---基于kubernetes-1.22.16(从网络插件开始记录)
176 0
|
Cloud Native Shell Linux
云原生之使用Docker部署File Manager文件管理系统
云原生之使用Docker部署File Manager文件管理系统
1330 1
云原生之使用Docker部署File Manager文件管理系统
|
存储 Kubernetes 关系型数据库
关于K8s中Ansible AWX(awx-operator)平台Helm部署的一些笔记
整理一些K8s中通过Helm的方式部署AWX的笔记分享给小伙伴 博文内容为部署过程和遇到问题的解决过程 食用方式: 需要了解K8s 需要预置的K8s+Helm环境 需要科学上网 理解不足小伙伴帮忙指正 嗯,疫情快点结束吧 ^_^
1102 0
关于K8s中Ansible AWX(awx-operator)平台Helm部署的一些笔记
|
Kubernetes 容器 Perl
Kubernetes部署MogDB/openGauss
Kubernetes部署MogDB/openGauss
274 0
|
Apache 数据安全/隐私保护
在wildfly 21中搭建cluster集群
在wildfly 21中搭建cluster集群
在wildfly 21中搭建cluster集群
|
Kubernetes 开发工具 git
基于drone的CI/CD,对接kubernetes实践教程
CI 概述 用一个可描述的配置定义整个工作流 程序员是很懒的动物,所以想各种办法解决重复劳动的问题,如果你的工作流中还在重复一些事,那么可能就得想想如何优化了 持续集成就是可以帮助我们解决重复的代码构建,自动化测试,发布等重复劳动,通过简单一个提交代码的动作,解决接下来要做的很多事。
3640 0