= 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=*)' }}} == メモ == * Active DirectoryのSchema * http://msdn2.microsoft.com/en-us/library/ms675085.aspx