この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
こんにちは、虎塚です。
今日は、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の整数です。数字が小さいほど優先度が高くなります。
たとえば、次のように記述します。
/etc/yum.repos.d/CentOS-Base.repo
[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
変更前
/etc/phpldapadmin/config.php
//(略)
// $servers->setValue('login','attr','dn');
$servers->setValue('login','attr','uid');
//(略)
変更後
/etc/phpldapadmin/config.php
//(略)
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');
//(略)
Apache HTTPサーバの設定
LDAPサーバ内のWebサーバで、設定ファイルを編集します。
/etc/httpd/conf.d/phpldapadmin.conf
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です。
/etc/httpd/conf/httpd.conf
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アプリケーションから行えるので便利ですね。
それでは、また。