概要
docker で OpenLDAP サーバを構築してみました
過去に CentOS 上に構築しましたが今回は docker を使います
環境
- Ubuntu 18.04
- docker 20.10.7
- osixia/openldap 1.5.0
ldap サーバ起動
LDAP 関連の設定は環境変数で設定できます
外部からアクセスする想定の場合は 389 と 636 ポートをバインドします
docker run \
-e LDAP_ORGANISATION="My Company" \
-e LDAP_DOMAIN="my-company.com" \
-e LDAP_ADMIN_PASSWORD="xxx" \
-p 389:389 -p 636:636 \
--name ldap-server \
-d osixia/openldap:1.5.0
作成した dc があるか検索
LDAP_DOMAIN で指定した dc があるか検索してみましょう
検索するときは -b オプションを使います
docker exec ldap-server \
ldapsearch -x -H ldap://localhost -b dc=my-company,dc=com -D "cn=admin,dc=my-company,dc=com" -w xxx
ユーザを新規で登録する
ldif ファイルを作成して新規でユーザ登録してみます
dn の部分は LDAP_DOMAIN に合わせてください
- vim new-user.ldif
dn: uid=billy,dc=my-company,dc=com
uid: billy
cn: billy
sn: 3
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
loginShell: /bin/bash
homeDirectory: /home/billy
uidNumber: 14583102
gidNumber: 14564100
userPassword: {SSHA}j3lBh1Seqe4rqF1+NuWmjhvtAni1JC5A
mail: billy@my-company.com
gecos: Billy User
一旦コンテナにコピーします
- docker cp new-user.ldif ldap-server:/container/service/slapd/assets/test/new-user.ldif
あとは ldapadd で登録すれば OK です
登録する際は -b は不要です
docker exec ldap-server \
ldapadd -x -H ldap://localhost -D "cn=admin,dc=my-company,dc=com" -w xxx -f /container/service/slapd/assets/test/new-user.ldif
先程の検索コマンドで検索すると指定の dn 配下にユーザが登録されていることが確認できると思います
ユーザを削除する
最後にユーザを削除しましょう
これも ldif ファイルを使います
削除する場合の ldif ファイルは形式が少し違うので注意しましょう
削除対象の dn のエントリを1行記載すれば OK です
- vim delete-user.ldif
uid=billy,dc=my-company,dc=com
これもコンテナにコピーします
- docker cp delete-user.ldif ldap-server:/container/service/slapd/assets/test/delete-user.ldif
あとは ldapdelete コマンドでユーザ削除します
docker exec ldap-server \
ldapdelete -x -H ldap://localhost -D "cn=admin,dc=my-company,dc=com" -w xxx -f /container/service/slapd/assets/test/delete-user.ldif
最後に
データを永続化したりクラスタ化したり TLS 対応もできます
詳細は参考サイトにある公式のページを御覧ください
あと外部からアクセスできるか ldap-utils などを使って確認すると良いと思います
0 件のコメント:
コメントを投稿