LDAPサーバにphpLDAPadminをインストールして疎通確認する
はじめに
こんにちは、虎塚です。
今日は、phpLDAPadminのインストール手順と、CentOS 6にインストールしたLDAPへの疎通確認の方法を紹介します。先日の記事「OpenLDAPをCentOS6にインストールしてLDAP Adminで疎通確認する | Developers.IO」の応用編ですね。
前回は、WindowsアプリケーションのLDAP Adminで疎通確認をしました。今回は、phpLDAPadminからLDAPサーバの中身を確認します。phpLDAPadminを利用すると、WebアプリケーションのGUIを利用してLDAPにオブジェクト(グループやユーザ)を追加、削除できます。
インストール先は、LDAPサーバです。以降の手順の前提として、前回の記事の「疎通確認」にある「OpenLDAP側でのデータ投入」までを実施済みであることとします。
phpLDAPadminのインストール
LDAPサーバにSSH接続して、phpLDAPadminをインストールしましょう。
EPELリポジトリの追加
まず、次のコマンドを実行してみます。
yum install phpldapadmin
しかし、パッケージが見つからないと表示されるかもしれません。その場合、EPEL(Extra Packages for Enterprise Linux)を利用します。EPELでは様々なFedoraのパッケージが、互換ディストリビューションで利用することを目的に管理されています。
# ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-Media.repo CentOS-fasttrack.repo CentOS-Debuginfo.repo CentOS-Vault.repo # yum install -y epel-release # ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-Media.repo CentOS-fasttrack.repo epel.repo CentOS-Debuginfo.repo CentOS-Vault.repo epel-testing.repo
これでphpLDAPadminのパッケージを取得できるようになりました。ただし、EPELのドキュメントには、リポジトリを混在させると問題が出やすいとされています。
yum-plugin-prioritiesのインストールと設定
そこで、この問題を避けるために、yum-plugin-prioritiesを導入します。
# yum install -y yum-plugin-priorities
priorities.confにenabled=1の記述があることを確認しておきます。
# cat /etc/yum/pluginconf.d/priorities.conf [main] enabled = 1
あとは、各リポジトリ用の設定ファイルにpriority=Nの形式で優先度を指定します。Nは1〜99の整数です。数字が小さいほど優先度が高くなります。
たとえば、次のように記述します。
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 priority=1 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 priority=1
baseリポジトリやupdateリポジトリには1を、サードパーティのリポジトリには10より大きな値を設定することが推奨されています。この設定をすると、指定したパッケージがbaseリポジトリにない時にだけ、EPELへ探しにいってくれます。
phpLDAPadminのインストール
phpLDAPadminをインストールします。
# yum install phpldapadmin # (略) ================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================ インストールしています: phpldapadmin noarch 1.2.3-1.el6 epel 806 k 依存性関連でのインストールをします。: # (略)
phpLDAPadminの本体と設定ファイルは、デフォルトでそれぞれ次の場所にインストールされます。
# ls /usr/share/phpldapadmin VERSION config hooks htdocs index.php lib locale queries templates # ls /etc/phpldapadmin/ config.php
各種設定
phpLDAPadminの設定
phpLDAPadminの設定ファイルを編集します。
# cp /etc/phpldapadmin/config.php /etc/phpldapadmin/config.php.orig # vi /etc/phpldapadmin/config.php
# cp /etc/phpldapadmin/config.php /etc/phpldapadmin/config.php.orig # vi /etc/phpldapadmin/config.php
変更前
//(略) // $servers->setValue('login','attr','dn'); $servers->setValue('login','attr','uid'); //(略)
変更後
//(略) $servers->setValue('login','attr','dn'); // $servers->setValue('login','attr','uid'); //(略)
Apache HTTPサーバの設定
LDAPサーバ内のWebサーバで、設定ファイルを編集します。
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs Alias /ldapadmin /usr/share/phpldapadmin/htdocs <Directory /usr/share/phpldapadmin/htdocs> Order Deny,Allow Deny from all Allow from 127.0.0.1 <PUBLIC_IP> Allow from ::1 </Directory>
上の
メインの設定ファイルで、上のファイルを読み込んでいることを確認しておきます。次の記述があればOKです。
Include conf.d/*.conf
上の記述があればOKです。
EC2セキュリティグループの変更
ブラウザからWebアプリケーション(phpLDAPadmin)にアクセスするため、LDAPサーバのEC2インスタンスに付与したセキュリティグループで、HTTPの80番を許可します。
今回は検証目的なので省略しますが、LDAPサーバですので、アクセス元のIPアドレスは絞っておいた方がよいでしょう。
phpLDAPadminを使った疎通確認
Webサーバを開始します。
# /etc/rc.d/init.d/httpd start
ローカルマシンのブラウザから、http://<LDAPサーバのIPアドレス>/ldapadmin/にアクセスします。
ログイン画面が表示されます。[ログイン]リンクをクリックします。
slapd.cnofの記述内容で疎通確認を行います。(slapd.confはデフォルトのまま使用しています。前回の記事を参照ください)
- User Name: cn=Manager,dc=my-domain,dc=com
- パスワード: secret
上のように入力して、[Authenticate]ボタンをクリックします。
ホーム画面が表示されます。ログイン名の先頭にあるアイコンをクリックします。
右の画面が切り替わり、エントリの複製や子項目の作成のメニューが表示されました。
無事に疎通を確認できました。
参考資料
おわりに
LDAPサーバにphpLDAPadminを入れて、インターネット環境からブラウザで接続しました。こういったツールを利用すれば、ディレクトリ管理をWebアプリケーションから行えるので便利ですね。
それでは、また。