ldap 集成harbor


harbor: 1.6

默認配置文件在harbor.cfg,我們可以先不添加配置,直接在harbor web界面進行配置(harbor 1.6 如果db 啟動失敗提示postgresql 數據目錄已存在,可在./common/config/db/env中

添加  PGDATA=/tmp )

首先需在harbor.cfg文件中更改認證模式為ldap

auth_mode = ldap_auth

配置完成,點擊保存即可使用ldap 帳戶登錄harbor,但是項目權限無法通過ldap組去控制。

通過ldap組控制harbor權限,需滿足一下條件:

a.支持導入ldap組(harbor版本需1.6及以上)

b.支持memberOf屬性

 

#開啟memberOf屬性

創建memberof.ldif文件,導入該模塊

dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
objectclass: top
olcModuleLoad: memberof.la
olcModulePath: /usr/lib64/openldap

dn: olcOverlay=memberof,olcDatabase={2}bdb,cn=config
objectclass: olcconfig
objectclass: olcMemberOf
objectclass: olcoverlayconfig
objectclass: top
olcoverlay: memberof

ldapadd -Y EXTERNAL -H ldapi:/// -f memberof.ldif #導入數據

創建用戶和組進行測試

ou.ldif

dn: ou=Users,dc=ldap,dc=xxxxx,dc=net
objectClass: organizationalUnit
ou: Users

dn: ou=Groups,dc=ldap,dc=xxxxx,dc=net
objectClass: organizationalUnit
ou: Groups

ldapadd  -D "cn=Manager,dc=ldap,dc=xxxxx,dc=net"  -W -f ou.ldif  #導入用戶和組的ou

user.ldif

dn: uid=test,ou=Users,dc=ldap,dc=xxxxx,dc=net
objectClass: account
uid: test

ldapadd -D "cn=Manager,dc=ldap,dc=xxxxx,dc=net" -W -f user.ldif #導入用戶

group.ldif

dn: cn=testgroup,ou=Groups,dc=ldap,dc=xxxxx,dc=net
objectClass: groupOfNames
cn: testgroup
member: uid=test,ou=Users,dc=ldap,dc=xxxxx,dc=net

ldapadd -D "cn=Manager,dc=ldap,dc=xxxxx,dc=net" -W -f group.ldif  #導入組

測試memberOf屬性:ldapsearch -LL -Y EXTERNAL -H ldapi:/// "(uid=test)" -b dc=ldap,dc=xxxxx,dc=net memberof

返回顯示test屬於testgroup,則說明memberof屬性配置成功 。

 

#添加ldap組到harbor project

點擊項目-->選擇Members, 添加GROUP

點擊保存,使用此ldap組下賬戶登錄harbor,查看是否擁有此項目權限。

登錄驗證成功,配置完成。

參考鏈接:

https://github.com/goharbor/harbor/blob/master/docs/manage_role_by_ldap_group.md

http://blog.51cto.com/jerry12356/1861620


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM