wiki:linux/OpenLDAP

OpenLDAP

インストール

# apt-get install slapd ldap-utils

設定

#dpkg-reconfigure slapd

Omit OpenLDAP server configuration? ... No
DNS domain name: ... dom1.dom2
Name of your organization: ... Whatever & Co
Admin Password: XXXXX
Confirm Password: XXXXX
OK
BDB
Do you want your database to be removed when slapd is purged? ... No
Move old database? ... Yes
Allow LDAPv2 Protocol? ... No

Adminの設定

上記のdpkg-reconfigureで設定したadminはなぜか使えない。 /etc/ldap/slapd.confに次のように記述し、adminのアカウントを設定

rootdn "cn=Manager,dc=nodomain"
rootpw          {CRYPT}$2naUPy3R0iOg

rootpwの値は次のコマンドで生成できる。

$ slappasswd -h {CRYPT} -c '$2a$05$%.24s'
New password: xxxx
Re-enter new password: xxxx
{CRYPT}$2*****

生成された文字列をslapd.confに設定する。

ルートオブジェクトの生成 =

slapd.confにルートオブジェクトを設定する。

suffix		"o=myorg"

次に、オブジェクトを作成する。上記の例の場合root.ldifに次のように記述

dn: o=myorg
objectClass: organization
o: myorg

ldapaddコマンドでオブジェクトを追加する。

$ ldapadd -h localhost -x -D 'cn=Manager,o=myorg' -W -f root.ldif

検索

$ ldapsearch -L -x -b dc=dom1,dc=dom2

Apacheと連携

Apache2.0とApache2.2では記述方法が異なる。Apache2.2の例を示す。

DAV svn
SVNPath /home/svn/test
AuthType Basic
AuthBasicProvider ldap       #LDAPを利用する場合記述
AuthName "SVN Authentication"

AuthLDAPURL "ldap://localhost/dc=nodomain?uid?sub?(objectClass=*)"
AuthzLDAPAuthoritative  off    # require valid-userを指定する際に必要
Require valid-user          

アカウント認証によるSearch

$ ldapsearch -x -LLL -h 12.123.12.11 -D 'cn=Administrator,cn=users,dc=example,dc=com' -w password -b 'dc=example,dc=com' -s sub '(objectClass=*)'

メモ