Kubernetes实录-第一篇-集群部署配置(3) 配置企业级镜像仓库Harbor集成openLDAP

Kubernetes实录系列记录文档完整目录参考: Kubernetes实录-目录

相关记录链接地址 :

  • 集群部署配置(1) CentOS7配置docker环境
  • 集群部署配置(2) 配置企业级镜像仓库Harbor
  • 集群部署配置(3) 配置企业级镜像仓库Harbor集成openLDAP

Harbor支持的认证后端有4种类型,分别是databaseLDAP/ADUAAOIDC,其中UAA目前来说还是不建议使用的状态。默认采用的是数据库(database)作为认证,这里测试使用LDAP作为认证后端。
备注: 默认使用数据库作为认证后端,并且已经创建了用户就不能修改认证方式了,所以要在配置初始就决策好用哪种认证后端。

主机名称 ip地址 操作系统 角色 软件版本 备注
opsharbor-shqs-1 10.99.73.38 CentOS 7.6 docker hub docker-ce 19.03.11
docker-compose 1.26.0
harbor 1.10.3
测试域名:
registry.ejuops.com
sysldap-shylf-1 10.116.72.11 CentOS 7.6 openLDAP openldap-2.4.44 测试域名:
直接IP地址

一、准备工作

  • harbor环境的配置参考上一篇文档: 配置企业级镜像仓库Harbor
    https://registry.ejuops.com/
    
  • openLDAP的安装参考文档:配置OpenLDAP服务单节点模式,如果配置其他模式(主从或者多主)在该文档里面也有相关配置的链接
    ldapURL:ldap://10.116.72.11
    LDAP搜索DN:cn=Manager,dc=example,dc=com         #咨询ldap管理员,如果ldap支持匿名搜索这个不用配置
    LDAP搜索密码:xxxxxx                             #咨询ldap管理员,如果ldap支持匿名搜索这个不用配置
    LDAP基础DN:ou=People,dc=example,dc=com
    LDAP过滤器:objectclass=posixAccount  #如果开启了memberof属性参考下面的组管理
    LDAP用户UID: uid   #根据实际情况配置,咨询ldap管理员,可能是cn,uid或者其他
    LDAP搜索范围:子树
    
    # 如果配置了memberof属性可以设置组相关配置,上面的LDAP过滤器可以修改为:(&(objectclass=posixAccount)(memberof=cn=harbor,ou=Group,dc=example,dc=com))
    LDAP组基础DN:ou=Group,dc=example,dc=com
    LDAP组过滤器:objectclass=groupOfUniqueNames
    LDAP组ID属性:cn
    LDAP组管理员DN: cn=harbor,ou=Group,dc=example,dc=com # 这个可以不用配置,这里说明改组内的成员都是管理员
    LDAP 组成员: memberof
    LDAP搜索范围:子树
    
  • harbor处于启动状态

二、Harbor集成openLDAP(不进行组管理)

openLDAP没有启用memberof属性,无法进行组管理。只有ldap中满足LDAP过滤器条件 objectclass=posixAccount都可以登录,登录后是普通用户权限,然后在harbor用户管理页面进行权限授权.
Kubernetes实录-第一篇-集群部署配置(3) 配置企业级镜像仓库Harbor集成openLDAP_第1张图片
配置完成后,点击【测试LDAP服务器】成功后直接保存即可,退出登录。然后重启harbor服务

docker-compose down
docker-compose start

可以使用ldap的用户进行登录了,因为我们的过滤器简单,所有满足条件的用户都可以登录进来,并且是普通权限。
如下是ldap里面的一个用800001的登录过程。
Kubernetes实录-第一篇-集群部署配置(3) 配置企业级镜像仓库Harbor集成openLDAP_第2张图片

三、Harbor集成openLDAP,启用memberof属性,进行组管理

  • 上面的配置以及使用的过滤器导致所有的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))
    

    如此,只能组内用户可以登录了。

  • 配置组管理
    Kubernetes实录-第一篇-集群部署配置(3) 配置企业级镜像仓库Harbor集成openLDAP_第3张图片
    可以退出登录,重新使用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

你可能感兴趣的:(Kubernetes,docker,harbor,kubernetes)