精华内容
下载资源
问答
  • docker部署一个openldap
    2022-03-10 19:26:54

    部署指令

    docker run --detach -p 1389:1389 -p 1636:1636 --name openldap  --env LDAP_ADMIN_USERNAME=admin   --env LDAP_ADMIN_PASSWORD=Hc@Cloud01   --env LDAP_USERS=customuser   --env LDAP_PASSWORDS=Hc@Cloud01   --env  LDAP_ROOT=dc=springframework,dc=org  bitnami/openldap:latest
    

    参数详解:

    --name:指定容器名字

    通过环境变量设置参数

    LDAP_ADMIN_USERNAME:管理员账户的名字

    LDAP_ADMIN_PASSWORD:管理员账户的密码

    LDAP_ROOT:根dc,一般为域名,用多个dc表示,如果域名为www.xiaozhuge.com,则为dc=www,dc=xiaozhuge,dc=com

    部署成功后,使用1389端口进行访问。

    更多相关内容
  • OpenLDAP docker 部署

    2020-12-16 20:28:21
    热度比较高的有两个镜像:osixia/openldapbitnami/openldap osixia/openldap: 集成了 TLS 安全认证,默认开启 个人维护 6个月前更新 bitnami/openldap: 没有做签名认证 团队维护 7天前更新 两者都没有做 SSL...

    OpenLDAP docker 部署

    镜像

    热度比较高的有两个镜像:osixia/openldapbitnami/openldap

    osixia/openldap:

    1. 集成了 TLS 安全认证,默认开启
    2. 个人维护
    3. 6个月前更新

    bitnami/openldap:

    1. 没有做签名认证
    2. 团队维护
    3. 7天前更新

    两者都没有做 SSL 安全认证,没有开 memberOf 功能,没有开账号安全策略,没有设置用户自主改密码

    综合两者的优缺点,最终选择了 bitnami/openldap,没做的功能自己做

    目录树

    ├── certs                   # 存放证书相关文件
    │   ├── certs.ldif
    │   ├── ldap.crt
    │   ├── ldap.csr
    │   ├── ldap.key
    │   ├── rootCA.key
    │   ├── rootCA.pem
    │   └── rootCA.srl
    ├── compose                 # 存放 docker-compose 启动相关文件
    │   ├── build                    # 部署需要的文件
    │   │   ├── bitnami-docker-openldap-master      # git项目
    │   │   ├── Dockerfile                          # build 文件
    │   │   ├── libopenldap.sh                      # openldap 正式启动前需要做的各种骚操作
    │   │   └── run.sh                              # openldap 启动文件
    │   └── docker-compose.yml       # docker-compose 配置
    ├── data                    # 容器映射目录
    └── ldif                    # 镜像中没做的、需要额外补充的 openldap 配置文件
        ├── memberof_conf.ldif       # 开启 memberOf 支持
        ├── mod_ppolicy.ldif         # 开启账号安全策略
        ├── ppolicy.ldif             # 添加账号安全策略配置
        ├── refint1.ldif             # 开启 refint 支持(memberOf 需要)
        ├── refint2.ldif             # 添加 refint 配置(memberOf 需要)
        └── self_change_passwd.ldif  # 设置用户可以自己改密码
    

    准备工作

    # 拉当前最新分支2.4.56
    docker pull bitnami/openldap:2.4.56
    # 生成几个基础文件夹
    ## 根目录
    mkdir -p /srv/openldap
    
    ## ssl证书存放目录
    mkdir /srv/openldap/certs
    chmod g+rwX /srv/openldap/certs
    
    ## docker-compse 相关脚本存放目录
    mkdir /srv/openldap/compose
    
    ## docker 构建相关文件存放目录
    mkdir -p /srv/openldap/compose/build
    
    ## 容器数据映射目录
    mkdir /srv/openldap/data
    chmod g+rwX /srv/openldap/data
    
    ## ldap 启动时调整内容存放目录
    mkdir /srv/openldap/ldif
    

    构建新镜像

    处理 SSL 相关
    # 生产证书
    export base_dir="/srv/openldap/certs"
    export map_dir="/opt/certs"
    openssl genrsa -out "${base_dir}/rootCA.key" 2048
    openssl req -x509 -new -nodes -subj "/C=CN/ST=ShangHai/L=ShangHai/O=ldap/OU=lework/CN=ldap-ca"  -key "${base_dir}/rootCA.key" -sha256 -days 1024 -out "${base_dir}/rootCA.pem"
    openssl genrsa -out "${base_dir}/ldap.key" 2048
    openssl req -new -subj "/C=CN/ST=ShangHai/L=ShangHai/O=ldap/OU=lework/CN=ldap-server.lework.com" -key "${base_dir}/ldap.key" -out "${base_dir}/ldap.csr"
    openssl x509 -req -in "${base_dir}/ldap.csr" -CA "${base_dir}/rootCA.pem" -CAkey "${base_dir}/rootCA.key" -CAcreateserial -out "${base_dir}/ldap.crt" -days 3650 -sha256
    
    cat > "${base_dir}/certs.ldif" << EOF
    dn: cn=config
    changetype: modify
    replace: olcTLSCACertificateFile
    olcTLSCACertificateFile: "${map_dir}/rootCA.pem"
    
    dn: cn=config
    changetype: modify
    replace: olcTLSCertificateFile
    olcTLSCertificateFile: "${map_dir}/ldap.crt"
    
    dn: cn=config
    changetype: modify
    replace: olcTLSCertificateKeyFile
    olcTLSCertificateKeyFile: "${map_dir}/ldap.key"
    EOF
    
    # 给 key 授权(key 默认是600,docker 容器是 nonroot 运行,无法读取)
    chmod 644 /srv/openldap/certs/*.key
    
    添加额外的 openldap 配置文件
    # memberOf 
    cat > "/srv/openldap/ldif/memberof_conf.ldif" << EOF
    #开启memberof支持
    dn: cn=module{0},cn=config
    cn: modulle{0}
    objectClass: olcModuleList
    objectclass: top
    olcModuleload: memberof
    olcModulePath: /opt/bitnami/openldap/lib/openldap
    
    #新增用户支持memberof配置
    dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
    objectClass: olcConfig
    objectClass: olcMemberOf
    objectClass: olcOverlayConfig
    objectClass: top
    olcOverlay: memberof
    olcMemberOfDangling: ignore
    olcMemberOfRefInt: TRUE
    olcMemberOfGroupOC: groupOfUniqueNames
    olcMemberOfMemberAD: uniqueMember
    olcMemberOfMemberOfAD: memberOf
    EOF
    
    cat > "/srv/openldap/ldif/refint1.ldif" << EOF
    dn: cn=module{0},cn=config
    add: olcmoduleload
    olcmoduleload: refint
    EOF
    
    cat > "/srv/openldap/ldif/refint2.ldif" << EOF
    dn: olcOverlay=refint,olcDatabase={2}hdb,cn=config
    objectClass: olcConfig
    objectClass: olcOverlayConfig
    objectClass: olcRefintConfig
    objectClass: top
    olcOverlay: refint
    olcRefintAttribute: memberof uniqueMember  manager owner
    EOF
    
    # ppolicy 用户安全策略
    cat > "/srv/openldap/ldif/mod_ppolicy.ldif" << EOF
    dn: cn=module{0},cn=config
    changetype: modify
    add: olcModuleLoad
    olcModuleLoad: ppolicy
    EOF
    
    cat > "/srv/openldap/ldif/ppolicy.ldif" << EOF
    dn: olcOverlay=ppolicy,olcDatabase={2}hdb,cn=config
    changeType: add
    objectClass: olcOverlayConfig
    objectClass: olcPPolicyConfig
    olcOverlay: ppolicy
    olcPPolicyDefault: ou=users,dc=ichilson,dc=com
    olcPPolicyHashCleartext: TRUE
    EOF
    
    # 允许用户自己改密码
    cat > "/srv/openldap/ldif/self_change_passwd.ldif" << EOF
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcAccess
    olcAccess: {0}to attrs=userPassword by self write by dn.base="cn=admin,dc=ichilson,dc=com" write by anonymous auth by * none
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcAccess
    olcAccess: {1}to * by dn.base="cn=admin,dc=ichilson,dc=com" write by self write by * read
    EOF
    
    源码修改
    # 拉取项目代码(因为需要改动一两个 shell 脚本来启动 SSL 认证)
    cd /srv/openldap/compose/build
    wget https://github.com/bitnami/bitnami-docker-openldap/archive/master.zip
    
    # 解压拷贝需要改动的 shell,至于为什么是这两个文件,自己去看 Dockerfile 一步一步往下钻
    unzip master.zip
    rm master.zip -rf
    cp bitnami-docker-openldap-master/2/debian-10/rootfs/opt/bitnami/scripts/libopenldap.sh .
    cp bitnami-docker-openldap-master/2/debian-10/rootfs/opt/bitnami/scripts/openldap/run.sh .
    
    # 往 libopenldap.sh 编写添加 SSL 证书脚本
    vim libopenldap.sh
    #########################
    # 添加 SSL 证书
    #########################
    ldap_open_ssl() {
        info "ldapmodify certs.ldif"
        debug_execute ldapmodify -Y EXTERNAL -H "ldapi:///" -f "/opt/certs/certs.ldif"
        info "finish ldapmodify certs.ldif"
    }
    
    #########################
    # 打开 memberOf
    #########################
    ldap_open_memberof() {
        info "ldapadd memberof_conf.ldif"
        debug_execute ldapadd -Q -Y EXTERNAL -H "ldapi:///" -f "/opt/ldif/memberof_conf.ldif"
        debug_execute ldapmodify -Q -Y EXTERNAL -H "ldapi:///" -f "/opt/ldif/refint1.ldif"
        debug_execute ldapadd -Q -Y EXTERNAL -H "ldapi:///" -f "/opt/ldif/refint2.ldif"
        info "finish ldapadd memberof_conf.ldif"
    }
    
    #########################
    # 启用 ppolicy
    # 这里启用策略之后,还需要自己根据需要给对应的dn添加用户安全策略类和对应的参数(可以等服务启动之后再用客户端修改)
    # objectClass: pwdPolicy
    # pwdAllowUserChange: TRUE
    # pwdAttribute: 2.5.4.35
    # #通过pwdCheckModule检查密码质量, 0为不控制,由SSO的认证模块自己控制
    # pwdCheckQuality: 0
    # #密码失效提前7天警告
    # pwdExpireWarning: 604800
    # #密码失败次数复位时间,1天
    # pwdFailureCountInterval: 86400
    # #密码过期不允许登录
    # pwdGraceAuthNLimit: 0
    # #保存密码历史3次,新密码不能与之相同
    # pwdInHistory: 3
    # #超过最多失败次数账号被锁定
    # pwdLockout: TRUE
    # #锁定后不能自动解锁,必须由管理员解锁
    # pwdLockoutDuration: 0
    # #密码有效期10年
    # pwdMaxAge: 311040000
    # #密码最大失败次数,超过后被账号锁定
    # pwdMaxFailure: 5
    # pwdMinAge: 0
    # #密码最小长度
    # pwdMinLength: 8
    # pwdMustChange: FALSE
    # pwdSafeModify: FALSE
    #########################
    ldap_open_ppolicy() {
        info "ldapadd ppolicy.ldif"
        debug_execute ldapadd -Y EXTERNAL -H "ldapi:///" -D "cn=config" -f "/opt/bitnami/openldap/etc/schema/ppolicy.ldif"
        debug_execute ldapmodify -Y EXTERNAL -H "ldapi:///" -f "/opt/ldif/mod_ppolicy.ldif"
        debug_execute ldapmodify -Y EXTERNAL -H "ldapi:///" -f "/opt/ldif/ppolicy.ldif"
        info "finish ldapadd ppolicy.ldif"
    }
    
    #########################
    # 允许用户自己改密码
    #########################
    ldap_open_self_change_passwd() {
        info "ldapmodify self_change_passwd.ldif"
        debug_execute ldapmodify -Y EXTERNAL -H "ldapi:///" -f "/opt/ldif/self_change_passwd.ldif"
        info "finish ldapmodify self_change_passwd.ldif"
    }
    
    ldap_initialize() {
        # 这里省略了一些代码
        if ! is_dir_empty "$LDAP_DATA_DIR"; then
            info "Using persisted data"
        else
    	    # 这里省略了一些代码
            ldap_admin_credentials
            
            # 添加的代码
    	    ldap_open_ssl
    	    ldap_open_memberof
    	    ldap_open_ppolicy
    	    ldap_open_self_change_passwd
    	    
            # 这里省略了
        fi
    }
    
    # 往 run.sh 插入开启 SSL 端口脚本
    flags=("-h" "ldap://:${LDAP_PORT_NUMBER}/ ldapi:/// ldaps://:${LDAP_LDAPS_PORT_NUMBER}/" "-F" "${LDAP_CONF_DIR}/slapd.d" "-d" "256" "$@")
    
    
    准备 build 文件
    cat > "/srv/openldap/compose/build/Dockerfile" << EOF
    FROM bitnami/openldap:2.4.56
    COPY run.sh /opt/bitnami/scripts/openldap/
    COPY libopenldap.sh /opt/bitnami/scripts/
    EOF
    
    构建
    sudo docker build -t bitnami/openldap:2.4.56-self .
    

    启动容器

    编写 compose 文件
    cat > "/srv/openldap/compose/docker-compose.yml" << EOF
    version: '3'
    services:
        openldap:
            image: 'bitnami/openldap:2.4.56-self'
            container_name: 'openldap'
            ports:
                - '10389:1389'
                - '10636:1636'
            environment:
                - LDAP_ROOT=dc=ichilson,dc=com
                - LDAP_ADMIN_USERNAME=admin
                - LDAP_ADMIN_PASSWORD=admin
                # 初始用户(至少需要一个用户)
                - LDAP_USERS=admin
                - LDAP_PASSWORDS=admin
            volumes:
                - /srv/openldap/data:/bitnami/openldap
                - /srv/openldap/certs:/opt/certs
                - /srv/openldap/ldif:/opt/ldif
    EOF
    
    启动
    docker-compose up -d
    

    附录

    docker 入门:https://www.runoob.com/docker/docker-tutorial.html

    docker-compose 入门:https://www.runoob.com/docker/docker-compose.html

    展开全文
  • OpenLDAP部署 角色 主机名 操作系统 IP地址 备注 ...在两台OpenLDAP上都部署 1.安装OpenLDAP 1-1. 使用yum方式安装OpenLdap yum install -y openldap openldap-servers openldap-clients c

    OpenLDAP部署

    角色主机名操作系统IP地址备注
    ldap-1ldap1CentOS7192.168.3.11VIP 192.168.3.10
    ldap-2ldap2CentOS7192.168.3.12VIP 192.168.3.10

    在两台OpenLDAP上都部署

    1.安装OpenLDAP

    1-1. 使用yum方式安装OpenLdap
    yum install -y openldap openldap-servers openldap-clients compat-openldap
    chown -R ldap.ldap /etc/openldap/
    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    chown ldap.ldap /var/lib/ldap/DB_CONFIG
    
    1-2. 启动slapd并开机自启动,查看端口386是否开启
    systemctl restart slapd
    yum install -y net-tools
    netstat -atnulp | grep :389
    

    2.配置OpenLDAP开启TLS

    2-1. 采用ldif方式配置Openldap以TLS加密传输并打开636(默认的SSL连接端口)
    mkdir /ldif_file
    cd /ldif_file
    ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_ssl.ldif
    
    sed -i "s#ldap:\/\/\/#& ldaps:\/\/\/#" /etc/sysconfig/slapd
    systemctl restart slapd
    yum install -y net-tools
    netstat -atnulp | grep :636
    

    mod_ssl.ldif 内容

    dn: cn=config
    changetype: modify
    add: olcTLSCACertificateFile
    olcTLSCACertificateFile: /etc/openldap/certs/CA.crt
    
    replace: olcTLSCertificateFile
    olcTLSCertificateFile: /etc/openldap/certs/ldap.crt
    
    replace: olcTLSCertificateKeyFile
    olcTLSCertificateKeyFile: /etc/openldap/certs/ldap.key
    

    3.验证TLS是否配置成功

    3-1. 通过CA证书公钥,验证ldap服务端证书的合法性
    openssl verify -CAfile /etc/pki/CA/CA.crt /etc/openldap/certs/ldap.crt
    

    /etc/openldap/certs/ldapsrv.crt: OK

    3-2. 通过当前套接字是否能通过CA的验证
    openssl s_client -connect $(hostname):636 -showcerts -state -CAfile /etc/openldap/certs/CA.crt
    

    4.配置OpenLDAP的根域和管理员

    4-1. 创建Openldap的管理员密码(记住加密后的密码,后续很多地方会使用)
    slappasswd -s boybo
    

    {SSHA}DbijN+dbVNqZ0XwFMTecd+PHwT249ILG

    4-2. 查看OpenLDAP数据库相关ldif文件及名称
    ls -l /etc/openldap/slapd.d/cn\=config
    

    total 36
    -rw------- 1 ldap ldap 537 Feb 3 13:38 cn=module{0}.ldif
    -rw------- 1 ldap ldap 537 Feb 3 16:32 cn=module{1}.ldif
    drwxr-x— 2 ldap ldap 4096 Feb 3 13:28 cn=schema
    -rw------- 1 ldap ldap 378 Feb 2 10:58 cn=schema.ldif
    -rw------- 1 ldap ldap 624 Feb 3 13:28 olcDatabase={0}config.ldif
    -rw------- 1 ldap ldap 508 Feb 3 13:36 olcDatabase={-1}frontend.ldif
    -rw------- 1 ldap ldap 603 Feb 3 13:29 olcDatabase={1}monitor.ldif
    drwxr-x— 2 ldap ldap 4096 Feb 3 16:32 olcDatabase={2}hdb
    -rw------- 1 ldap ldap 1251 Feb 3 13:53 olcDatabase={2}hdb.ldif
    *—/

    4-3.使用ldif文件,设置OpenLDAP的管理员密码
    ldapadd -Y EXTERNAL -H ldapi:/// -f rootpw.ldif
    
    dn: olcDatabase={0}config,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}XSUcpSOL+nE1vTp2r9en29U3zBfSbi0M   ###刚刚生成的加密后密码
    
    4-4.导入基本的schema配置

    Schema控制着条目拥有哪些对象类和属性
    使用ldapadd命令,执行下面的ldif文件,设置管理员密码

    ldapadd -Y EXTERNAL -H ldapi:/// -f rootpw.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
    
    4-5. 配置OpenLDAP的根域及其管理域

    使用ldapmodify命令,创建根域及管理域

    ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
    
    dn: olcDatabase={1}monitor,cn=config
    changetype: modify
    replace: olcAccess
    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=boybo,dc=cn" read by * none
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=boybo,dc=cn
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=admin,dc=boybo,dc=cn
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}XSUcpSOL+nE1vTp2r9en29U3zBfSbi0M
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcAccess
    olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=boybo,dc=cn" write by anonymous auth by self write by * none
    olcAccess: {1}to dn.base="" by * read
    olcAccess: {2}to * by dn="cn=admin,dc=boybo,dc=cn" write by * read
    
    4-6. 创建admin的组织角色,用以管理整个OpenLDAP

    导入admin组织的配置

    ldapadd -x -D cn=admin,dc=boybo,dc=cn -W -f admin.ldif
    
    # replace to your own domain name for "dc=***,dc=***" section
    dn: dc=boybo,dc=cn
    objectClass: top
    objectClass: dcObject
    objectclass: organization
    o: LinLong company
    dc: boybo
    
    dn: cn=admin,dc=boybo,dc=cn
    objectClass: organizationalRole
    cn: admin
    description: administrator
    

    5.创建三个OU,分别是Group和People以及People下的Shenyang

    在上述基础上,创建一个 boybo company的组织,People 和 Group 两个组织单元

    ldapadd -x -D cn=admin,dc=boybo,dc=cn -W -f add_ou_Group_People.ldif
    
    dn: ou=People,dc=boybo,dc=cn
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Group,dc=boybo,dc=cn
    objectClass: organizationalUnit
    ou: Groupass: organizationalUnit
    ou: Group
    
    dn: ou=Shenyang,ou=People,dc=boybo,dc=cn
    objectClass: organizationalUnit
    ou: Shenyang
    

    6.设定日志级别、日志轮滚

    6-1. 设定日志级别
    ldapmodify -Y EXTERNAL -H ldapi:/// -W -f change_log_level.ldif
    grep "olcLogLevel" /etc/openldap/slapd.d/cn\=config.ldif
    
    dn: cn=config
    changetype: modify
    add: olcLogLevel
    olcLogLevel: -1
    
    6-2. 设定日志轮滚
    echo "local4.*                                                /var/log/slapd.log" >> /etc/rsyslog.conf
    systemctl restart rsyslog
    systemctl status rsyslog
    
    6-3. 清除当前日志
    ldapmodify -Y EXTERNAL -H ldapi:/// -W -f clean_log_level.ldif
    
    dn: cn=config
    changetype: modify
    delete: olcLogLevel
    olcLogLevel: -1   ###根据查询后的level清除日志级别
    

    7.取消匿名登录

    ldapmodify -Y EXTERNAL -H ldapi:/// -W -f no_anonymoun.ldif
    
    dn: cn=config
    changetype: modify
    add: olcDisallows
    olcDisallows: bind_anon
    
    dn: cn=config
    changetype: modify
    add: olcRequires
    olcRequires: authc
    
    dn: olcDatabase={-1}frontend,cn=config
    changetype: modify
    add: olcRequires
    olcRequires: authc
    

    8.测试 创建一个用户并查询是否添加成功

    8-1. 创建用户
    ldapadd -x -D cn=admin,dc=boybo,dc=cn -W -f superman.ldif
    
    ### 查询用户
    ldapsearch -LLL -W -x -H ldapi:/// -D "cn=admin,dc=boybo,dc=cn" -b "dc=boybo,dc=cn" "(uid=superman)"
    
    dn: uid=superman,ou=Shenyang,ou=People,dc=boybo,dc=cn
    uid: superman
    cn: superman
    objectClass: inetOrgPerson
    objectClass: posixAccount
    objectClass: top
    objectClass: shadowAccount
    userPassword: {crypt}$6$EJd1EaFj$7s3DPnTNxAuBumdWhl8vFyOg5pY5FcqgWoY3rbZRH4g0j34RcOfWIoQkJlkoSSh8ytRdqwK8.JhAp1aeSX03T.
    shadowLastChange: 19019
    shadowMin: 0
    shadowMax: 99999
    shadowWarning: 7
    loginShell: /bin/bash
    uidNumber: 1011
    gidNumber: 1006
    homeDirectory: /home/superman
    mail: 123@163.com
    departmentNumber: openvpn
    telephonenumber: 11012345678
    displayName: 超人
    sn: 超人
    
    展开全文
  • -e LDAP_TLS_CERT_FILE=/opt/bitnami/openldap/certs/openldap.crt \ -e LDAP_TLS_KEY_FILE=/opt/bitnami/openldap/certs/openldap.key \ -e LDAP_TLS_CA_FILE=/opt/bitnami/openldap/certs/openldapCA.crt \ ...
  • 在一套CI架构中,我们需要使用到各种各样得软件,需要这些软件协同工作。但是我们又不希望让用户在每一软件上都单独去进行账户得注册以及密码得维护。为了方便运维管理,我们引入LDAP作为统一账户管理中心。LDAP实际...

    一、统一账户管理中心配置

    • 在一套CI架构中,我们需要使用到各种各样得软件,需要这些软件协同工作。但是我们又不希望让用户在每一软件上都单独去进行账户得注册以及密码得维护。为了方便运维管理,我们引入LDAP作为统一账户管理中心。LDAP实际上是一个协议,目前针对轻量级目录服务协议的实现产品有很多。我们选择使用OPEN LDAP作为实现产品。该产品是免费的,功能也较为全面。客户端软件我们采用LDAP ADMIN。
      在这里插入图片描述
    • LDAP是一个以树型结构进行数据组织管理的目录服务器,该服务器针对数据查询有极快的效率,但是针对更新、删除等变化性的操作效率很差,所以在生产活动中,通常会使用LDAP做一些静态数据的存储一个典型的应用场景是在公司的信息系统环境中,使用LDAP作为账户管理数据库来使用

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cPMRBxSw-1642338112433)(images\1062001-20180612174219851-465284075.png)]

    二、安装与配置

    1、使用docker安装open ldap

    docker  pull osixia/openldap
    

    2、准备挂载目录

    • 使用open ldap时,我们需要将数据库以及配置文件挂载到宿主机中,所以需要提前准备出两个目录。 /root/docker_vol/ldap/database(数据库目录),/root/docker_vol/ldap/config配置信息目录

    3、启动ldap容器

       docker run -itd  --hostname "jn-ldap" -p 10002:389 \
                 --name "ldap" \
                 -v /root/docker_vol/ldap/database:/var/lib/ldap \
                 -v /root/docker_vol/ldap/config:/etc/ldap/slapd.d \
                 -v /etc/localtime:/etc/localtime:ro \
                 -e LDAP_ORGANISATION=jn \
                 -e LDAP_DOMAIN=jn.com \
                 -e LDAP_ADMIN_PASSWORD=P@ssword \
                 -e LDAP_CONFIG_PASSWORD=P@ssword \
                 -e TZ=Asia/Shanghai \ 
        osixia/openldap
    

    4、验证服务器安装结果
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Imm7YumJ-1642338112434)(images\image-20210706142617203.png)]

    • 选择connect后弹出配置窗口
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JtZyzI56-1642338112434)(images\image-20210706142739326.png)]
    • 选择new connection 创建新的连接,相关配置参考下图
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GcgBdPrt-1642338112435)(images\image-20210706150925867.png)]

    到此为止,ldap已经可以支持账号存储。但是存在一个问题就是一旦开启了ldap认证,则所有的用户可以登录CI平台中的任意软件,为了避免这种情况,所以需要对ldap设置memberof选项

    三、开启ldapmemberof选项

    1、检查数据库配置
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uJ1miNfC-1642338112435)(images\image-20210706152639970.png)]
    或者进入容器后执行:ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
    2、编写配置文件

    • memberof_conf.ldif
    #开启memberof支持
    dn: cn=module{0},cn=config
    cn: modulle{0}
    objectClass: olcModuleList
    objectclass: top
    olcModuleload: memberof.la
    olcModulePath: /usr/lib/openldap
    
    #新增用户支持memberof配置
    dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
    objectClass: olcConfig
    objectClass: olcMemberOf
    objectClass: olcOverlayConfig
    objectClass: top
    olcOverlay: memberof
    olcMemberOfDangling: ignore
    olcMemberOfRefInt: TRUE
    olcMemberOfGroupOC: groupOfUniqueNames
    olcMemberOfMemberAD: uniqueMember
    olcMemberOfMemberOfAD: memberOf
    
    • refint1.ldif
    dn: cn=module{0},cn=config
    add: olcmoduleload
    olcmoduleload: refint
    
    • refint2.ldif
    dn: olcOverlay=refint,olcDatabase={1}mdb,cn=config
    objectClass: olcConfig
    objectClass: olcOverlayConfig
    objectClass: olcRefintConfig
    objectClass: top
    olcOverlay: refint
    olcRefintAttribute: memberof uniqueMember  manager owner
    

    3、开启memberof配置

    • 进入容器后分别执行下列语句,注意样例中的路径为我本地路径,根据自身情况酌情修改路径。
      ldapadd -Q -Y EXTERNAL -H ldapi:/// -f  /data/disk1/openladp/memberof_conf.ldif 
      ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f  /data/disk1/openladp/refint1.ldif 
      ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /data/disk1/openladp/refint2.ldif 
    

    四、配置验证

    1、使用ldap admin创建人员以及组

    • 第一步、创建人员组,通常该组内会包含所有的账号信息
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OBZ9K30E-1642338112436)(images\image-20210706181329306.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZhHaEq6X-1642338112436)(images\image-20210706181511619.png)]
    • 逐步添加需要管理的账户信息
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tcYmz4r5-1642338112436)(images\image-20210706181611412.png)]
    • 设置用户密码
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EjnTKGbj-1642338112437)(images\image-20210706181729664.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HZQCfII0-1642338112437)(images\image-20210706182045865.png)]
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YfoxC7lk-1642338112438)(images\image-20210706182146650.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nUo97NsU-1642338112438)(images\image-20210706182245388.png)]
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TvwZdL83-1642338112439)(images\image-20210706182338568.png)]
      2、验证memberof是否开启成功
    • 在容器内执行
    ldapsearch -LL -Y EXTERNAL -H ldapi:/// "(uid=congminnan)" -b dc=jn,dc=com memberof 
    
    • 看到如下结果表示配置正确
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PwAIFtme-1642338112439)(images\image-20210706183001857.png)]
    展开全文
  • RabbitMQ packaged by Bitnami What is RabbitMQ? RabbitMQ is an open source general-purpose message broker that is designed for consistent, highly-available messaging scenarios (both synchronous and ...
  • MariaDB Galera packaged by Bitnami What is MariaDB Galera? MariaDB Galera is a multi-primary database cluster solution for synchronous replication and high availability. Overview of MariaDB Galera ...
  • bitnami/openldap:latest Step 6: Launch the NGINX server instance Use the --network <NETWORK> argument to the docker run command to attach the container to the my-network network. $ docker run ...
  • Nginx - LDAP Authentication

    2019-10-20 08:27:12
    sudo rpm -hvi openldap-devel-2.4.44-21.el7_6.x86_64.rpm Nginx Configure Download package from https://github.com/nginxinc/nginx-ldap-auth Use sample configure. cp /usr/local/nginx/conf/nginx...
  • 自己一个一个工具安装又感觉好像有点多余,各位,你懂的这个...就是这种契机下,我无意间找到了这款应用,BitNami MAMP Stack。 看完他的介绍: Bitnami MAMP Stack provides a complete PHP, MySQL and Apache
  • 使用Bitnami在Windows上的Reviewboard上遇到了这个特定问题。为了给出Windows的答案,我使用了注释中提到的以下链接: http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap 将那个轮子(whl文件)放入我的评论...
  • 现在就可以用下面的命令来安装 OpenLDAP 了: helm upgrade --install openldap ./charts/openldap --values openldap/values-openldap.yml 安装过程中会输出一些成功信息,以及访问该服务的示例。 注意下面几个...
  • Awesome Sysadmin A curated list of amazingly awesome open source sysadmin resources. Contributing Please read CONTRIBUTING if you wish to add software. Table of Contents Awesome Sysadmin ...
  • docker pull bitnami/redis:4.0.8-r2  更改values.yaml所有的storageClass为storageClass: "gluster-heketi"  注意修改values.yaml的redis默认配置,添加port至master master: port: 6379  注意...
  • docker pull bitnami/redis:4.0.8-r2 3.1.6 更改 values.yaml 更改values.yaml所有的storageClass为storageClass: "gluster-heketi" sed -i 's@# storageClass: "-"@storageClass: "gluster-heketi"@g' values...
  • amazon-ses, aws-cognito, aws-iot, terraform-provider-aws, api-gateway, amazon-vpc, aws-serverless, aws-codepipeline, aws-codebuild, amazon-rds-aurora, bitnami, amazon-lex, aws-step-functions, aws-...
  • xampp

    2017-12-10 16:40:00
    Bitnami provides a free all-in-one tool to install Drupal, Joomla!, WordPress and many other popular open source apps on top of XAMPP. If you are using XAMPP-VM for OS X, you will need to use the...
  • docker 操作记录-2

    千次阅读 2019-12-31 13:27:34
    bitnami/redis-sentinel Bitnami Docker Image for Redis Sentinel 8 [OK] redislabs/redisgraph A graph database module for Redis 8 [OK] arm64v8/redis Redis is an open source key-value store that… 6 ...
  • KubeSphere集群安装

    2021-11-19 15:31:59
    1、重新安装kubernetes 【注】参照我的安装Kubernetes入门篇,只需要安装到**[4-8]子节点加入主节点**,后面的k8s官方可视化工具不用安装。 2、安装KubeSphere前置环境 1、nfs文件系统 1-1、安装nfs-server ...
  • Docker容器化技术入门

    2022-03-03 23:29:45
    本人环境搭建在内网树莓派4b上,使用的linux发行版为树莓派Ubuntu 21.04 server版本 一些镜像需要根据自己的处理器架构去修改!!! 安装Docker sudo apt install docker.io 查看安装的docker是否成功 root@ubuntu...
  • 高效的使用top

    2015-05-30 20:01:00
    看起来很简单,只需要使用 -p 列出所有需要的 PID,并使用逗号间隔或简单的多次使用 -p即可。 另一种可能是监测拥有特定用户标识(UID)的进程。应对此需求,你可以使用 -u 或 -U 选项。假设用户“johndoe”的 UID...
  • prometheus部署 Docker镜像 docker pull prom/prometheus:v2.25.1 镜像导出命令 docker save prom/prometheus:v2.25.1 -o docker-prometheus-v2.25.1.tar 镜像导入命令 docker load -i docker-prometheus-v2.25.1....
  • 跟乐乐学Docker容器!

    2021-06-27 13:28:39
    一.认识Docker 什么是Docker‘容器’? Docker是一种容器,准确来说是一个应用容器引擎,比如一个centos服务器系统,当前的生产环境是jdk8,mysql5.1,nginx5,那么我们可以通过...4 net-snmp.x86_64 1:5.7.2-49.el7_9.1 net-snmp-agent-libs.x86_64 1:5.7.2-49.el7_9.1 net-snmp-libs.x86_64 1:5.7.2-49.el7_9.1 net-snmp-utils.x86_64 1:5.7.2-49.el7_9.1 nspr.x86_64 0:4.25.0-2.el7_9 nss.x86_64 0:3.53.1-7.el7_9 nss-softokn.x86_64 0:3.53.1-6.el7_9 nss-softokn-freebl.x86_64 0:3.53.1-6.el7_9 nss-sysinit.x86_64 0:3.53.1-7.el7_9 nss-tools.x86_64 0:3.53.1-7.el7_9 nss-util.x86_64 0:3.53.1-1.el7_9 openldap.x86_64 0:2.4.44-23.el7_9 openssh.x86_64 0:7.4p1-21.el7 openssh-clients.x86_64 0:7.4p1-21.el7 openssh-server.x86_64 0:7.4p1-21.el7 openssl-libs.x86_64 1:1.0.2k-21.el7_9 p11-kit.x86_64 0:0.23...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

bitnami/openldap 使用

友情链接: JDT-36.rar