ActiveDirectoryでユーザ認証するアプリを作りたくて、開発環境として手元にOpenLDAPをインストールしてみたらちょっと大変だったので作業メモ。
環境と関連リンク
MacOSX 10.10.1 (Yosemite)
https://github.com/IntersectAustralia/acdata/wiki/Setting-up-OpenLDAP
https://github.com/Homebrew/homebrew-dupes/blob/master/openldap.rb
インストール
% 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を作る
slapd
は libexec
にいるのが普通っぽいので、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
最終的にこういう修正になる。
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)
同梱の *.ldif
を slapadd
してやると作成される。
% 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
参考になりました
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
やったね!
おまけ
一気に実行するスクリプトを書いた。この先ユーザ作ったりするので、進捗があったら追加していくよてい。