* 目次 [#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/

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS