2022年4月25日月曜日

docker で OpenLDAP サーバ構築

docker で OpenLDAP サーバ構築

概要

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 件のコメント:

コメントを投稿