Title: LDAP X.509 クライアント認証の設定
次の条件を満たしている場合、TeamPage にアクセスした時にログイン画面は表示されず、証明書に基づいて認証処理が行われ、TeamPage にシングル サインオンできます。
- TeamPage にアクセスするユーザーが、X.509 クライアント証明書をブラウザにインストール済みである。(ブラウザの設定)
- TeamPage が LDAP 認証を行う設定になっている。(参照 : DocJp166: LDAP 設定)(TeamPageの設定)
- LDAP サーバーにユーザーの証明書がインストールされており、証明書へのアクセス権限がある。(LDAP サーバーの設定)
- TeamPage のユーザーアカウントと紐付けられた LDAP ユーザーの認証に(パスワード認証ではなく)インストール済みのクライアント証明書を使う設定になっている。(LDAP サーバーの設定)
この設定を行うには、まず HTTPS X.509 クライアント認証の設定 を済ませてください。その後、ユーザーディレクトリの設定画面で X.509 オプションを選択できるようになります。
なお、FAQ2154: OpenLDAPとX.509クライアント認証でシングルサインオンするには で CentOS 5.7 と OpenLDAP を使った例で、具体的な設定手順や注意点について解説しています。
制限
この設定を行うと、LDAP サーバーに保管された証明書に合致する証明書がないユーザー(ブラウザ)は TeamPage にログインできなくなります。LDAP サーバーにアカウントがないユーザー(つまり、TeamPage 標準のユーザーアカウント)は TeamPage にログインできません。
また、この設定を行うと、オーナーライセンスが使用できなくなります。オーナーライセンスは、TeamPageのサーバー管理者をロックアウトしてしまった場合などに使う、特別なライセンスです。 (参照:FAQ138: TeamPageにログインできなくなったときにはどうすればいいですか?, DocJp129: ACLの動作)
注意 : 誰もログインできないような事態を避けるため、作業前に必ずジャーナルのバックアップを取ってください。使用中のジャーナルの確認方法については FAQ221: 使用中のジャーナルがどこにあるのかを調べるには を参照してください。
設定概要
HTTPS X.509 クライアント認証の設定 を済ませた後、ユーザーディレクトリ設定画面の「ログイン方法」のドロップダウンリストから [X.509 Client Certificates] を選択してください。
メモ : HTTPS X.509 クライアント認証の設定が完了していない場合は、下図のエラーが表示されます。
詳細設定
TeamPage にアクセスしたブラウザが証明書を提示したとき、TeamPage は合致する証明書を LDAP サーバーから検索します。これが動作するには、「LDAP 検索」の検索式が正しく設定されていなければなりません。括弧 {} は、証明書から取得した値に置き換えられます。いくつかの結果が返ってきたとき、TeamPage は提示された証明書と LDAP のエントリ中の証明書とを比較します。合致するものが見つかったとき、認証が成功し、ユーザーは LDAP 中のアカウントして認識されます。
X.509 クライアント認証検索式
LDAP ディレクトリ中のユーザーを検索する式を設定できます。この検索ではブラウザから提示された証明書に合致する証明書が使われます。
クライアント認証属性
上記の検索を行うと、合致する LDAP のレコードが返されます。この「クライアント認証属性」の設定は、検索実行時にどの値にクライアント証明書を含ませるかを規定します。
設定の確定
[保存] ボタンをクリックすると設定が保存され、動作に反映されます。
注意 : [保存] ボタンをクリックすると、すぐに X.509 クライアント認証方式に切り替わります。LDAP サーバーにクライアント証明書が正しくインストールされていない場合や、LDAP サーバーの設定が誤っている場合など、TeamPage にログインできなくなります。
ログインがうまく行かない場合は、後述の「トラブルシューティング」を参照してください。
トラブルシューティング
ログインができないトラブル例
名前の競合が発生した場合や証明書が無効な場合、またはブラウザが提示した証明書と LDAP サーバーに保管された証明書が一致しない場合など、「Sorry, but your login could not be validated or you are not permitted access to that area.」というエラーメッセージが表示されます。
デバッグログによる調査
トラブルの原因を詳しく調査するには、TeamPage のログ (traction.log や debug.log) が役立ちます。詳しくは、ログファイルを使ったトラブルシューティング を参照してください。
例えば、ログに次の記録が見つかった場合、LDA P中の別のユーザーが同じ CN を使っていることがわかります。TeamPage は、TeamPage のユーザーアカウント名を検索するときに既定で CN を使います。(上述の「X.509 クライアント認証検索式」を参照)
同じCNを持つユーザーのうち、最初に TeamPage にログインした方のアカウントが TeamPage に作成されます。 2番目にログインしようとしたユーザーはエラーになります。2番目のユーザーのアカウントを作成するには、パーソナルセットアップ | パーソナル情報 タブ を開き、1番目のユーザーのユーザー名(アカウント名)を変更してください。そして、2番目のユーザーがログインした後、両者のアカウント名を再考し設定してください。必ずすべてのユーザー名が異なるようにしなければなりません。
LDAPのログによる調査
一方、LDAP サーバー側のログも調査に役立ちます。Linux の OpenLDAP を使用している場合、通常、ログは /var/log/slapd.log のようなパスに記録されます。
例えば、ユーザーのクライアント証明書が LDAP サーバーにインストールされていない場合は、次のような記録が残ります。
Jan 27 15:32:31 centos slapd[3839]: conn=2 op=32 SRCH base="ou=People,dc=example,dc=jp" scope=2 deref=3 filter="(cn=john smith)"
Jan 27 15:32:31 centos slapd[3839]: conn=2 op=32 SRCH attr=userCertificate;binary
Jan 27 15:32:31 centos slapd[3839]: conn=2 op=32 SEARCH RESULT tag=101 err=0 nentries=0 text=