概要
前回 OpenLDAP + TLS の設定を compose.yaml で定義しました
今回は更に phpLdapAdmin を追加して UI からも確認できるようにします
環境
- Ubuntu 24.04
- docker 28.3.3
- openldap 2.6.10
- phpLDAPAdmin 0.9.0
compose.yaml
services:
openldap:
image: bitnami/openldap:latest
container_name: openldap
ports:
- "636:636"
environment:
- ALLOW_EMPTY_PASSWORD=yes
- LDAP_ENABLE_TLS=yes
- LDAP_TLS_CERT_FILE=/opt/bitnami/openldap/certs/fullchain.pem
- LDAP_TLS_KEY_FILE=/opt/bitnami/openldap/certs/privkey.pem
- LDAP_TLS_CA_FILE=/opt/bitnami/openldap/certs/fullchain.pem
- LDAP_PORT_NUMBER=389
- LDAP_LDAPS_PORT_NUMBER=636
volumes:
- /etc/letsencrypt/live/your-domain.com/:/opt/bitnami/openldap/certs
- ./ldif/base.ldif:/ldifs/base.ldif
- ./ldif/hawk.ldif:/ldifs/hawk.ldif
restart: unless-stopped
phpldapadmin:
image: osixia/phpldapadmin:0.9.0
container_name: ldap-admin
ports:
- "6443:443"
environment:
- PHPLDAPADMIN_LDAP_HOSTS=openldap
- PHPLDAPADMIN_HTTPS=true
- PHPLDAPADMIN_HTTPS_CRT_FILENAME=fullchain.pem
- PHPLDAPADMIN_HTTPS_KEY_FILENAME=privkey.pem
volumes:
- ./certs:/container/service/phpldapadmin/assets/apache2/certs/
restart: unless-stopped
ポイント
- LDAP_LDAPS_PORT_NUMBER と LDAP_PORT_NUMBER を使ってポートをデフォルトのポートにしなければいけない
- phpldapadmin がデフォルトポートの LDAP を参照するためです
- PHPLDAPADMIN_LDAP_HOSTS は ldaps じゃないポートを参照する
- phpLDAPAdmin からは ldaps ではない 389 ポートを参照すると簡単です
- PHPLDAPADMIN_HTTPS は phpLDAPAdmin の UI 用の https 設定
- 接続する LDAP の TLS の設定ではないので注意
- UI を https 化するなら設定必須
- openldap と phpldapadmin が使用する証明書が同じ場合には権限が変わるので注意しましょう
- phpldapadmin が証明書を 600 の権限にコンテナ内で偏光子してしまう
- そうすると openldap が証明書を読み込めなくなってしまうため TLS の設定がおかしくなり ldap にアクセスできなくなってしまう
- なので openldap と phpldapadmin の使用する証明書が同じであってもホスト側では別のパスに保存しそれぞれでマウントして使うようにしましょう
最後に
UI へのログインは過去に紹介した通り ldapsearch で使用する dc 情報を使ってログインします
phpLDAPAdmin は 0.9.0 で更新が止まっているので代替できるツールが他にあるといいかなと思っています
0 件のコメント:
コメントを投稿