WSL 上で素早く LDAP のテストをする必要があったのでメモ。
osixia/openldap のコンテナを使う。
まずは ldap-utils をインストールする。
sudo apt install ldap-utils
それから Docker container を起動
docker run --name my-openldap-container -p 389:389 -p 636:636 --env LDAP_ORGANISATION="My Org" --env LDAP_DOMAIN="mydomain.com" --env LDAP_ADMIN_PASSWORD="admin" -d osixia/openldap:latest
起動したら ldapsearch で動作確認
ldapsearch -x -H ldap://localhost -b "dc=mydomain,dc=com" -D "cn=admin,dc=mydomain,dc=com" -w admin
結果が帰ってくればOK.
試しにエントリーを追加。
こんな all.ldif ファイルを用意した。
version: 1 dn: dc=ldap,dc=mydomain,dc=com objectClass: top objectClass: domain dc: ldap dn: ou=groups,dc=ldap,dc=mydomain,dc=com objectClass: top objectClass: organizationalUnit ou: groups dn: ou=users,dc=ldap,dc=mydomain,dc=com objectClass: top objectClass: organizationalUnit ou: users dn: cn=grp1,ou=groups,dc=ldap,dc=mydomain,dc=com objectClass: posixGroup objectClass: top cn: grp1 gidNumber: 100 memberUid: user1 memberUid: user2 dn: cn=grp2,ou=groups,dc=ldap,dc=mydomain,dc=com objectClass: posixGroup objectClass: top cn: grp2 gidNumber: 101 memberUid: user2 dn: uid=user1,ou=users,dc=ldap,dc=mydomain,dc=com objectClass: shadowAccount objectClass: posixAccount objectClass: account objectClass: top cn: user1 gidNumber: 100 homeDirectory: /home/user1 uid: user1 uidNumber: 1001 gecos: user1 loginShell: /bin/bash shadowLastChange: 0 shadowMax: 0 shadowWarning: 0 userPassword: user1 dn: uid=user2,ou=users,dc=ldap,dc=mydomain,dc=com objectClass: shadowAccount objectClass: posixAccount objectClass: account objectClass: top cn: user2 gidNumber: 100 homeDirectory: /home/user2 uid: user2 uidNumber: 1002 gecos: user2 loginShell: /bin/bash shadowLastChange: 0 shadowMax: 0 shadowWarning: 0 userPassword: user2
そしたら ldapadd で追加する。
ldapadd -x -D "cn=admin,dc=mydomain,dc=com" -w admin -f all.ldif -H ldap://localhost
そして ldapsearch で結果が帰ってくれば OK.