今後、認証系のユーザ管理をLDAPで行うため、LDAPサーバを構築してみた。通常LDAPへの登録削除はIDIFファイルを読みこませることで実行するようだが、さすがに面倒なのでクライアントPCからGUIで出来る方法も考えてみた。
今回構築に使用した環境は、
OS:Fedora15
OpenLDAP:openldap-2.4.24-5
OpenLDAPのVer2.4は従来の設定ファイル slapd.confが無いらしく、slapd.d配下の各ファイルに分散されて設定されているらしい。ただこれら各ファイルを変更するのは大変なので、slapd.confファイルを作り、これをslapd.d方式に変換することにした。
cd /etc/openldap/
cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf
準備したslapd.confを下記の様に設定を修正及び追加する。
suffix "dc=example,dc=jp"
rootdn "cn=Manager,dc=example,dc=jp"
rootpw { SSHA} TyQI9cuUIo+hgRiqUgfdFKDfafkaJPK
access to *
by self read
by dn.exact= "cn=Admin,dc=example,dc=jp" read
by * none
上記、rootpwに設定するパスワードはslappasswdコマンドで作成する。
slappasswd -s <パスワード>
現在のLDAPの設定とDBを削除する。念のため保存した上で削除することにする。
cp -pr slapd.d/ slapd.d.org
cp -pr /var/lib/ldap /var/lib/ldap.org
rm -rf slapd.d/* /var/lib/ldap/*
次に、作成したslapd.confをslapd.d形式に変換する。
slaptest -f slapd.conf -F /etc/openldap/slapd.d/
chown -R ldap:ldap slapd.d /var/lib/ldap
設定も完了したため、LDAPを起動させるが、DB_CONFIGというファイルが無いとエラーになるので、用意した上で起動する。
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
/etc/init.d/slapd start
LDAPサーバの準備が出来たので、初期のディレクトリデータを入力する。その為にIDIFファイルを作成する。設定内容は下記の通り。(以下IDIFファイル名はinit.idifとする)
dn: dc = example,dc= jp
objectClass: dcObject
objectClass: organization
o: myorganization
dc: clarus
dn: cn = Manager,dc= example,dc= jp
objectClass: organizationalRole
cn: Manager
dn: ou = People,dc= example,dc= jp
objectClass: organizationalUnit
ou: People
dn: ou = Group,dc= example,dc= jp
objectClass: organizationalUnit
ou: Group
dn: cn = Admin,dc= example,dc= jp
objectClass: person
cn: Admin
sn: Admin
userPassword: { SSHA} w/KgFfL4pWGvTwqXSFAFAFfdiKAFAF
作成したIDIFファイルをldapaddコマンドでインポートする。
ldapadd -x -D “cn= Manager,dc= example,dc= jp” -W -f init.ldif
これでLDAPサーバの構築は完了したので、ユーザ登録などの運用方法を考えます。クライアントPCからGUIで操作したいので色々探してみた結果、Apache LDAP Studio が良さそうだったのでダウンロードして使ってみた。使い勝手は特に癖もなく良好。