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

rancher,系列,文章,对接,active,directory,实战 · 浏览次数 : 93

小编点评

**概述** 只要是一个公司,基本上都有邮箱和 AD (Active Directory)。在 AD 中,已经有了用户账号密码邮箱用户组组织架构,这些信息可用于认证、分组和权限分配。 **用于 Rancher 的 AD 账号申请步骤** 1. 从邮箱管理员或 AD 管理员那申请一个新的 AD 用户。 2. 用户需要权限可以搜索、读取(只读即可) AD 域下的用户和组,及其属性。 3. 创建用户组搜索库,根据需要划分用户组。 4. 创建用户组,并设置其成员属性。 5. 创建用户组,并设置其成员属性。 **推荐的实用技巧** 1. 使用 JXplorer 等工具进行用户组和用户验证。 2. 使用不同的 OU 和 objectClass 来创建用户组和用户。 3. 设置用户属性以控制其权限。 4. 使用管道符号将多个属性用于用户组或用户验证中。

正文

概述

只要是个公司,基本上都有邮箱和 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 账号直接就是管理员级别的权限.

授权组

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

根据用户组来进行授权

集群级别授权

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

集群级别授权

项目级别授权

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

🎉🎉🎉

系列文章

📚️参考文档

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

与Rancher 系列文章-Rancher 对接 Active Directory 实战相似的内容:

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

概述 只要是个公司,基本上都有邮箱和 AD(Active Directory). 在 AD 里,已经有了: 用户 账号密码 邮箱 用户组 组织架构 所以对于一些仅限于本公司一定范围内人员使用的管理或后台或运营运维类系统,其实是非常适合对接 AD 来进行认证、分组,以及根据分组来进行权限分配的。 对于

Rancher 系列文章-Rancher 升级

概述 之前在 天翼云上用 4 台机器安装了一个 1 master(及 etcd) 3 node 的 K3S 集群,并在其上使用 Helm 安装了 Rancher 2.6.3 版本。 前几天发现 Rancher 官方推荐的最新版为:v2.6.4 所以决定先后对 Rancher 和 K3S 集群进行升级

Rancher 系列文章-在腾讯云的 K3S 上安装高可用 Rancher 集群

开篇 📜 引言: 三人行必有我师焉 知识共享,天下为公 《K3s 系列文章》 《Rancher 系列文章》 方案 在腾讯云的 K3S 上安装 Rancher 方案目标 高可用 3 台 master 的 k3s 集群 高可用模式的 rancher 数据备份 rancher 数据备份到 腾讯云对象存储

K3S系列文章-使用AutoK3s在腾讯云上安装高可用K3S集群

开篇 《K3s 系列文章》 《Rancher 系列文章》 方案 在腾讯云上安装 K3S 后续会在这套 K3S 集群上安装 Rancher 方案目标 高可用 3 台master 的 k3s 集群 数据备份 k3s 数据备份到 腾讯云对象存储 cos 尽量复用公有云的能力 ~~Tencent Cloud

Rancher 系列文章-RHEL7.8 离线有代理条件下安装单节点 Rancher

一 基础信息 1.1 前提 本次安装的为 20220129 最新版:Rancher v2.6.3 VM 版本为 RHEL 7.8, 7.9 或 8.2, 8.3, 8.4(Rancher 官网要求) VM YUM 仓库:已配置对应版本的 RHEL 和 EPEL YUM 仓库 VM 提供 root 权

Rancher系列文章-Rancher v2.6使用脚本实现导入集群

概述 最近在玩 Rancher, 先从最基本的功能玩起, 目前有几个已经搭建好的 K8S 集群, 需要批量导入, 发现官网已经有批量导入的文档了. 根据 Rancher v2.6 进行验证微调后总结经验. 1. Rancher UI 获取创建集群参数 访问Rancher_URL/v3/cluster

Rancher 系列文章-K3S 集群升级

概述 书接上回:《Rancher 系列文章-Rancher 升级》, 我们提到:将 Rancher 用 Helm 从 v2.6.3 升级到 v2.6.4. 接下来开始进行 K3S 集群的升级:将 K3S 集群从 v1.21.7+k3s1 升级到 v1.22.5+k3s2 相关信息 本次升级的 K3S

K3S 系列文章-5G IoT 网关设备 POD 访问报错 DNS 'i/o timeout'分析与解决

开篇 《K3s 系列文章》 《Rancher 系列文章》 问题概述 20220606 5G IoT 网关设备同时安装 K3S Server, 但是 POD 却无法访问互联网地址,查看 CoreDNS 日志提示如下: ... [ERROR] plugin/errors: 2 update.traefi

Rancher 系列文章-K3s Traefik MiddleWare 报错-Failed to create middleware keys

概述 书接上回:《Rancher 系列文章-K3S 集群升级》, 我们提到:通过一键脚本升级 K3S 集群有报错。 接下来开始进行 Traefik 报错的分析和修复, 问题是: 所有 Traefik 的 IngressRoute 访问报错 404 问题描述 报错如下: time="2022-05-0

大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s

前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介 📚️Reference: IoT 边缘计算系列文章 Rancher + K3s 简介 Rancher: Kubernetes 统一管理平台, Rancher 是为采用容器的团队提供的一个完整的软件栈。它解决了管理多个 K