Edited at

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