見出し画像

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]#

参考文献


この記事が気に入ったらサポートをしてみませんか?