在Ldap中添加多組用於不同的平台認證


本文記錄如何在ldap中添加多個不同的組和用戶來實現不同平時使用不同組下的用戶登陸。

本次操作全在LDAP Account Manager平台上實現。

提示
文中所使用的域名僅是通過/etc/hosts中配置實現,所以在不同的機器中要添加一個對應的記錄即可。

完成上篇的安裝后,登陸系統時默認會提示創建兩個用組,People和group,這兩組默認情況下所有創建的用戶都會在People下,而我們創建的組都保存在group下。

接下來看操作吧。

新建一個用戶Groups

這個中文翻譯有點,呃,看得懂就算了。

點擊菜單Groups,選擇New Group創建

保存后,接下來創建幾個測試用戶。

一般帶"*"號的填寫,其它的都可以不寫,建議也可以把郵箱地址寫上,因為我們只建了一個用戶組,所以默認用的戶都在這個組ldapuser內。給每個用戶設置一個密碼后,保存即可。

然后點擊右上角的Tree view就以看到以下界面。

這里創建三個Object屬性為: groupOfUniqueNames的組,分別harbor,jenkins和gitgroup。

點擊Create new entry here進入后選擇Default,然后選擇Object classes類型為groupOfUniqueNames,點擊proceed進入下一步。

選擇相應的Object屬性

填寫cn名稱(這里暫稱為組名)

再次確認提交

1、RDN這里選擇CN
2、cn 這里定義組名harbor
3、uniqueMember這里因為是必填,所以先選擇一個用戶,屬於此組的。
4、description描述,自己備注一下好區分
5、ou選擇屬於哪個OU下group
6、Create object
7、再次詢問是否創建,選擇commit即可。

剩余jenkins和gitgroup我就不寫了,同樣的方法創建。

完成三個組的其本效果如下,這里為了方便測試,每個用戶都只屬於其它一個組。

說明
因為要通過ldap來分組實現不同的組來授權到不同的平台這樣需要memberof的一個功能,那么我們怎么知道這個openldap鏡像是否支持memberof的功能。

為了更直觀,我們回到機器上使用命令查看一下。

  • 查看openldap是否有支持並加載到相應的模塊
    [root@ldap ~]# docker exec -it openldap slapcat -n 0 | grep olcModuleLoad
    olcModuleLoad: {0}back_mdb
    olcModuleLoad: {1}memberof
    olcModuleLoad: {2}refint
    
    看到上面的返回數據就知道是支持了。
  • 接下來直接點,查看openldap服務下的dn配置都有哪些。
    [root@ldap ~]# docker exec openldap ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn 
    dn: cn=config
    dn: cn=module{0},cn=config
    dn: cn=schema,cn=config
    dn: cn={0}core,cn=schema,cn=config
    dn: cn={1}cosine,cn=schema,cn=config
    dn: cn={2}nis,cn=schema,cn=config
    dn: cn={3}inetorgperson,cn=schema,cn=config
    dn: cn={4}ppolicy,cn=schema,cn=config
    dn: cn={5}dhcp,cn=schema,cn=config
    dn: cn={6}dnszone,cn=schema,cn=config
    dn: cn={7}mail,cn=schema,cn=config
    dn: cn={8}mmc,cn=schema,cn=config
    dn: cn={9}openssh-lpk,cn=schema,cn=config
    dn: cn={10}quota,cn=schema,cn=config
    dn: cn={11}radius,cn=schema,cn=config
    dn: cn={12}samba,cn=schema,cn=config
    dn: cn={13}zarafa,cn=schema,cn=config
    dn: olcBackend={0}mdb,cn=config
    dn: olcDatabase={-1}frontend,cn=config
    dn: olcDatabase={0}config,cn=config
    dn: olcDatabase={1}mdb,cn=config
    dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
    dn: olcOverlay={1}refint,olcDatabase={1}mdb,cn=config
    

通過上的可以看到,該有的都已經有了。如果此時你再通過寫一個配置文件,然后再使用命令導入的話就會提示錯誤,說相應的dn已經存在之類的。所以省去了寫配置再導入了的步驟了。

我們再查看OU列表,可以看到剛創建的幾個組(稱為組不太規范,大概懂就算了)下都有一個uniqueMember屬性,並帶有一個用戶。

[root@ldap ~]# docker exec openldap ldapsearch -LLL -x -H ldap:/// -D "cn=admin,dc=sotemalltest,dc=com" -b "dc=sotemalltest,dc=com" "(ou=*)" -w redhat
dn: ou=group,dc=sotemalltest,dc=com
objectClass: organizationalUnit
ou: group

dn: ou=People,dc=sotemalltest,dc=com
objectClass: organizationalUnit
ou: People

dn: cn=harbor,ou=group,dc=sotemalltest,dc=com
cn: harbor
description:: aGFyYm9y5LuT5bqT6K6k6K+B55So5oi357uE
objectClass: groupOfUniqueNames
objectClass: top
ou: group
uniqueMember: cn=jack,ou=People,dc=sotemalltest,dc=com

dn: cn=jenkins,ou=group,dc=sotemalltest,dc=com
cn: jenkins
description:: amVua2luc+eUqOaIt+e7hA==
objectClass: groupOfUniqueNames
objectClass: top
ou: group
uniqueMember: cn=swper,ou=People,dc=sotemalltest,dc=com

dn: cn=gitgroup,ou=group,dc=sotemalltest,dc=com
cn: gitgroup
description:: Z2l055So5oi357uE
objectClass: groupOfUniqueNames
objectClass: top
ou: group
uniqueMember: cn=jarry,ou=People,dc=sotemalltest,dc=com

至此,LDAP Account Manager平台上的操作就暫告一段落了,接下來我們就靠這個uniqueMember屬性來實現不同分組驗證登陸到不同的平台。


免責聲明!

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



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