【DevOps工具篇】Jenkins与LDAP认证
@TOC
推荐超级课程:
访问控制是保护Jenkins环境免受未授权使用的主要机制。配置Jenkins的访问控制需要两个方面的配置: 安全域,它告诉Jenkins环境如何以及从哪里获取用户(或身份)信息。通常也被称为“认证”。
- Jenkins支持
- Jenkins自己的用户数据库
- 委托给servlet容器
- LDAP
授权配置,它告诉Jenkins环境哪些用户和/或组可以访问Jenkins的哪些部分,以及访问的程度。授权的各种方式包括:
- 任何人都可以做任何事情
- 传统模式
- 登录用户可以做任何事情
- 基于矩阵的安全
- 基于项目的矩阵授权策略
将Jenkins与LDAP(轻量级目录访问协议)集成对于多个原因来说都很重要,特别是在较大的组织或企业中,用户管理和访问控制至关重要。
集成过程
OpenLDAP设置
sudo apt update
hostname -f
sudo hostnamectl set-hostname server-1 # - 临时设置
# 对于永久更改,请添加并重新启动 vim cat /etc/hostname
# 添加: server-1
# 保存并关闭
vim /etc/hosts (更新fqdn)
# <IP地址> <域名> <主机名>
43.204.141.158 server-1.hg.local server-1
# 保存并关闭
sudo apt install apache2 php php-cgi libapache2-mod-php php-mbstring php-common php-pear -y
sudo apt-get install slapd ldap-utils -y # - 设置管理员密码 - admin
sudo slapcat
sudo apt install ldap-account-manager -y
sudo a2enconf php*-cgi
sudo a2enconf php*-cgi
sudo systemctl restart apache2
sudo systemctl enable apache2
sudo systemctl status apache2
在LAM(LDAP账户管理器)上安装后的步骤
- 打开LAM —
http://<机器_IP>/lam
- 点击LAM配置 — 编辑服务器配置文件 — 初始默认凭据 — lam/lam
- 服务器设置 — 不要更改服务器地址 — 保持默认。树后缀:
**dc=hg,dc=local**
- 语言设置 — 默认语言 — 英语 和 时区:
**Asia/kolkata**
- 安全设置:有效用户列表:
**cn=admin,dc=hg,dc=local**
- 配置文件密码:更改默认密码并保存更改
- 再次登录http://<机器_IP>/lam — 使用新密码编辑服务器配置文件
- 账户类型 — 激活的账户类型:
用户和组
- 用户:LDAP后缀:
ou=Department,dc=hg,dc=local
(无其他更改) - 组:LDAP后缀:
ou=Group,dc=hg,dc=local
(无其他更改) - 保存更改
- 创建一些虚拟组和用户 — 将用户分配到组
- 在LDAP中创建用户和组
与LDAP配置集成
- 管理 Jenkins - 安全 — 安全域 — LDAP
- 服务器:
- 高级服务器配置
- 根DN:
dc=hg,dc=local
- 管理员DN:
cn=admin,dc=hg,dc=local
- 测试LDAP设置 — 提供在LDAP服务器中创建的任何用户
使用ldap用户访问Jenkins
基于矩阵的安全 此方法适用于Jenkins中所有项目的全局权限。它允许您在全局级别为单个用户或组定义权限。
基于项目的矩阵授权策略 此方法不仅允许您在全局定义权限,还可以按项目定义。您可以为不同的项目或项目组指定不同的权限。
- 创建用户:管理Jenkins — 安全- 用户 并创建2,3个虚拟用户
- 管理Jenkins — 安全 — 安全
- 安全域 — 保持默认 — Jenkins自己的数据库
- 授权:基于矩阵的安全
- 添加用户并根据需求分配权限。
授权:基于项目的矩阵授权策略
基于角色的授权 — 管理和分配角色
- 安装插件 — 基于角色的身份验证
- 管理Jenkins — 安全 — 安全
- 授权:基于角色的策略。保存它
- 您将在安全下看到管理和分配角色的选项。
- 创建两个新文件夹(开发和测试)— 新项目 — 文件夹
- 在每个文件夹中创建示例作业
- 管理Jenkins -安全 — 管理和分配角色
- 在全局角色中添加角色
Assign roles