之前,我們已經通過 docker 的方式安裝部署了 openldap 服務。所以本文將主要介紹如何啟用 openldap 中非常有用的 memberof 特性。
很多場景下,我們需要快速的查詢某乙個使用者是屬於哪乙個或多個組的(member of)。memberof 正是提供了這樣的乙個功能:如果某個組中通過 member 屬性新增了乙個使用者,openldap 便會自動在該使用者上建立乙個 memberof 屬性,其值為該組的 dn。
遺憾的是,openldap 預設並不啟用這個特性,因此我們需要通過相關的配置開啟它。
建立乙個支援 memberof 的 docker 映象
我們的思路是以 osixia/openldap 為基準,通過 dockerfile 來擴充套件其啟動指令碼,來實現對 memberof 的支援。
首先,我們需要修改原映象中的 bootstrap/ldif/03-memberof.ldif 指令碼中的 olcmemberofgroupoc 和 olcmemberofmemberad 屬性,結果如下:
# load memberof moduledn: cn=module,cn=config
changetype: modify
add: olcmoduleload
olcmoduleload: memberof
# backend memberof overlay
dn: olcoverlay=memberof,olcdatabase=,cn=config
changetype: add
objectclass: olcoverlayconfig
objectclass: olcmemberof
olcoverlay: memberof
olcmemberofdangling: ignore
olcmemberofrefint: true
olcmemberofgroupoc: groupofnames
olcmemberofmemberad: member
olcmemberofmemberofad: memberof
from osixia/openldap然後通過如下命令,便可以構建出新的映象 myanbin/openldap:maintainer yanbin ma
env ldap_organisation="xinhua.io" ldap_domain="xinhua.io" ldap_admin_password="passw0rd"
add bootstrap /container/service/slapd/assets/config/bootstrap
$ docker build -t myanbin/openldap:0.1.0 .最後執行此映象即可:
$ docker run --name ldap_core -p 389:389 -p 636:636 --detach myanbin/openldap使用 ldif 檔案匯入使用者和組資料
首先我們匯入乙個使用者:
[root@localhost ~]# vim add_user.ldifdn: uid=john,ou=people,dc=xinhua,dc=io
cn: john doe
givenname: john
sn: doe
uid: john
uidnumber: 5000
gidnumber: 1000
userpassword: m6xdjwa47cnw9gm5kxv1utqumoy=
homedirectory: /home/john
mail: [email protected]
objectclass: top
objectclass: posixaccount
objectclass: inetorgperson
[root@localhost ~]# ldapadd -x -h ldap: -d "cn=admin,dc=xinhua,dc=io" -w -f ./add_user.ldif然後再匯入乙個組:
[root@localhost ~]# vim add_group.ldif
dn: cn=master,ou=group,dc=xinhua,dc=io
objectclass: groupofnames
cn: master
member: uid=john,ou=people,dc=xinhua,dc=io
[root@localhost ~]# ldapadd -x -h ldap: -d "cn=admin,dc=xinhua,dc=io" -w -f ./add_group.ldif最後通過 ldapsearch 命令可以查詢到,該使用者屬性中已經增加了 memberof:
[root@localhost ~]# ldapsearch -x -h ldap: -b dc=xinhua,dc=io -d "cn=admin,dc=xinhua,dc=io" -w memberof最終,我們用上面的方式實現了對 memberof 的支援。dn: uid=john,ou=people,dc=xinhua,dc=io
memberof: cn=master,ou=group,dc=xinhua,dc=io
openldap的安裝備份與遷移
openldap的安裝備份與遷移 1 安裝 安裝方式上可以通過原始碼包和二進位製包,我這裡選擇的是通過centos 的yum 二進位製包安裝。安裝步驟十分簡單。如下 yum y install openldap db4 安裝完成後,cp配置檔案並啟動ldap應用 cp etc openldap db...
Ubuntu下OpenLDAP伺服器的部署步驟
1 安裝zlib wget configure shared make make install 2 安裝openssl 不要解除安裝系統自帶的openssl,否則很多服務都起不來 wget config shared 注意這裡是用.config 會安裝到 usr local ssl make ma...
openldap 映象同步慢的問題解決
今天發現線上openldap映象同步速度奇慢,線上環境總共13w條資料檢視映象同步幾乎沒有同步跡象,但檢查配置和連線都正常,日誌中可以看到映象對端的ip位址訪問,檢視cpu占用時可以看到有乙個slapd程序占用了一核cpu。正在疑惑時發現日誌中有一條索引未命中的資訊 bdb equality can...