快速搭建OpenLDAP环境并对接Rancher认证

简介

如果企业内部有使用LDAP进行用户身份验证,则可以通过配置Rancher与OpenLDAP服务器通信以对用户进行身份验证。

本文将介绍如何通过docker快速搭建OpenLDAP环境,并对接Rancher认证功能

主要用到两个镜像:

步骤

安装OpenLDAP服务

  1. 基于osixia/openldap:1.5.0镜像,创建OpenLDAP服务

    docker run -p 389:389 -p 636:636 --name openldap -itd --env LDAP_ORGANISATION="rancher" --env LDAP_DOMAIN="rancherldap.com" --env LDAP_ADMIN_PASSWORD="Rancher123"   osixia/openldap:1.5.0
    

    参数说明:

    缺省ldap使用389端口,加密使用636端口

    LDAP_ORGANISATION:Organisation名称,默认是Example Inc.

    LDAP_DOMAIN:LDAP domain,例如默认是example.org,则domain为dc=example,dc=org

    LDAP_ADMIN_PASSWORD:admin用户密码

  2. 创建osixia/phpldapadmin:0.9.0镜像,创建Web服务

    phpldapadmin是一个基于Web的管理LDAP的工具,可以更加直观的查看和管理LDAP信息

    docker run -p 6443:443 --env PHPLDAPADMIN_LDAP_HOSTS=172.16.21.12 -itd --name phpldapadmin osixia/phpldapadmin:0.9.0
    

    参数说明:

    PHPLDAPADMIN_LDAP_HOSTS:LDAP服务地址,这里如果是将openLDAP容器启动在相同主机上则填写本机的IP地址即可

  3. docker-compose(可选)

    也可以通过docker-compose去创建OpenLDAP环境

    version: '2.3'
    services:
      openldap:
        image: osixia/openldap:1.5.0
        container_name: openldap
        restart: always
        environment:
          - LDAP_ORGANISATION=rancher
          - LDAP_DOMAIN=rancherldap.com
          - LDAP_ADMIN_PASSWORD=Rancher123
        ports:
          - 389:389
          - 636:636
        volumes:
          - ./slapd:/etc/ldap/slapd.d
          - ./data:/var/lib/ldap
      phpldapadmin:
        image: osixia/phpldapadmin:0.9.0
        container_name: phpldapadmin
        restart: always
        environment:
          - PHPLDAPADMIN_LDAP_HOSTS=openldap
        links:
          - openldap:openldap
        depends_on:
          - openldap
        ports:
          - 6443:443
        volumes:
          - ./phpldapadmin-certs:/container/service/phpldapadmin/assets/apache2/certs
    

    将上诉文件保存到docker-compose.yml中,然后执行docker-compose up -d命令即可

    运行成功后,会在跟docker-compose.yml文件相同的目录下创建三个目录slapddataphpldapadmin-certs

    默认admin domain账号为:cn=admin,dc=rancherldap,dc=com,密码为:Rancher123

  4. 进入openldap容器中,执行ldapsearch命令尝试搜索

    docker exec openldap ldapsearch -x -H ldap://localhost -b dc=rancherldap,dc=com -D "cn=admin,dc=rancherldap,dc=com" -w Rancher123
    

    可以得到如下输出结果,则说明部署成功

    # extended LDIF
    #
    # LDAPv3
    # base <dc=rancherldap,dc=com> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #
    
    # rancherldap.com
    dn: dc=rancherldap,dc=com
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: rancher
    dc: rancherldap
    
    # search result
    search: 2
    result: 0 Success
    
    # numResponses: 2
    # numEntries: 1
    

基于phpldapadmin的web工具创建用户

浏览器访问:https://<IP>:6443,点击左侧login登录

login-1

其中账号密码如下:

cn=admin,dc=rancherldap,dc=com
Rancher123

login-2

登录进去后,可以看到domain相关信息

创建Organisational Unit

点击dc=rancherldap,dc=com,在其目录下点击Create a child entry创建子条目

ou-1

点击 Generic: Organisational Unit

ou-2

填写OU名称,例如这里填写rancher,填好之后点击Create Object创建该对象

ou-3

点击Commit二次确认

ou-4

创建成功后,就可以在左侧中看到我们创建的OU对象

ou-5

创建Group

ou=rancher下,点击Create a child entry创建子条目,点击 Generic: Posix Group创建Group对象

image-20210429155116459

填写Group名称,例如这里填写group

group-2

填好之后点击Create Object创建该对象,点击Commit二次确认,创建成功后,就可以在左侧中看到我们创建的Group对象

group-3

创建User

cn=group下,点击Create a child entry创建子条目,点击 Generic: User Account创建User对象

user-1

填写对应的user信息,填写First name和Last name,会自动生成Common Name和User ID,其中UserID为后续Rancher登录的用户名

填写Password,后续登录Rancher使用该密码

选择刚刚创建的group

user-2

填好之后点击Create Object创建该对象,点击Commit二次确认,创建成功后,就可以在左侧中看到我们创建的USer对象

user-3

同理,我们用相同的方法再创建一个test用户

user-4

对接Rancher认证

对接OpenLDAP

在Rancher UI中,点击 全局-安全-认证,选择OpenLDAP

rancher-1

参数说明:

主机名或 IP 地址:OpenLDAP服务器的IP地址

端口:默认端口是389

服务帐户专有名称cn=admin,dc=rancherldap,dc=com,这里填写admin用户的domain

服务账号密码:admin用户的密码

用户搜索起点:例如刚刚创建的OU为rancher,则这里的搜索起点为ou=rancher,dc=rancherldap,dc=com

用户名:这个用户会成为管理员,用户名需要基于User Name填写,例如我们刚刚创建的adminuser,则这里填写auser

密码:该用户的密码

参数填写完之后,点击启用OpenLDAP认证,开启OpenLDAP认证

rancher-2

测试LDAP用户登录

rancher-3

登录成功,默认该用户没有权限

rancher-4

原文地址:https://www.cnblogs.com/zerchin/p/14718904.html