Edit
LDAPとは

LDAP(Lightweight Directory Access Protocol)の略であり、パスワードなどの認証に関するリソースを一元管理することを目的としたサービスの為に開発されたプロトコルである。Directory Accessとして有名なものはMicrosoftのActiveDirectoryなどがあたる。Open系のものとしては、OpenLDAPが有名である。

Edit
LDAPを利用して行えること

一般的には、apacheなどのWEB認証をLDAPに任せることで、サーバーのファイルを操作せずにWEBアカウントを管理できたり、SubversionやWebDAVなど違うサービスに対して、統一したアカウント管理を行うことができる。しかしながら当然そのアプリケーションがLDAPに対応している必要がある。

Edit
Install

それでは、早速apache, WebDAV, Subversion, に対応させることを前提にインストールを行う。またデータ保存にはBerkrey DBではなくMySQLとしてみる。またOpenLDAPをインストールする前に以下のソフトウェアを先にインストールしておく。

  1. 「OpenSSL」暗号ライブラリを利用する為に必要となる。
    # 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ファイルが違うところにインストールされるので、強制的に移動している。

Edit
インストールに関する参照リンク

Edit
設定ファイルの修正

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

Edit
ユーザとグループの作成

# 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

Edit
Installに関係するリンク

  1. ldaps:// (LDAP over SSL)用のiPlanet LDAP ライブラリ
  2. MySQL DB エンジン
  3. PHP

mod_auth_ldapダウンロードページ