openldap

HomebrewでOpenLDAPをインストールする

More than 3 years have passed since last update.

ActiveDirectoryでユーザ認証するアプリを作りたくて、開発環境として手元にOpenLDAPをインストールしてみたらちょっと大変だったので作業メモ。

環境と関連リンク

インストール

% brew info openldap
openldap: stable 2.4.39
http://www.openldap.org/software/
/usr/local/Cellar/openldap/2.4.39 (131 files, 7.4M) *
  Built from source with: --with-berkeley-db
From: https://github.com/homebrew/homebrew-dupes/blob/master/openldap.rb
==> Dependencies
Required: openssl ✔
Optional: berkeley-db ✔
==> Options
--with-berkeley-db
        Build with berkeley-db support
--with-memberof
        Include memberof overlay
--with-sssvlv
        Enable server side sorting and virtual list view
% brew install homebrew/dupes/openldap --with-berkeley-db

symlinkを作る

slapdlibexec にいるのが普通っぽいので、Homebrewの流儀に従ってディレクトリとsymlinkを作っておく。

% mkdir /usr/local/libexec 
% ln -s /usr/local/Cellar/openldap/2.4.39/libexec/slapd /usr/local/libexec

設定

OpenLDAPがインストールされるのはここ。

/usr/local/etc/openldap

slapd.conf

rootpw

管理者パスワードを slappasswd で作成し、slapd.conf に書いておく。

% slappasswd
New password:
Re-enter new password:
{SSHA}+*******************************

sufffix , rootdn

手元で動かす用の設定をしておく。

  • suffix
    • dc=localhost
  • rootdn
    • cn=admin,dc=localhost

slapd.conf

最終的にこういう修正になる。

slap.conf
suffix      "dc=localhost"
rootdn      "cn=admin,dc=localhost"
rootpw      {SSHA}+*******************************

DB_CONFIG

slapd.conf には directory /usr/local/var/openldap-data の指定がある。データディレクトリはここになる。

DB_CONFIG.example/usr/local/etc/openldap にあるものと同一なのでrenameして使う。

% mv /usr/local/var/openldap-data/DB_CONFIG.example /usr/local/var/openldap-data/DB_CONFIG         

id2entry.bdb

openldap-data/id2entry.bdb が存在しないと slapd がスタートしない。

% slaptest
54701b7c bdb_db_open: database "dc=localhost": db_open(/usr/local/var/openldap-data/id2entry.bdb) failed: No such file or directory (2).
54701b7c backend_startup_one (type=bdb, suffix="dc=localhost"): bi_db_open failed! (2)
slap_startup failed (test would succeed using the -u switch)

同梱の *.ldifslapadd してやると作成される。

% slapadd -l /usr/local/etc/openldap/schema/core.ldif
  • before
% ls -1
DB_CONFIG                           
__db.001
__db.002
__db.003
alock
  • after
% ls -1 
DB_CONFIG
__db.001
__db.002
__db.003
alock
dn2id.bdb
id2entry.bdb
log.0000000001

参考になりました :sushi:
http://hryksbt.b.sourceforge.jp/archives/421

起動

slaptest でOKが出たら起動する。

% slaptest
54701c89 bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
config file testing succeeded

monitoring disabled; はとりあえず気にしなくてよい。

% sudo /usr/local/libexec/slapd

やったね!

おまけ

一気に実行するスクリプトを書いた。この先ユーザ作ったりするので、進捗があったら追加していくよてい。

https://github.com/kwappa/ldap_toolkit