LDAPサーバをdockerで立ち上げる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 目次 [#l1cfab9e]
#contents
* LADPサーバとは [#t813739b]
** 簡単な説明 [#i9c1d80a]
簡単にいうと、社内用のシステムのアカウントを一元管理でき...
** 丁寧な説明 [#jbf8312a]
LDAP (Lightweight Directory Access Protocol)は、情報サー...
。
** LDAPサーバのdockerコンテナのメリット [#bb107e76]
*** 環境の統一 [#ae575bc5]
Dockerを使用すると、開発、テスト、本番環境など、どの環境...
*** スケーラビリティ [#ofbb3912]
Dockerコンテナは軽量で、必要に応じて迅速にスケーリングす...
*** 移植性 [#q8fb9360]
DockerコンテナはどのホストOS上でも動作します。これにより...
*** バージョン管理とロールバック [#fd859ab9]
Dockerイメージはバージョン管理が可能で、問題が発生した場...
*** 簡易的な導入と管理 [#gf8120fa]
Dockerを使用すると、LDAPサーバのインストールや設定が容易...
* docker-compose.ymlの例 [#eb690b2e]
mailcowと同じネットワーク上になるような想定で、docker-com...
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:
local-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:
local-network:
aliases:
- ldap_admin
volumes:
ldap_data:
ldap_config:
networks:
local-network:
もし、
PHPLDAPADMIN_HTTPS: "false"
の指定が無いと、docker-compose up -dしてから、localhost:8...
上記の場合だと、ログインとパスワードは以下のようになる。a...
* ローカル環境専用の自己署名証明書でSSHする場合 [#g48d7030]
** 1年間有効の自己署名証明書を作成 [#r99fb860]
mkdir -p certs && openssl req -x509 -newkey rsa:4096 -ke...
生成したファイルをブラウザに登録すると、認証することにな...
*** 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:
local-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/c...
ports:
- "8095:443"
networks:
local-network:
aliases:
- ldap_admin
*** 自己署名証明書をChromeにインストールする手順 [#i50df4...
- Chromeの設定に移動します(右上の三つの点をクリックして...
- 下にスクロールして「詳細設定」をクリックします。
- 「プライバシーとセキュリティ」セクションに移動し、「セ...
- 「詳細設定」をクリックして、「証明書の管理」を選択しま...
- 「信頼済みルート認証局」タブを開き、「インポート」をク...
- 証明書インポートウィザードが表示されたら、「次へ」をク...
- 「ファイルを参照」をクリックし、先ほど作成した自己署名...
- 「次へ」をクリックし、明書ストアとして「信頼されたルー...
- 「完了」をクリックして証明書のインポートを完了します。
- インポートが成功したら、ウィザードを閉じてChromeを再起...
* 参考記事 [#x02e641b]
** 【Docker】phpLDAPadminで「Forbidden You don’t have per...
https://non-programmer-lab.com/phpldapadmin-forbidden-you...
** Spring Security(Spring Boot) + OpenLDAPでLDAP認証して...
https://qiita.com/kazuki43zoo/items/6bef663e2a885d8a0f16
** OpenSSHの公開鍵をLDAPで管理 [#p5c1287f]
https://gihyo.jp/admin/serial/01/ldap/0006
* ユーザの追加 [#md3c597b]
** 例:billyというユーザを追加する例 [#db50ef75]
vi new-user.ldif
*** new-user.ldifファイルの内容 [#n4fa918c]
パスワードは、平文で入れたとしても登録後はそのままでは見...
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
userPassword: xxx
mail: billy@my-company.com
gecos: Billy User
** dockerのコンテナに登録用のファイルをコピーして登録 [#d...
ldapのコンテナの名前がopenldapだとすると、以下のようにな...
- コンテナにファイルをコピー
docker cp new-user.ldif openldap:/container/service/slap...
- コンテナに接続
docker exec -it openldap bash
- 追加
ldapadd -x -H ldap://localhost -D "cn=admin,dc=my-compan...
- 確認
ldapsearch -x -H ldap://localhost -b dc=my-company,dc=co...
以下のコマンドでも確認
slapcat
** ユーザの削除 [#af158510]
*** 削除ファイルの例 [#n8454da6]
- ファイル名
delete-user.ldif
- ファイルの内容
uid=billy,dc=my-company,dc=com
- コンテナにファイルをコピー
コンテナ名を確認:以下の例は、ldapサーバのコンテナ名が、o...
docker cp delete-user.ldif openldap:/container/service/s...
- コンテナに接続
docker exec -it openldap bash
- 削除コマンド実行
ldapdelete -x -H ldap://localhost -D "cn=admin,dc=my-com...
- 確認
上記の追加コマンドの場合と同じ
** 参考にしたサイト [#w25e67ce]
- hawksnowlog
https://hawksnowlog.blogspot.com/2022/04/run-openldap-ser...
終了行:
* 目次 [#l1cfab9e]
#contents
* LADPサーバとは [#t813739b]
** 簡単な説明 [#i9c1d80a]
簡単にいうと、社内用のシステムのアカウントを一元管理でき...
** 丁寧な説明 [#jbf8312a]
LDAP (Lightweight Directory Access Protocol)は、情報サー...
。
** LDAPサーバのdockerコンテナのメリット [#bb107e76]
*** 環境の統一 [#ae575bc5]
Dockerを使用すると、開発、テスト、本番環境など、どの環境...
*** スケーラビリティ [#ofbb3912]
Dockerコンテナは軽量で、必要に応じて迅速にスケーリングす...
*** 移植性 [#q8fb9360]
DockerコンテナはどのホストOS上でも動作します。これにより...
*** バージョン管理とロールバック [#fd859ab9]
Dockerイメージはバージョン管理が可能で、問題が発生した場...
*** 簡易的な導入と管理 [#gf8120fa]
Dockerを使用すると、LDAPサーバのインストールや設定が容易...
* docker-compose.ymlの例 [#eb690b2e]
mailcowと同じネットワーク上になるような想定で、docker-com...
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:
local-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:
local-network:
aliases:
- ldap_admin
volumes:
ldap_data:
ldap_config:
networks:
local-network:
もし、
PHPLDAPADMIN_HTTPS: "false"
の指定が無いと、docker-compose up -dしてから、localhost:8...
上記の場合だと、ログインとパスワードは以下のようになる。a...
* ローカル環境専用の自己署名証明書でSSHする場合 [#g48d7030]
** 1年間有効の自己署名証明書を作成 [#r99fb860]
mkdir -p certs && openssl req -x509 -newkey rsa:4096 -ke...
生成したファイルをブラウザに登録すると、認証することにな...
*** 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:
local-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/c...
ports:
- "8095:443"
networks:
local-network:
aliases:
- ldap_admin
*** 自己署名証明書をChromeにインストールする手順 [#i50df4...
- Chromeの設定に移動します(右上の三つの点をクリックして...
- 下にスクロールして「詳細設定」をクリックします。
- 「プライバシーとセキュリティ」セクションに移動し、「セ...
- 「詳細設定」をクリックして、「証明書の管理」を選択しま...
- 「信頼済みルート認証局」タブを開き、「インポート」をク...
- 証明書インポートウィザードが表示されたら、「次へ」をク...
- 「ファイルを参照」をクリックし、先ほど作成した自己署名...
- 「次へ」をクリックし、明書ストアとして「信頼されたルー...
- 「完了」をクリックして証明書のインポートを完了します。
- インポートが成功したら、ウィザードを閉じてChromeを再起...
* 参考記事 [#x02e641b]
** 【Docker】phpLDAPadminで「Forbidden You don’t have per...
https://non-programmer-lab.com/phpldapadmin-forbidden-you...
** Spring Security(Spring Boot) + OpenLDAPでLDAP認証して...
https://qiita.com/kazuki43zoo/items/6bef663e2a885d8a0f16
** OpenSSHの公開鍵をLDAPで管理 [#p5c1287f]
https://gihyo.jp/admin/serial/01/ldap/0006
* ユーザの追加 [#md3c597b]
** 例:billyというユーザを追加する例 [#db50ef75]
vi new-user.ldif
*** new-user.ldifファイルの内容 [#n4fa918c]
パスワードは、平文で入れたとしても登録後はそのままでは見...
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
userPassword: xxx
mail: billy@my-company.com
gecos: Billy User
** dockerのコンテナに登録用のファイルをコピーして登録 [#d...
ldapのコンテナの名前がopenldapだとすると、以下のようにな...
- コンテナにファイルをコピー
docker cp new-user.ldif openldap:/container/service/slap...
- コンテナに接続
docker exec -it openldap bash
- 追加
ldapadd -x -H ldap://localhost -D "cn=admin,dc=my-compan...
- 確認
ldapsearch -x -H ldap://localhost -b dc=my-company,dc=co...
以下のコマンドでも確認
slapcat
** ユーザの削除 [#af158510]
*** 削除ファイルの例 [#n8454da6]
- ファイル名
delete-user.ldif
- ファイルの内容
uid=billy,dc=my-company,dc=com
- コンテナにファイルをコピー
コンテナ名を確認:以下の例は、ldapサーバのコンテナ名が、o...
docker cp delete-user.ldif openldap:/container/service/s...
- コンテナに接続
docker exec -it openldap bash
- 削除コマンド実行
ldapdelete -x -H ldap://localhost -D "cn=admin,dc=my-com...
- 確認
上記の追加コマンドの場合と同じ
** 参考にしたサイト [#w25e67ce]
- hawksnowlog
https://hawksnowlog.blogspot.com/2022/04/run-openldap-ser...
ページ名: