openldap
docker
docker-compose

dockerでLDAP Serverを起動。ついでにphpLDAPadminも

More than 1 year has passed since last update.

経緯

認証サーバが欲しい。
OpenLDAPっていうのがあるらしい。
でもインストールして試すには、テスト用の物理サーバがない。
そうだ、仮想化しよう。今流行りのdockerで。
ついでに冗長化もしやすそう。

LDAPの操作が慣れるまでややこしそう。
実運用するとしてもユーザ登録するの俺じゃないし、GUIツールがいる。
phpLDAPadminっていうのがあるらしい。
ついでにこれもdockerでいけたらいいな。

dockerインストール

Ubuntu 16.04LTSなので

sudo aptitude install docker docker-compose

でOK(バージョン古いけど)。

docker imageを探してみた

docker hubでosixiaって人が両方作ってた
freeldap: osixia/openldap
phpldapadmin: osixia/phpldapadmin
マニュアル的なものはgithubにあった。
osixia/openldap
osixia/phpldapadmin
LDAPのimageを検索してみた感じ、スターが一番多いので採用

とりあえずシェルスクリプトで

ldap.sh

SERVICE=ldap-service
HOST_NAME=ldap-host
PASSWORD=adminpass

docker run \
    --name $SERVICE \
    --hostname $SERVICE \
    --env 'LDAP_ORGANISATION=Oreno Company' \
    --env LDAP_DOMAIN=my-company.com \
    --env LDAP_ADMIN_PASSWORD=$PASSWORD \
    --detach \
    osixia/openldap

docker run \
    -p 443:443 \
    --name ${SERVICE}-admin \
    --hostname ${SERVICE}-admin \
    --link $SERVICE:$HOST_NAME \
    --env PHPLDAPADMIN_LDAP_HOSTS=$HOST_NAME \
    --detach \
    osixia/phpldapadmin

docker-composeも試してみよう

docker-compose.yml

#LDAP server
ldap-service:
    image: osixia/openldap
    container_name: ldap_host
    environment:
        LDAP_ORGANISATION: "Oreno Company"
        LDAP_DOMAIN: "my-company.com"
        LDAP_ADMIN_PASSWORD: "ldappw"

ldap-phpadmin:
    image: osixia/phpldapadmin
    container_name: ldap_admin
    environment:
        PHPLDAPADMIN_LDAP_HOSTS: ldap_service
    ports:
        - "443:443"
    links:
        - ldap-service

これで
https://localhost/
にアクセスすればphpLDAPadminからいじれる

永続化

volumeでマウントするパスはgithubにあるので、これでそのまま使えそう
ただ正式採用するなら、公式イメージじゃないので、自前でビルドする方が安心かな。