search
LoginSignup
51

More than 3 years have passed since last update.

posted at

updated at

dockerでldapサーバを立てる

概要

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で接続しています。接続すると以下のようが画面が現れます。

ldap_top.png

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

ldap_login.png

エントリの追加

この記事ではdmafという名前のouとその下にユーザmon.higumaを作成します。

まずはouの作成をします。

  1. 左のツリーの下Create new entry hereを押す
  2. Generic: Organisational Unitをチェックする
  3. Organizational Unitに名前をつける
  4. Commitボタンを押す

ldap_ou.png

次にouの下にユーザを作成します。

  1. ou=dmafの画面を開くとCreate a child entryがあるのでクリックする
  2. Kolab: User Entryをチェックする
  3. 各項目を埋める最低限First Name, Last Name, Common Name, Enail, Passwordを埋めれば良い。

ldap_createuser.png

ユーザのエントリが出来ました。

ldap_user.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
51