連載
» 2008年10月28日 00時00分 公開

OpenLDAPで始めるディレクトリサーバ構築(3):OpenLDAPサーバを利用したユーザー認証 (3/3)

[菊池研自,伊藤忠テクノソリューションズ株式会社]
前のページへ 1|2|3       

ユーザー認証の設定

 ここまでの設定で、ユーザー認証に必要なエントリがOpenLDAPサーバに登録されました。ここからは、LDAP認証を行うクライアント側の設定を説明していきます。

 LDAPクライアントからOpenLDAPサーバに対してユーザー認証を行うには、LDAPクライアントとなるコンピュータ側で、どのLDAPサーバに対し、どのように問い合わせるかの設定が必要になります。具体的には、以下のファイルを変更する必要があります。

ファイル名 説明
/etc/nsswitch.conf NSS(Name Service Switch)の設定ファイルです。
/etc/pam.d/system-auth PAM(Pluggable Authentication Modules)がアプリケーションへ共通設定を提供するためのファイルであり、認証時に多くのプログラムから参照されます。PAM自体の概要は、/usr/share/doc/pam-X.XX……/以下のドキュメントを参考にしてください。
/etc/ldap.conf NSS、PAMがLDAPサーバへアクセスする際に利用するモジュール、nss_ldap.so、pam_ldap.so共通の設定ファイルです。このファイルの記述方法は、man nss_ldap、man pam_ldapで確認できます。
/etc/openldap/ldap.conf ldapadd、ldapmodifyなど、OpenLDAPのクライアントコマンドが参照する設定ファイルです。このファイルの記述方法は、man ldap.confで確認できます。

 これらの設定ファイルは、viなどのエディタを用いて1つ1つ手動で変更することも可能ですが、GUIツールを通して変更するほうが便利です。GUIツールを用いて変更作業を行うには、以下のコマンドを実行します。

# system-config-authentication

 system-config-authenticationコマンドの実行後に起動するGUI画面では、ユーザー情報タブ(画面1)で、LDAPサポートを有効にする(L)のチェックを選択します。

画面1 system-config-authenticationコマンドで起動するGUI画面 画面1 system-config-authenticationコマンドで起動するGUI画面

 次に、LDAPの設定(D)ボタンをクリックして表示される画面(画面2)では、

  • エントリを検索するベースとなるDITの位置(今回は”dc=my-domain,dc=com”)
  • 接続するLDAPサーバのURL(今回はローカルホストを示す”ldap://127.0.0.1/”)

を指定します。

画面2 LDAPの設定(D)ボタンをクリックして表示される画面 画面2 LDAPの設定(D)ボタンをクリックして表示される画面

 続いて、認証タブ(画面3)に移動し、ユーザー情報タブでの設定と同様に、LDAPサポートを有効にする(L)を選択します。LDAPの設定(D)ボタンをクリックして現れる画面には先に入力した情報が保持されているので、ここではそのままOK(O)をクリックし、GUIツールを終了します。

画面3 認証タブ画面 画面3 認証タブ画面

 以上で、LDAPクライアントとなるコンピュータ上のPAMおよびNSS関連の設定ファイルの変更が完了しました。これで、LDAPサーバへ接続し、ユーザー認証ができるようになります。

PAMを利用した認証

 LDAP認証の設定が完了すると、PAMを利用するさまざまなプログラムからのLDAP認証が可能になります。これは、先ほど変更した/etc/pam.d/system-authファイルが、多くのプログラムから認証処理時に参照されているためです。例えば、以下のようなプログラムからも、/etc/pam.d/system-authファイルが参照されています。

プログラム名 system-authを参照する設定ファイル
su /etc/pam.d/su
sshd /etc/pam.d/sshd
telnetd /etc/pam.d/remote
vsftpd /etc/pam.d/vsftpd
cvs /etc/pam.d/cvs

 それでは、今回OpenLDAPサーバに登録したユーザーエントリを用いて、suコマンド、sshコマンドなどを用いてLDAP認証を行ってみましょう(注5)。

# su - test1001
-bash-3.2$

# ssh test1001@localhost
test1001@localhost's password:test1001
Last login: Sat Sep 20 18:13:57 2008 from hostname
-bash-3.2$

 OpenLDAPサーバでのユーザー認証は成功したでしょうか。もしユーザー認証に失敗する場合は、前回紹介した、syslogdに送付されるOpenLDAPサーバのアクセスログを確認し、問題を修正してください。

注5:各ユーザーエントリのhomedir属性に指定したホームディレクトリを事前に作成していない場合、プログラムによって警告メッセージが表示されたり、またはエラーが発生することがあります。ここでの認証例は、ホームディレクトリをあらかじめ作成している場合の例です。


PAMを利用しないLDAP認証

 このほか、PAMを経由したLDAP認証が実装されていないプログラムについては、別途、LDAPサーバへの接続方法を確認する必要があります。例えばApacheの場合は、以下のURLのように、Apache側で個別にLDAP認証のための設定を行う必要があります。

関連記事:

→ Apacheで作るファイルサーバ(LDAP認証編)
http://www.atmarkit.co.jp/flinux/rensai/apache2_07/apache07a.html


 今回は、パスワードなどの保護するべき属性を含んだエントリをOpenLDAPサーバに登録しました。次回はこのサーバに対し、アクセスコントロールや管理者用dnのパスワードの暗号化、さらには通信経路の暗号化といったセキュリティ面で考慮すべき点と、その設定方法を説明する予定です。


 

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。