LDAP(ApacheDS)全平台接入指南

技术文档网 2021-05-06

ApacheDS安装

  • 安装JDK8(直接官网下载rpm包安装)
    rmp -ivh jdk-8u51-linux-x64.rpm
    
  • 安装ApacheDS(官网下载apacheds-2.0.0.AM25-64bit.bin)
    ./apacheds-2.0.0.AM25-64bit.bin
    

ApacheDS相关说明

  • 默认安装程序目录 /opt/apacheds-2.0.0.AM25 (注意版本号)
  • 默认安装数据目录 /var/lib/apacheds-2.0.0.AM25 (注意版本号)
  • 默认的管理组 cn=Administrators,ou=groups,ou=system 给外部平台(zabbix,sonar,jenkins..)的ldap账户建议绑定到cn=Administrators,ou=groups,ou=system
  • 默认管理员 uid=admin,ou=system;密码secret

ApacheDS常见问题

  • LDAP在使用过程中修改管理员密码可能导致数据库损坏
    1. 建议修改前先做备份
    2. 关闭使用LDAP的应用
    3. 停止正在远程复制的LDAP从服务器
    4. 修改admin密码

ApacheDS备份

# Centos安装ldapsearch
# yum install -y openldap-clients
ldapsearch -D "uid=admin,ou=system" -w 密码 -p 10389 -h localhost -b "ou=system" -s sub "(ObjectClass=*)" * + > backup.ldif

ApacheDS远程复制

  • 官网下载客户端ApacheDirectoryStudio
  • 配置链接到ldapServer,右键菜单打开OpenConfiguration,Replication配置页,点Add按钮 ``` Replication Mode : Refresh And Persist Remote Host : {{填入远程LDAP服务器IP}} Remote Port : {{填入远程LDAP服务器端口:10389}} Bind DN : {{管理账户:uid=admin,ou=system}} Bind Password : {{管理密码默认是:secret}}

Base DN : {{同步层级: ou=system}} Attributes : 勾选All Attributes

远程同步不会同步cn=Administrators,ou=groups,ou=system,建议手动导出,导入配置


### Jenkins接入ApacheDS配置
* 安装Jenkins插件“LDAP Plugin”
* 在ApacheDS服务器上创建2个组(可通过opscloud创建)
  - cn=jenkins-admin,ou=groups,ou=system (管理组)
  - cn=jenkins-users,ou=groups,ou=system (普通用户)
* 在opscloud中创建用户admin-jenkins,并加入Administrators组(cn=admin-jenkins,ou=users,ou=system)
* Jenkins-系统管理-全局安全配置
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Jenkins/jenkins-1.png)
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Jenkins/jenkins-2.png)

Security Realm : 选择"LDAP" Server : {{配置ldap服务器url: ldap://ldap.example.com:10389}} root DN : ou=system User search base : ou=users User search filter : cn={0} Group search base : ou=groups Group search filter : (&(cn={0})(objectclass=groupOfUniqueNames)) Group membership : 选择“Search for LDAP groups containing user” Manager DN : {{管理账户参考:cn=admin-jenkins,ou=users,ou=system}} Manager Password : {{管理账户密码}} Display Name LDAP attribute : displayname Email Address LDAP attribute : mail

Authorization : 选择"安全矩阵" "Add user or group.."按钮添加jenkins-admin,jenkins-users(这2个组提前用opscloud建好) 勾选组对应的权限,jenkins-admin可勾选全部


### Zabbix接入ApacheDS配置
* 在opscloud中创建用户admin-zabbix,并加入Administrators组(cn=admin-zabbix,ou=users,ou=system)
* 配置Zabbix认证:Administration-Authentication
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Zabbix/zabbix-ldap.png)
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Zabbix/zabbix-user.png)

Authentication Default authentication : 选择"LDAP" LDAP settings Enable LDAP authentication : 勾选 LDAP host : {{配置ldap服务器url:ldap://ldap.example.com}} Port: 10389 Base DN : ou=users,ou=system Search attribute : cn Bind DN : cn=admin-zabbix,ou=users,ou=system Case sensitive login : 勾选 Bind password : {{配置管理账户密码}} Test authentication : {{填写用户名密码可测试认证}}

* Zabbix配置认证后还需要添加用户,才可登录(opscloud会自动推送用户到Zabbix服务器,并绑定相关的权限)

### Nexus LDAP配置说明
Ldap主配置
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Nexus/nexus-ldap.png)
Ldap用户组配置
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Nexus/nexus-ldap-group.png)
角色配置(映射到Ldap同名用户组)
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Nexus/nexus-roles.png)
nexus-admin角色(管理员)配置
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Nexus/nexus-roles-nexus-admin.png)
nexus-developer角色(部署权限)配置
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Nexus/nexus-roles-nexus-developer.png)
nexus-users角色配置
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Nexus/nexus-roles-nexus-users.png)



### Sonar LDAP配置说明
LDAP configuration
General Configuration

sonar.security.realm=LDAP ldap.url=ldap://ldap.example.com:10389 ldap.bindDn=cn=admin-sonar,ou=users,ou=system ldap.bindPassword=LDAP管理员密码

User Configuration

ldap.user.baseDn=ou=users,ou=system ldap.user.request=(&(objectClass=inetOrgPerson)(cn={login})) ldap.user.realNameAttribute=displayName ldap.user.emailAttribute=mail

Group Configuration

ldap.group.baseDn=ou=groups,ou=system ldap.group.request=(&(objectClass=groupOfUniqueNames)(uniqueMember={dn}))


### Jumpserver LDAP配置说明
![](https://github.com/ixrjog/opsDoc/master/ApacheDS/Jumpserver/Jumpserver-ldap.png)



相关文章

  1. 硅谷互联网公司的开发流程

    开发流程包括这么几个阶段: OKR 的设立; 主项目及其子项目的确立; 每个子项目的生命周期; 主项目的生命周期; 收尾、维护、复盘。 第一点,OKR 的设立 所有项目的起始,都应该从 Ro

  2. RESTful-表述性状态转移风格

    REST英文全拼:Representational State Transfer 面向资源编程 资源指的就是一类数据 产品表->就是产品资源 最重要的是如何表示一个资源 地址即

  3. 稳定性思考

    产品功能线 0-1: 当系统从无到有的时候,首要考虑的是研发效率,功能快速迭代,满足快速增长的业务需求 1-10 系统已经搭建起来,此时考虑的是系统的稳定性。 可用性:1.隔离:区分出核心和非核心功能

  4. Supervisor守护队列发邮件

    安装 CentOS: yum -y install supervisor Debien/Ubuntu适用:apt-get install supervisor 配置 修改主配置文件:vim /et

  5. 安装libsodium,让服务器支持chacha20等加密方式

    用chacha20加密方式需要安装libsodium 注意:libsodium从1.0.15开始就废弃了aes-128-ctr yum install wget m2crypto git libsod

随机推荐

  1. 硅谷互联网公司的开发流程

    开发流程包括这么几个阶段: OKR 的设立; 主项目及其子项目的确立; 每个子项目的生命周期; 主项目的生命周期; 收尾、维护、复盘。 第一点,OKR 的设立 所有项目的起始,都应该从 Ro

  2. RESTful-表述性状态转移风格

    REST英文全拼:Representational State Transfer 面向资源编程 资源指的就是一类数据 产品表->就是产品资源 最重要的是如何表示一个资源 地址即

  3. 稳定性思考

    产品功能线 0-1: 当系统从无到有的时候,首要考虑的是研发效率,功能快速迭代,满足快速增长的业务需求 1-10 系统已经搭建起来,此时考虑的是系统的稳定性。 可用性:1.隔离:区分出核心和非核心功能

  4. Supervisor守护队列发邮件

    安装 CentOS: yum -y install supervisor Debien/Ubuntu适用:apt-get install supervisor 配置 修改主配置文件:vim /et

  5. 安装libsodium,让服务器支持chacha20等加密方式

    用chacha20加密方式需要安装libsodium 注意:libsodium从1.0.15开始就废弃了aes-128-ctr yum install wget m2crypto git libsod