LDAP(Lightweight Directory Access Protocol)の略であり、パスワードなどの認証に関するリソースを一元管理することを目的としたサービスの為に開発されたプロトコルである。Directory Accessとして有名なものはMicrosoftのActiveDirectoryなどがあたる。Open系のものとしては、OpenLDAPが有名である。
一般的には、apacheなどのWEB認証をLDAPに任せることで、サーバーのファイルを操作せずにWEBアカウントを管理できたり、SubversionやWebDAVなど違うサービスに対して、統一したアカウント管理を行うことができる。しかしながら当然そのアプリケーションがLDAPに対応している必要がある。
それでは、早速apache, WebDAV, Subversion, に対応させることを前提にインストールを行う。またデータ保存にはBerkrey DBではなくMySQLとしてみる。またOpenLDAPをインストールする前に以下のソフトウェアを先にインストールしておく。
# wget http://www.openldap.org/software/download/OpenLDAP/openldap-stable.tgz # tar zxvf openldap-stable.tgz # cd openldap-2.4.16 <- 現在のStableVersionに合わせる事 # CPPFLAGS=-I/usr/local/BerkeleyDB/include LDFLAGS=-L/usr/local/BerkeleyDB/lib ./configure --exec-prefix=/usr/local/openldap # make depend <- configureの完了後にこのコマンドが表示される。 # make # make install # cd /usr/local/openldap # mv ../etc/openldap etc # mkdir var # mv ../var/openldap-data var # mkdir run
OpenLDAPのconfigureでは、何故かBerkeleyDBのパス指定ができない。そのため、この例では直接環境変数に設定している。また、インストールフォルダが、/usr/local/etc/openldapというわかりづらい場所なので、/usr/local/openldapに変更している。それでも、confファイルやvarファイルが違うところにインストールされるので、強制的に移動している。
openldapの設定ファイルは以下のように修正する。注意点はインストールの時に強制的に移動したファイルを正確に記述すること。
# emacs /usr/local/openldap/slapd.conf include /usr/local/openldap/etc/schema/core.schema pidfile /usr/local/openldap/var/run/slapd.pid argsfile /usr/local/openldap/var/run/slapd.args database bdb suffix "dc=gamvaro,dc=com" rootdn "cn=root,dc=gamvaro,dc=com" rootpw sec-passwd directory /usr/local/openldap/var/openldap-data index objectClass eq
# cd /usr/local/openldap # groupadd ldap # useradd -g ldap -d /dev/null -s /bin/false ldap # chown ldap:ldap etc/slapd.conf # chmod 600 etc/slapd.conf # chown -R ldap:ldap var # chmod -R 700 var