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 ファイルを用意した。
# Adding organizational units for users and groups dn: ou=People,dc=mydomain,dc=com objectClass: organizationalUnit ou: People dn: ou=Groups,dc=mydomain,dc=com objectClass: organizationalUnit ou: Groups # Adding user1 dn: uid=user1,ou=People,dc=mydomain,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: top cn: User One sn: One uid: user1 uidNumber: 1001 gidNumber: 1001 homeDirectory: /home/user1 loginShell: /bin/bash userPassword: user1 gecos: User One # Adding user2 dn: uid=user2,ou=People,dc=mydomain,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: top cn: User Two sn: Two uid: user2 uidNumber: 1002 gidNumber: 1002 homeDirectory: /home/user2 loginShell: /bin/bash userPassword: user2 gecos: User Two # Adding group1 with user1 and user2 dn: cn=group1,ou=Groups,dc=mydomain,dc=com objectClass: posixGroup cn: group1 gidNumber: 1001 memberUid: user1 memberUid: user2 # Adding group2 (empty group for now) dn: cn=group2,ou=Groups,dc=mydomain,dc=com objectClass: posixGroup cn: group2 gidNumber: 1002
そしたら ldapadd で追加する。
ldapadd -x -D "cn=admin,dc=mydomain,dc=com" -w admin -f all.ldif -H ldap://localhost
そして ldapsearch で結果が帰ってくれば OK.
ldapsearch -x -H ldap://localhost -D "cn=admin,dc=mydomain,dc=com" -w admin -b "dc=mydomain,dc=com" "(uid=user1)"