前回までは下記を参照ください。
Kimaiではチームメンバの工数管理しますので、まずはユーザーを追加しなければ始まりません。
「システム」→「ユーザー」から手作業で追加することは可能です。
メンバーがほとんど変動しない場合は、上の画面でユーザーを追加して良いと思います。
ただ、メンバーの人数が多かったり、メンバー変更が頻繁にある場合は、メンテナンスの手間がかかります。特にKimai以外にも複数のシステムがある場合はなおさら大変です。
また、システム毎にパスワードが異なると、これもメンバーにとっては負担だったりします。
LDAPサーバー
これらを解決するために、LDAP(Lightweight Directory Access Protocol)を利用します。LDAP導入には最初に少し手間が掛かりますが、その後の管理の手間を大きく低減できます。
ここでは簡単に触れますが、OpenLDAPというものを利用します。
OpenLDAPのDockerイメージには下記があります。
OpenLDAPに加えて、メンテナンスを容易化するために、管理ツールであるphpLDAPadminを導入します。
また、メンバーが好きなパスワード変更可能とするためのSelf Service Passwordも導入すると良いです。
これらもDockerコンテナが存在するので、導入は容易です。詳しい導入手順は、また別の機会に、記載したいと思います。
LDAP structureの作成
既に立ち上げているLDAPサーバーがある場合は、できるだけ今ある組織単位(OU)やユーザー情報、グループ情報を使うようにします。
もしLDAPサーバーから立ち上げる場合は、下記にサンプルがあるので、それを使います。
作成したLDIFファイルを、phpLDAPadminからインポートします。
今回の記事用に、まっさらのLDAPサーバーをMac上で立ち上げて、kimai-ldap-exampleをインポートしてみました。
インポート後は、下記の様になります。
DCを「dc=example,dc=com」に変更しました。
local.yaml
KimaiからLDAPサーバーにアクセスするための設定を行います。
以下の「The local.yaml settings」のところにサンプルファイルがあります。
修正した箇所は以下の2箇所です。
- user:とrole:のDCを「dc=example,dc=com」に変更
- connection:に接続するためのusernameとpasswordを追加(下記参照)
kimai:
ldap:
activate: true
connection:
host: host.docker.internal
username: cn=admin,dc=example,dc=com
password: adminpw
上記ではパスワードはデフォルトになってますので変更してください。
作成したらkimaiのdocker-compose.yamlのあるディレクトリに保存します。
local.yamlファイルは、Kimaiのカスタマイズするための設定ファイルです。コンテナ内の/opt/kimai/config/packages/local.yamlに置くことで読み込まれます。
ホストに置いたlocal.yamlをKimaiのコンテナから参照できる様にdocker-compose.yamlを修正します。
kimai:
image: kimai/kimai2:apache
volumes:
- data:/opt/kimai/var/data
- ./local.yaml:/opt/kimai/config/packages/local.yaml
以上でLDAPサーバーを参照するための設定は完了です。
ログイン確認
Kimaiのdockerコンテナを再起動し、LDAPサーバーにあるユーザ情報でログインしてみます。
ユーザー名に「user-ldap」、パスワードは「kitten」と入力し、「ログインする」を押します。
kimai-ldap-exampleのパスワードはデフォルトで「kitten」になってますので適宜変更してください。
ようこそ画面に続いて、個人設定の画面が表示されます。ユーザー毎に好きな言語を設定できます。前回日本語にしておいたのでデフォルトは日本語になっています。
ログインできたら成功です。
なお、この時点ではまだ工数を記録することはできません。
次回以降でプロジェクトやアクティビティを登録することによって、各ユーザーが実績工数を記録できる様になります。
今回、KimaiとLDAPサーバーと連携させることで、管理者の手間を省くことが可能になりました。
次回
顧客名やプロジェクト、アクティビティ、タグ名などの登録していきます。