Kubernetes实录系列记录文档完整目录参考: Kubernetes实录-目录
相关记录链接地址 :
集群部署配置(1) CentOS7配置docker环境 集群部署配置(2) 配置企业级镜像仓库Harbor集群部署配置(3) 配置企业级镜像仓库Harbor集成openLDAPHarbor支持的认证后端有4种类型,分别是database,LDAP/AD,UAA,OIDC,其中UAA目前来说还是不建议使用的状态。默认采用的是数据库(database)作为认证,这里测试使用LDAP作为认证后端。 备注: 默认使用数据库作为认证后端,并且已经创建了用户就不能修改认证方式了,所以要在配置初始就决策好用哪种认证后端。
主机名称ip地址操作系统角色软件版本备注opsharbor-shqs-110.99.73.38CentOS 7.6docker hubdocker-ce 19.03.11docker-compose 1.26.0harbor 1.10.3测试域名:registry.ejuops.comsysldap-shylf-110.116.72.11CentOS 7.6openLDAPopenldap-2.4.44测试域名:直接IP地址openLDAP没有启用memberof属性,无法进行组管理。只有ldap中满足LDAP过滤器条件 objectclass=posixAccount都可以登录,登录后是普通用户权限,然后在harbor用户管理页面进行权限授权. 配置完成后,点击【测试LDAP服务器】成功后直接保存即可,退出登录。然后重启harbor服务
docker-compose down docker-compose start可以使用ldap的用户进行登录了,因为我们的过滤器简单,所有满足条件的用户都可以登录进来,并且是普通权限。 如下是ldap里面的一个用800001的登录过程。
上面的配置以及使用的过滤器导致所有的ldap用户都可以登录harbor,这个不满足我们的需求。实际使用中经常是ldap配置一个组,将需要登录ldap的用户添加到该组,只有该组内的成员方可以登录harbor。
还可能配置另一个组,将需要管理员权限的用户添加到这个组里面,登录后直接具有管理员权限。需要过滤器配合。我们将配置一个组 harbor 该组内的用户
组:cn=harbor,ou=Group,dc=example,dc=com 组成员:800001,800002,非组成员:800003将LDAP过滤器配置为
(&(objectclass=posixAccount)(memberof=cn=harbor,ou=Group,dc=example,dc=com))如此,只能组内用户可以登录了。
配置组管理 可以退出登录,重新使用ldap账户登录验证了。 OK,到这里完成harbor与openldap的集成。
参考文档: 官方:https://goharbor.io/docs/1.10/administration/configure-authentication/ldap-auth/ 博文:https://www.58jb.com/html/harbor-auth-with-ldap.html