栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

系统架构师从入门到精通1.0 OpenLDAP与Rancher无缝集成,看这一篇就够了

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

系统架构师从入门到精通1.0 OpenLDAP与Rancher无缝集成,看这一篇就够了

前言

随着项目数量不断增长,每个项目一个rancher管理平台这样的部署架构,在登录认证方面的缺点变得越来越明显,假如使用默认管理员账号再配合不同的密码,那么记录密码和维护平台的时候查阅密码就显得十分繁琐,假如同样使用默认管理员账号同时使用一样的密码,显然安全性又太低,所以老黑希望借助外部登录认证软件系统,来实现账户和密码都是独立创建和管理的这样一套模式,既方便又具备一定的安全性。

一、OpenLDAP是什么

轻量级的目录访问协议的一个软件程序,以目录的结构来管理组织、组、用户等信息。

二、OpenLDAP用在哪里

常见使用场景:

公司里有各种各样的软件平台,使用openldap只要创建一套账户,并且把openldap与各个软件的集成调试好,就能实现一个账号登录多个软件。

全国各地有大大小小几十上百个项目,每个项目一套Rancher管理平台,每套都有管理员账户和密码需要记录和定时更新,那么使用openldap就可以实现一个账号登录所有项目的Rancher管理平台。

三、OpenLDAP如何搭建
#编辑openldap的yaml文件
cat > /root/openldap/docker-compose.yaml << EOF
version: '2'
services:
  ldap-openldap:
    container_name: ldap-openldap
    image: dinkel/openldap
    restart: always
    ports:
      - "389:389"
    environment:
      - SLAPD_PASSWORD=rancher123  # 自定义 admin 的密码
      - SLAPD_DOMAIN=rancher.com   # 自定义 LDAP 的域名,admin 账号cn=admin,dc=rancher,dc=com
    volumes:
      - /mnt/ldap/db:/var/lib/ldap
      - /mnt/ldap/config:/etc/ldap
  ldap-phpldapadmin:
    container_name: ldap-phpldapadmin
    image: dinkel/phpldapadmin
    restart: always
    ports:
      - "8080:80"
    environment:
      - LDAP_SERVER_HOST=ldap-openldap    # 使用 compose 启动容器,可以直接使用服务名
EOF

#启动openldap容器服务
docker-compose up -d
四、OpenLDAP如何与Rancher对接 4.1 OpenLDAP初始设置

创建2个OU,一个名称是groups,一个名称是users

4.2 创建登录rancher的用户

以zhangsan用户举例创建

鼠标点击顺序为:"点击ou=users"---->"Create a child entry"---->"Default"---->"ObjectClasses里选inetOrgPerson"---->"Proceed"---->"RDN里选User Name(uid)"---->"cn里输入zhangsan"---->"sn里输入zhangsan"---->"displayName里输入zhangsan"---->"givenName里输入zhangsan"---->"Password里输入rancher123"---->"User Name里输入zhangsan"---->"Create Object"---->"Commit"

4.3 创建rancher专用的管理员

以ceshi用户举例创建

鼠标点击顺序为:"Create a child entry"---->"Default"---->"ObjectClasses里选inetOrgPerson"---->"Proceed"---->"RDN里选cn(cn)"---->"cn里输入ceshi"---->"sn里输入ceshi"---->"displayName里输入ceshi"---->"givenName里输入ceshi"---->"Password里输入rancher123"---->"User Name里输入ceshi"---->"Create Object"---->"Commit"

4.4 Rancher集成OpenLDAP的设置

登录Rancher页面

点击安全菜单的认证选项

点击OpenLDAP

在配置OpenLDAP服务器模块中需要设置

主机名或IP地址:192.168.0.100(此处填写实验环境或者正式环境的openldap服务器IP)

服务账户专有名称:cn=rancher,dc=rancher,dc=com

服务账号密码:rancher123

用户搜索起点:ou=users,dc=rancher,dc=com

在测试并启动认证模块中需要设置

用户名:zhangsan

密码:rancher123

点击启用OpenLDAP认证,点击保存

4.5 对OpenLDAP中的用户进行集群权限分配

使用"测试并启动认证"的用户,本案例是zhangsan登录Rancher,选择要分配权限的集群,点编辑,点成员角色,点添加成员,输入openldap中的账户,选择合适的权限,页面最下面点保存即可。

 

4.6 如何使用组来集中分配rancher的管理权限

openldap里面的groups下面创建admins组

添加需要rancher管理员权限的用户到admins组里面

rancher页面添加admins组,同时在全局角色里选择管理员

五、实现自助修改密码
5.1 修改config.inc.php文件
$ldap_url = "ldap://192.168.61.100:389";         #openldap服务器地址
$ldap_binddn = "cn=manager,dc=frognew,dc=com";   #专属连接的账户
$ldap_bindpw = "password of manager";            #专属连接账户的密码
$ldap_base = "dc=frognew,dc=com";                #域名

$hash = "SSHA";
$pwd_min_length = 8;
$pwd_max_length = 12;
$pwd_min_lower = 1;                              #密码最少的小写字符数
$pwd_min_upper = 1;                              #密码最少的大写字符数
$pwd_min_digit = 1;                              #密码最少的数字字符数

$use_questions = false;

$mail_from = "xxx@163.com";                       #163邮箱账户
$notify_on_change = true;                         #打开邮件通知
$mail_smtp_host = 'smtp.163.com';
$mail_smtp_auth = true;                           #开启smtp认证
$mail_smtp_user = 'xxx@163.com';                  #163邮箱账户
$mail_smtp_pass = 'smtppass';     #使用163邮箱时,此处是授权密码
$mail_smtp_port = 25;
$mail_smtp_timeout = 30;

$use_sms = false;

#完整的config.inc.php可以从软件作者的github上面获取,以下给出链接地址
#https://github.com/grams/docker-LTB-self-service-password/blob/master/assets/config.inc.php

5.2 Self-Service-Password软件部署
docker run -d -p 8765:80 --restart=unless-stopped 
-v /root/config.inc.php:/usr/share/self-service-password/conf/config.inc.php 
--name ldap-ssp grams/ltb-self-service-password

5.3 打开浏览器访问http://IP:8765
测试自助密码服务,注意账户是uid的值,无需填写完整的openldap账户
测试Email功能,注意邮箱是在openldap中uid账户配置的邮箱,输入其他邮箱是不可以的
config.inc.php原文件内容
六、163邮箱开启SMTP

6.1 登录163邮箱

6.2 点击设置

6.3 点击POP3/SMTP服务的开启

老黑已经操作,所以显示关闭字样,意思是可以执行关闭操作

6.4 弹出自助手机扫码发送验证的网页

根据提示操作即可

6.5 复制授权密码保存与并写入配置文件使用即可

总结

网络上描述命令行创建组、用户的方法比较多,图形化设置的文章比较少,本文经过多次严格测试,验证可以成功集成。老黑写作的每一个案例,都是能够在实验室还原的。老黑已经把这个集成经验用到生产环境,简化并且提供生产环境账号的统一与安全。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911640.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号