搭建私服接入ldap验证镜像 docker+nexus3+ldap

背景:宿主机已经有一个容器运行着openldap服务
假设路径为192.168.88.188 端口映射为389:389

  • 由于隐私,因此将管理员账户假设为
    olcSuffix: dc=companay,dc=com
    olcRootDN: cn=Manager,dc=companay,dc=com
    olcRootPW: 1234
  • 用户目录在 ou=people,dc=secmask,dc=com

开始搭建

docker run -id 
--privileged=true   
--name=nexus3 
--restart=always 
-p 7081:8081 
-v /nexus3/nexus-data:/var/nexus-data   
sonatype/nexus3

-id 创建守护式容器
--privileged=true 授予root权限(挂载多级目录的时候必须为true,否则容器访问宿主机权限不足)
--name=名字 给你的容器起个名字
-p 宿主机端口:容器端口映射
-v 宿主机目录:容器目录 目录挂载
  • 2.访问路径 http://192.168.88.188:7081/ (宿主机ip+宿主机映射的端口,有时候初始化需要时间稍微等一下)登录
    在这里插入图片描述
    默认用户为admin
    密码在 admin.password 文件里面
    在宿主机运行命令 find / -name admin.password 在/路径下的文件里面寻找 名称为admin.password文件
    在这里插入图片描述
    vi 此路径 vi /var/lib/docker/volumes/6452efb976534ec98753826bcff3cc052d0d77de01427ff32fe26351fec2ecec/_data# cat admin.password
    里面一长串就是登录密码 将其复制下来 去登录
    登录成功后 会提示你修改密码 修改完以后 刚刚的admin.password 文件就没有了。
    到这里nexus已经搭建完毕
  • 3.配置ldap接入验证
    在【Administration】【Realms】配置中,把LDAP Realm设为Active。在这里插入图片描述
    在这里插入图片描述
    • 一个Connection,其实就是一个LDAP连接。 这个页面,配置连接到一个LDAP服务器所需的全部信息。
    • Name可以随便填。LDAP server address则需要填写LDAP服务器的IP。 协议可选ldap或ldaps,而端口则取决于配置。 如果没有特殊配置,ldap默认端口是389,而ldap则是636。
    • Search base只需要填DC即可,比如DC=example,DC=com。 其它内容,比如CN、OU等,不需要填写。
    • Authentication method有以下选项:
      • Simple Authentication,
      • Anonymous Authentication,
      • DIGEST-MD5,
      • CRAM-MD5
        通常选择Simple Authentication即可。
    • Username or DN、Password里填写账户、密码,而 Connection rules无需修改。

填写完毕后,点击【Verify connection】按钮,可以验证信息。 如果成功,即可保存进下下一步。
保存了Connection后,会出现一个【User and group】的标签页。 这个页面,进一步配置LDAP的用户与用户组的相关信息。

  • 在最开头的Configuration template中,有四种模板可选:
    • Active Directory
    • Generic Ldap Server
    • Posix with Dynamic Groups
    • Posix with Static Groups
      这是自动配置以下信息的模板,对真正的配置起预设作用。 通常选择第一个即可。

Base DN里无须填写DC,这在前一页的Search base里已经填过了。 按照实际的LDAP配置,填写对应信息即可,比如OU=people。
User subtree通常需要勾选。 如果把LDAP的Tree比作目录的话,勾选以后相当于递归查找子目录。 多一点信息,往往比少一点信息,更不容易出错。

User filter通过过滤规则,减少搜索信息,用于提升性能。 仅仅只是提升性能,所以,如果不懂它特殊的匹配规则,也可以不填。

在前面选择模板为Active Directory后,User ID attribute默认为sAMAccountName、 Real name attribute默认为cn、Email attribute默认为mail、Password attribute为空。 通常都可以不改,或者也可以按需修改。

Map LDAP groups as roles如果不勾选,就不会同步用户组信息。 如果勾选,则可以选择Group type和Group member of attribute。 若无必要,保持默认即可。

填写完毕后,通过【Verify user mapping】可以验证查询结果。 如果查询失败、或者查询结果为空,都需要重新调整配置。 验证成功后,还可以通过【Verify login】的尝试输入LDAP里的账户、密码。

贴下我的配置

在这里插入图片描述
由于隐私,忽略图中马赛克。 图中Search base => 填写的就是上文中的 dc=companay,dc=com
Username or DN => 就是olcRootDN的值 => cn=Manager,dc=companay,dc=com
password就是olcRootPW的 => 1234
点击验证连接成功后就下一步 如果没有成功就是上面配置信息有误,需检查是否填写错误。
在这里插入图片描述
在这里插入图片描述
上图关于配置组为动态映射。可能会不能 将 用户所属的组 映射为 角色
如下图
在这里插入图片描述

上面用户没有memberOf属性。如果设置了memberOf属性,上面动态映射可以 映射出用户的组(映射为角色,但是角色需要自己创建,创建后 用户自动拥有角色的权限)

继续修改配置将 用户的组也映射出来。方便配置权限

对于 openldap 组有两种方式创建

在这里插入图片描述

对于两种方式创建的组属性不同,因此配置的属性也不同

有四个组 三个是Group of unique name模式 一个是Group
在这里插入图片描述

  • Group 模式
    • 这是group组
      在这里插入图片描述
    • 这是对应的配置 和上图 属性 相对应。
      在这里插入图片描述
    • 演示效果
      在这里插入图片描述
  • Group of unique name模式
    • 组属性
      在这里插入图片描述
    • 对应的配置
      在这里插入图片描述
    • 演示效果
      在这里插入图片描述
    到此 已经介入openldap验证。并且可以 将 openldap 用户所属的 组 映射为nexus里面的 角色。并且拥有该角色的权限
    • 但是 此时需要手动导入 一下组 添加角色 在这里插入图片描述
      配置正确的情况下 会有提示 如下
      在这里插入图片描述
    • 然后为此角色(对应openldap的组)设置权限。
    • 相关用户(属于此组 下的用户)会自动添加此 角色。

下图可以查看ldap用户。
在这里插入图片描述

结束

参考资料
https://www.jianshu.com/p/09a6cab3785a
https://note.qidong.name/2017/09/nexus-ldap/
https://help.sonatype.com/repomanager3/security/ldap

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值