概要
gitlabサーバやredmineサーバを立ち上げるのユーザの一元管理をしたい思いldapサーバを立ち上げました。世の中ではsamba4などもあるみたいですが、まずはdockerでopenldapサーバだけを立ち上げました。そのうちgitlabサーバと連携したいと思っています。
参考サイト
以下のサイトを参考にしています。
環境
下表のような環境で動作しています。
- | - |
---|---|
ホストPC | lubuntu 18.04 |
docker | 18.06.0-ce |
docker-compose | 1.22.0 |
docker-compose.yml
以下のようなdocker-compose.ymlを用意します。ldapサーバ本体のopenldapとwebブラウザ上からldapサーバの管理ができるphpldapadminの2つの設定をしています。
version: '3'
services:
ldap-server:
image: osixia/openldap:latest
restart: always
container_name: ldap-host
environment:
LDAP_ORGANISATION: "dmaf"
LDAP_DOMAIN: "airimania.com"
LDAP_ADMIN_PASSWORD: "dondake19940412"
networks:
- webnet
ldap-admin:
image: osixia/phpldapadmin:latest
restart: always
container_name: ldap-admin
environment:
PHPLDAPADMIN_LDAP_HOSTS: "ldap"
PHPLDAPADMIN_HTTPS: "false"
ports:
- "8080:80"
links:
- "ldap-server:ldap"
networks:
- webnet
networks:
webnet:
サーバの起動
上で用意したdocker-compose.ymlのあるディレクトリでdocker-compose upコマンドでコンテナを起動します。初回起動時はイメージをダウンロードするため少し時間がかかります。
$ ls
docker-compose.yml
$ docker-compose up -d
Pulling ldap-server (osixia/openldap:latest)...
latest: Pulling from osixia/openldap
f2aa67a397c4: Pull complete
1d225acca1cf: Pull complete
f6ee938fdfb5: Pull complete
b984a0680ade: Pull complete
3f3d50974264: Pull complete
ce7e422fcd12: Pull complete
998fb9cc9f69: Pull complete
242749cf31f0: Pull complete
Digest: sha256:6ceb347feb37d421fcabd80f73e3dc6578022d59220cab717172ea69c38582ec
Status: Downloaded newer image for osixia/openldap:latest
Pulling ldap-admin (osixia/phpldapadmin:latest)...
latest: Pulling from osixia/phpldapadmin
afeb2bfd31c0: Pull complete
a3d3c5dab1e4: Pull complete
918b0d782d3a: Pull complete
75da0c7eae3a: Pull complete
4339b9002d45: Pull complete
cff1838ed856: Pull complete
987155a2bc0b: Pull complete
325d85698781: Pull complete
e196b746c3ec: Pull complete
Digest: sha256:1ab629698ae0abff6e00d23feb978d5345abf656205cb5da3795daedec8cad9e
Status: Downloaded newer image for osixia/phpldapadmin:latest
Creating ldap-host ... done
Creating ldap-admin ... done
docker-compose psコマンドで起動しているコンテナの確認が出来ます。
$ docker-compose ps
Name Command State Ports
------------------------------------------------------------------------
ldap-admin /container/tool/run Up 443/tcp, 0.0.0.0:8080->80/tcp
ldap-host /container/tool/run Up 389/tcp, 636/tcp
ldapサーバログイン
サーバに接続するとログイン画面が表示されました。この例ではdockerホスト=ローカルホストなのでlocalhost:8080で接続しています。接続すると以下のようが画面が現れます。
adminは初期設定でされているようなのでcn=admin、dcはdocker-compose.ymlのLDAP_DOMAINで定義した値を入れ、PasswordはLDAP_ADMIN_PASSWORDで定義した値でログインできます。上のdocker-compose.ymlでは以下のようになります。
属性名 | 値 |
---|---|
Login DN | cn=admin,dc=airimania,dc=com |
Password | dondake19940412 |
エントリの追加
この記事ではdmafという名前のouとその下にユーザmon.higumaを作成します。
まずはouの作成をします。
- 左のツリーの下Create new entry hereを押す
- Generic: Organisational Unitをチェックする
- Organizational Unitに名前をつける
- Commitボタンを押す
次にouの下にユーザを作成します。
- ou=dmafの画面を開くとCreate a child entryがあるのでクリックする
- Kolab: User Entryをチェックする
- 各項目を埋める最低限First Name, Last Name, Common Name, Enail, Passwordを埋めれば良い。
ユーザのエントリが出来ました。