OpenLDAPでメタディレクトリを利用した複数のデータベースの統合管理
やりたいこと
- 2つのLDAPデータベースを統合してクライアントに表示させたい
環境
- CentOS 7
- OpenLDAP 2.4
- データベースA
- ルートDN:ou=dba,dc=hirune,dc=example
- データベースB
- ルートDN:ou=dbb,dc=hirune,dc=example
- メタディレクトリ
- ルートDN:ou=meta,dc=hirune,dc=example
概要
- メタディレクトリにアクセスしたら、データベースAの内容とデータベースBの内容が両方表示されるようにしたい
- メタディレクトリを使うにはcn=configを編集してモジュールを追加でロードする必要がある
- /usr/lib64/openldap/back_ldap.so
- /usr/lib64/openldap/back_meta.so
- objectClassにolcDatabaseConfig・olcMetaConfigを持たせたものをcn=configに追加すればメタディレクトリになる
手順
- 通常通りLDAPサーバをインストールする
- データベースAとデータベースBを作成する
- 以下の内容をcn=configに追加し、モジュールをロードする
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}back_meta
olcModuleLoad: {1}back_ldap
- 以下の内容をcn=configに追加し、メタディレクトリを作成する
dn: olcDatabase=meta,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMetaConfig
olcDatabase: meta
olcSuffix: ou=meta,dc=hirune,dc=example
- 以下の内容をolcDatabase=meta,cn=configに追加し、メタディレクトリに各データベースをバインドさせる
dn: olcMetaSub={0}uri,olcDatabase=meta,cn=config
objectClass: olcMetaTargetConfig
olcMetaSub: {0}uri
olcDbURI: ldap:///ou=dba,ou=meta,dc=hirune,dc=example
olcDbRewrite: {0}suffixmassage "ou=dba,ou=meta,dc=hirune,dc=example" "ou=dba,dc=hirune,dc=example"
dn: olcMetaSub={1}uri,olcDatabase=meta,cn=config
objectClass: olcMetaTargetConfig
olcMetaSub: {1}uri
olcDbURI: ldap:///ou=dbb,ou=meta,dc=hirune,dc=example
olcDbRewrite: {0}suffixmassage "ou=dbb,ou=meta,dc=hirune,dc=example" "ou=dbb,dc=hirune,dc=example"
- olcDbURIをldap://externalserver.hirune.example/~のように書き換えることで外部のLDAPサーバも参照可能
補足
0 件のコメント:
コメントを投稿