OpenLDAPとphpLDAPadminによるLinuxとRedmineの認証基盤

10年ほど前にOpenLDAPを"なんちゃって負荷テスト"して以来、 久しぶりに触り、かつ初めて実用のディレクトリ構造を実装する機会があったので、そのメモ。 LinuxとRedmineの認証を担わせ、パスワード変更UIなどを整備した。

(参考)https://www.openldap.org/doc/admin24/index.html

基本要件

  1. Linux認証を担える
  2. Linuxホスト・ユーザ組み合わせの接続制限(アクセス制御)
  3. 公開鍵を格納して公開鍵認証ができる
  4. Redmine認証を担える
  5. Redmineインスタンス・ユーザ組み合わせの接続制限(アクセス制御)
  6. Linux,Redmineの認証情報(ID, パスワード)統合
  7. OpenLDAPマルチマスタ構成による冗長化
  8. パスワード強度設定
  9. パスワード変更UIを用意する
  10. パスワードリセットUIを用意する

システム構成図

system diagram

サーバ構成

#ホスト名IPアドレス備考
1号機server1192.168.0.11サービスLAN
server1m192.168.200.11管理LAN
2号機server2192.168.0.12サービスLAN
server2m192.168.200.12管理LAN

ソフトウェア構成

主なもの。断りのないものは、CentOSの標準リポジトリからyumで導入。
ソフトウェアバージョン備考
CentOS7.4.1708
OpenLDAP2.4.44-5
phpLDAPadmin1.2.3-10EPELリポジトリから
Apache2.4.6-80
Passenger5.3.1gemで取得
Redmine3.2.2公式からダウンロード
Ruby2.3.7ソースからコンパイル
mariadb5.5.56-2

OpenLDAP基本設計

項目
port389
BaseDNdc=hoge,dc=local
管理者DNcn=admin,dc=hoge,dc=local
RDNcn

/etc/hosts

両機の/etc/hostsに次のとおり記述しておく
# server1
server1    192.168.0.11    # service lan
server1m   192.168.200.11  # management lan
# server2
server2    192.168.0.12    # service lan
server2m   192.168.200.12  # management lan

組織・名前空間等の前提

次の前提。 例えば、suzuki@hoge.co.jpさんのエントリは次のとおり。

マルチマスタOpenLDAPによるLinuxとRedmineの認証統合

パスワード変更UI向けphpLDAPadminカスタマイズ

OpenLDAPアカウント向けパスワードリセットUI


2018/10/11 Taikou Yamada (t-yamada _at_ ceres.dti.ne.jp)