* 目次 [#l1cfab9e] #contents * LADPサーバとは [#t813739b] LDAP (Lightweight Directory Access Protocol)は、情報サービスやディレクトリサービスを提供するためのプロトコルです。LDAPは、ユーザーやグループ、その他の情報を格納し、検索し、管理するための効率的な手段を提供します。一般的に、LDAPはユーザーアカウント情報、グループメンバーシップ、そして多数のアプリケーションに対するアクセス権限などを管理するために使用されます。 シングルサインオンができる。 ** LDAPサーバのdockerコンテナのメリット [#bb107e76] *** 環境の統一 [#ae575bc5] Dockerを使用すると、開発、テスト、本番環境など、どの環境でも同じ設定でLDAPサーバを立ち上げることができます。これにより、環境間の設定の違いによる問題を避けることができます。 *** スケーラビリティ [#ofbb3912] Dockerコンテナは軽量で、必要に応じて迅速にスケーリングすることが可能です。したがって、需要が増えたときに迅速にLDAPサーバをスケールアウトすることが可能です。 *** 移植性 [#q8fb9360] DockerコンテナはどのホストOS上でも動作します。これにより、LDAPサーバを異なるOSやクラウドプロバイダ間で移動することが容易になります。 *** バージョン管理とロールバック [#fd859ab9] Dockerイメージはバージョン管理が可能で、問題が発生した場合に前のバージョンに戻すことができます。 *** 簡易的な導入と管理 [#gf8120fa] Dockerを使用すると、LDAPサーバのインストールや設定が容易になり、また管理も簡単になります。Docker Composeファイルを使用すると、サービスの設定をコードとして管理することができ、この設定を再利用することが可能です。 * docker-compose.ymlの例 [#eb690b2e] mailcowと同じネットワーク上になるような想定で、docker-compose.ymlを作成してみた version: '3.8' services: ldap_server: image: osixia/openldap:1.5.0 container_name: openldap environment: LDAP_ORGANISATION: "Example Organization" LDAP_DOMAIN: "example.com" LDAP_ADMIN_PASSWORD: "admin_password" LDAP_BASE_DN: "dc=example,dc=com" LDAP_TLS: "false" volumes: - ldap_data:/var/lib/ldap - ldap_config:/etc/ldap/slapd.d ports: - "389:389" - "636:636" networks: mailcow-network: aliases: - ldap_server ldap_admin: image: osixia/phpldapadmin:0.9.0 container_name: phpldapadmin environment: PHPLDAPADMIN_LDAP_HOSTS: "ldap_server" # 403エラーを防ぐ用の設定だが、外部のサーバからは行わないようにする PHPLDAPADMIN_HTTPS: "false" ports: - "8095:80" networks: mailcow-network: aliases: - ldap_admin volumes: ldap_data: ldap_config: networks: mailcow-network: もし、 PHPLDAPADMIN_HTTPS: "false" の指定が無いと、docker-compose up -dしてから、localhost:8095 にアクセスしたら403エラーになる 上記の場合だと、ログインとパスワードは以下のようになる。admin/admin_password * ローカル環境専用の自己署名証明書でSSHする場合 [#g48d7030] ** 1年間有効の自己署名証明書を作成 [#r99fb860] mkdir -p certs && openssl req -x509 -newkey rsa:4096 -keyout certs/key.pem -out certs/cert.pem -days 365 -nodes -subj '/CN=localhost' 生成したファイルをブラウザに登録すると、認証することになるので、テスト時には便利だが、取り扱い厳重注意のものです。 *** docker-compose.yml [#g385907d] version: '3.8' services: ldap_server: image: osixia/openldap:1.5.0 container_name: openldap environment: LDAP_ORGANISATION: "Example Organization" LDAP_DOMAIN: "example.com" LDAP_ADMIN_PASSWORD: "admin_password" LDAP_BASE_DN: "dc=example,dc=com" LDAP_TLS: "false" volumes: - ldap_data:/var/lib/ldap - ldap_config:/etc/ldap/slapd.d ports: - "389:389" - "636:636" networks: mailcow-network: aliases: - ldap_server ldap_admin: image: osixia/phpldapadmin:0.9.0 container_name: phpldapadmin environment: PHPLDAPADMIN_LDAP_HOSTS: ldap_server PHPLDAPADMIN_HTTPS: "true" volumes: - ./certs:/container/service/phpldapadmin/assets/certs ports: - "8095:443" networks: mailcow-network: aliases: - ldap_admin * 参考記事 [#x02e641b] ** 【Docker】phpLDAPadminで「Forbidden You don’t have permission to access / on this server.」 [#efe4cafe] https://non-programmer-lab.com/phpldapadmin-forbidden-you-dont-have-permission-to-access-on-this-server/