Appendix OpenLDAP referral
設定概要
referral機能を使うことでドメインの分散管理が可能になる。
上位ドメイン example.co.jp
rocky9-ldap25(192.168.56.25)で管理されている下位ドメイン sub1.example.co.jp
rocky9-ldap26(192.168.56.26)で管理されている
設定のポイント
上位ドメインを管理するLDAPサーバー
下位ドメインを定義しreferral設定で下位ドメインを管理しているLDAPサーバーを定義する。下位ドメインを管理するLDAPサーバー
グローバル設定(cn=config)に上位ドメインを管理しているLDAPサーバーを定義する。
上位ドメインの設定:rocky9-ldap25
下位ドメインを定義する
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]# ldapsearch -LLL -x -b "dc=example,dc=co,dc=jp" dc=example
dn: dc=example,dc=co,dc=jp
objectClass: top
objectClass: dcObject
objectClass: organization
o: example.co.jp
dc: example
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]# cat setup-subdomaintree.ldif
dn: dc=sub1,dc=example,dc=co,dc=jp
objectClass: referral
objectClass: extensibleObject
dc: sub1
ref: ldap://192.168.56.26/dc=sub1,dc=example,dc=co,dc=jp
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]# ldapadd -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -f setup-subdomaintree.ldif
Enter LDAP Password: ********
adding new entry "dc=sub1,dc=example,dc=co,dc=jp"
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]# ldapsearch -LLL -x -b "dc=example,dc=co,dc=jp" dc=example
dn: dc=example,dc=co,dc=jp
objectClass: top
objectClass: dcObject
objectClass: organization
o: example.co.jp
dc: example
# refldap://192.168.56.26/dc=sub1,dc=example,dc=co,dc=jp??sub
[root@rocky9-ldap25 openldap]#
下位ドメインの設定:rocky9-ldap26
上位ドメインを定義する
[root@rocky9-ldap26 openldap]#
[root@rocky9-ldap26 openldap]# vi setup-referral.ldif
dn: cn=config
changetype: modify
add: olcReferral
olcReferral: ldap://192.168.56.25
[root@rocky9-ldap26 openldap]#
[root@rocky9-ldap26 openldap]#
[root@rocky9-ldap26 openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f setup-referral.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
[root@rocky9-ldap26 openldap]#
[root@rocky9-ldap26 openldap]#
[root@rocky9-ldap26 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn=config" olcReferral
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config
olcReferral: ldap://192.168.56.25
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}inetorgperson,cn=schema,cn=config
dn: cn={3}nis,cn=schema,cn=config
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}monitor,cn=config
dn: olcDatabase={2}mdb,cn=config
[root@rocky9-ldap26 openldap]#
確認する
上位ドメインから下位ドメインのユーザーを検索する
下位ドメインのsub1user00というユーザーを上位ドメインを管理しているLDAPサーバー(rocky9-ldap25)から検索する。
ldapsearchコマンドで-Cオプションがないとreferralの情報しか返ってこない。
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=sub1,dc=example,dc=co,dc=jp" cn=sub1user00
Enter LDAP Password: ********
Referral (10)
Matched DN: dc=sub1,dc=example,dc=co,dc=jp
Referral: ldap://192.168.56.26/dc=sub1,dc=example,dc=co,dc=jp??sub
[root@rocky9-ldap25 openldap]#
ldapsearchコマンドで-Cオプションを付けることでユーザーの詳細が確認できる。
[root@rocky9-ldap25 openldap]#
[root@rocky9-ldap25 openldap]# ldapsearch -LLL -x -W -C -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=sub1,dc=example,dc=co,dc=jp" cn=sub1user00
Enter LDAP Password: ********
dn: uid=sub1user00,ou=Users,dc=sub1,dc=example,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: sub1user00
sn: example
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/sub1user00
shadowMax: 0
shadowWarning: 0
uid: sub1user00
dn: cn=sub1user00,ou=Groups,dc=sub1,dc=example,dc=co,dc=jp
objectClass: posixGroup
cn: sub1user00
gidNumber: 1000
memberUid: sub1user00
[root@rocky9-ldap25 openldap]#
下位ドメインから上位ドメインをユーザーを検索する
上位ドメインのuser00というユーザーを下位ドメインを管理しているLDAPサーバー(rocky9-ldap26)から検索する。
ldapsearchコマンドで-Cオプションがないとreferralの情報しか返ってこない。
[root@rocky9-ldap26 openldap]#
[root@rocky9-ldap26 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=sub1,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" cn=user00
Enter LDAP Password:: ********
Referral (10)
Referral: ldap://192.168.56.25/dc=example,dc=co,dc=jp??sub
[root@rocky9-ldap26 openldap]#
ldapsearchコマンドで-Cオプションを付けることでユーザーの詳細が確認できる。
[root@rocky9-ldap26 openldap]#
[root@rocky9-ldap26 openldap]# ldapsearch -LLL -x -W -C -D "cn=Manager,dc=sub1,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" cn=user00
Enter LDAP Password: ********
dn: uid=user00,ou=Users,dc=example,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: user00
sn: example
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/user00
shadowMax: 0
shadowWarning: 0
uid: user00
dn: cn=user00,ou=Groups,dc=example,dc=co,dc=jp
objectClass: posixGroup
cn: user00
gidNumber: 1000
memberUid: user00
# refldap://192.168.56.26/dc=sub1,dc=example,dc=co,dc=jp??sub
[root@rocky9-ldap26 openldap]#
参考文献
この記事が気に入ったらサポートをしてみませんか?