今後、認証系のユーザ管理を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 &#8220;cn=Manager,dc=example,dc=jp&#8221; -W -f init.ldif

これでLDAPサーバの構築は完了したので、ユーザ登録などの運用方法を考えます。クライアントPCからGUIで操作したいので色々探してみた結果、Apache LDAP Studioが良さそうだったのでダウンロードして使ってみた。使い勝手は特に癖もなく良好。

  • このエントリーをはてなブックマークに追加