Title: LDAPS 設定

ここでは、SSL/TLS で暗号化された LDAP サーバーで TeamPage のユーザー認証をする方法を解説します。

まず、LDAP 設定 を参考にして基本的な LDAP 設定プロファイルを作成してください。



次に、「サーバー URL」欄で指定する LDAP サーバーのアドレスを ldap:// から ldaps:// に変更します。ポート番号を省略した場合は自動的に 636 番が使用されます。



必要に応じてその他の設定を済ませます。

最後に、画面下部の [保存] ボタンをクリックして設定を保存します。



動作テスト



上記の設定で正しく LDAP サーバーにアクセスできるか、認証ができるかのテストをします。

画面下部の [テスト] ボタンをクリックしてテスト画面を表示します。



ログインのテスト



ユーザー名とパスワードを入力し [ログインのテスト] ボタンをクリックします。ログインに成功すると「ログインできました」と表示されます。

ログイン成功

ルックアップのテスト



LDAP サーバーに登録されているユーザーを一覧表示します。「アカウント名の入力」欄にユーザー名の一部を入力し、[ルックアップのテスト] をクリックします。



メモ : 「アカウント名の入力」欄に何も入力しないまま [ルックアップのテスト] を実行すると、LDAP サーバーに登録されているすべてのユーザーが表示されます。登録ユーザー数が多い場合、表示が終わるまで時間がかかることがあります。



ユーザーの検索

テストが成功したら、テスト画面とユーザーディレクトリの設定画面を閉じます。

ユーザーディレクトリの変更



以上で問題なければ、ユーザー認証を LDAPS へ変更し、すでに TeamPage に登録されているユーザー情報を LDAP 上のユーザー情報に紐付けられます。

こちらの手順は別項で解説しています。 ユーザーディレクトリの変更とプリンシパルの移行 を参照してください。

トラブルシューティング



ログインやルックアップがうまくいかなかったりエラーが表示される場合は、下記を参考にして原因を特定してください。

サーバー証明書の信頼性



LDAP サーバーで使用されるサーバー証明書にグローバルサイン社などの信頼できる署名がある場合、TeamPage は証明書を信頼し、LDAP サーバーに接続します。しかし、信頼できる署名がない場合(自己署名のみの証明書)、信頼性が疑わしいと判断してサーバーへの接続を中止します。この場合、次のようなエラーが表示されます。

ディレクトリ サーバーに接続する際にエラーが発生しました。
javax.naming.CommunicationException: simple bind failed: centos.example.jp:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found]



この場合は、証明書を信頼するように手動で設定することで、この問題を解決できます。

ユーザーディレクトリの設定画面の「サーバー URL」の [信頼された認証の編集はここをクリックしてください] リンクをクリックし、「TLS マネージャ」画面を表示します。



注意 : 初めて「TLS マネージャ」画面を表示したとき、パスワードの入力を求められます。必ず何らかのパスワードを入力して先へ進んでください。



「TLSマネージャ」画面のドロップダウンリストから [信頼されていない証明書] を選択すると、LDAP サーバーの証明書が「証明書」リストに表示されます。この証明書をクリックして選択し、「選択されたエントリー」に表示された内容を確認して、[信頼された証明書の追加] をクリックします。



これで TeamPage が証明書を信頼するようになりました。ドロップダウンリストで [信頼されたサーバー証明書] をクリックして確認できます。



[閉じる] をクリックして「TLSマネージャ」画面を終了します。

再度テストを実行し、エラーが表示されなくなったことを確認します。

ログイン成功

LDAP サーバー URL の誤り



ホスト名の誤り



ユーザーディレクトリの設定の「サーバー URL」に誤りがある場合、TeamPage は LDAP サーバーに接続できず、次のようなエラーを表示します。

ディレクトリ サーバーに接続する際にエラーが発生しました。
javax.naming.CommunicationException: centos.example.jpn:636 [Root exception is java.net.UnknownHostException: centos.example.jpn]



この例では、正しくは「centos.example.jp」とすべきところを誤って「centos.example.jpn」としているのが原因です。



識別名の誤り



正しくは「ou=People」とするところを誤って「ou=Users」とすると、下図のように URL で指定されたオブジェクトが見つからず、エラーになります。

ディレクトリ サーバーに接続する際にエラーが発生しました。
javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name ''



「サーバー URL」を確認し、正しい識別名に修正してください。



認証アカウントの誤り



LDAP サーバーに認証情報を問い合わせるユーザー(LDAP の管理者アカウント)の設定に誤りがあると、次のようなエラーが表示されます。

ディレクトリ サーバーに接続するためのユーザー名またはパスワードは拒否されました。
javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]



例えば、この例では、本来「cn=Manager」を指定すべきところを誤って「cn=admin」としていました。ここを訂正します。



サーバー間の通信状況の確認



TeamPage の デバッグ ログ や LDAP サーバーが書きだすログを使って、TeamPage と LDAP サーバーの通信ができているかどうかを確認できます。

LDAP サーバーのログ



LDAP サーバーの設定によっては、サーバーの動作状況が /var/log/slapd.log などのファイルに書き出されます。これを確認することで、TeamPage から正しく接続されているか、正しくリクエストされているかなどを確認できます。

Jan 26 15:43:14 centos slapd[4809]: conn=18 fd=15 ACCEPT from IP=10.0.1.81:2994 (IP=0.0.0.0:636) 
Jan 26 15:43:14 centos slapd[4809]: conn=18 fd=15 TLS established tls_ssf=128 ssf=128
Jan 26 15:43:14 centos slapd[4809]: conn=18 op=0 BIND dn="cn=Manager,dc=example,dc=jp" method=128
Jan 26 15:43:14 centos slapd[4809]: conn=18 op=0 BIND dn="cn=Manager,dc=example,dc=jp" mech=SIMPLE ssf=0
Jan 26 15:43:14 centos slapd[4809]: conn=18 op=0 RESULT tag=97 err=0 text=
Jan 26 15:43:14 centos slapd[4809]: get_filter: conn 18 unknown attribute type=fullName (17)
Jan 26 15:43:14 centos slapd[4809]: conn=18 op=1 SRCH base="ou=People,dc=example,dc=jp" scope=2 deref=3 filter="(&(|(uid=*)(?=false))(objectClass=account))"
Jan 26 15:43:14 centos slapd[4809]: conn=18 op=1 SRCH attr=uid fullName objectClass
Jan 26 15:43:14 centos slapd[4809]: conn=18 op=1 SEARCH RESULT tag=101 err=0 nentries=12 text=


TeamPage のデバッグログ



サーバーセットアップ | サーバーファイル タブ | ログファイル タブ | デバッグ タブ を開き、[デバッグ情報を記録する] と [ldap] のチェックボックスをオンにすると、LDAP サーバーへのリクエスト内容などが debug.log ファイルに記録されます。

[ldap 木 1 26 15:49:35.937 JST 2012 Thread-108 admin] LdapConnector.lookupUser...
[ldap 木 1 26 15:49:35.937 JST 2012 Thread-108 admin] findAttributes [uid, fullName, objectClass] ...
[ldap 木 1 26 15:49:35.984 JST 2012 Thread-108 admin] done. 47ms
[ldap 木 1 26 15:49:35.984 JST 2012 Thread-108 admin] 12 results. 47ms




Attachments:
ldaps_01.png
ldaps_02.png
ldaps_03.png
ldaps_04.png
error_01.png
cert_01.png
cert_02.png
cert_03.png
cert_04.png
ldaps_05.png
error_02.png
correct_url.png
error_03.png
users_people.png
error_04.png
correct_cn.png
関連記事
参照されている (1)
Article: DocJp1735 (permalink)
Date: 2012/01/26; 15時56分36秒 JST

Author Name: TeamPage サポート
Author ID: jpbo