48.3.5. Firefox で SSO に Kerberos を使用する設定
シングルサインオンに Kerberos を使用するように Firefox を設定できます。この機能が正しく機能するには、Kerberos 認証情報を適切な KDC に送信するように Web ブラウザーを設定する必要があります。以下のセクションでは、設定の変更およびその他の要件について説明します。
- Firefox のアドレスバーに、
about:config
と入力して現在の設定オプションの一覧を表示します。 - Filter フィールドに、オプションのリストを制限するために
negotiate
と入力します。 - network.negotiate-auth.trusted-uris エントリーをダブルクリックして、Enter string value ダイアログボックスを表示します。
- 認証に使用するドメイン名( .example.com など)を入力します。
- 同じドメインを使用して、network.negotiate-auth.delegation-uris エントリーに対して上記の手順を繰り返します。注記この値は空白のままにすることができます。これは、Kerberos チケットのパススルーを可能にするためですが、必須ではありません。これら 2 つの設定オプションが一覧にない場合は、お使いの Firefox のバージョンが Negotiate 認証をサポートするのに古くなる可能性があるため、アップグレードを検討してください。
図48.6 Kerberos での SSO 用の Firefox の設定
[D]
次に、Kerberos チケットがあることを確認する必要があります。コマンドシェルで kinit と入力して Kerberos チケットを取得します。利用可能なチケットの一覧を表示するには、klist と入力します。以下は、これらのコマンドの出力例を示しています。
~]$ kinit Password for user@EXAMPLE.COM: ~]$ klist Ticket cache: FILE:/tmp/krb5cc_10920 Default principal: user@EXAMPLE.COM Valid starting Expires Service principal 10/26/06 23:47:54 10/27/06 09:47:54 krbtgt/USER.COM@USER.COM renew until 10/26/06 23:47:54 Kerberos 4 ticket cache: /tmp/tkt10920 klist: You have no tickets cached
48.3.5.1. トラブルシューティング
上記の設定手順を実行し、Negotiate 認証が機能しない場合は、認証プロセスの詳細ロギングを有効にすることができます。これは、問題の原因を見つけるのに役立ちます。詳細なロギングを有効にするには、以下の手順に従います。
- Firefox のすべてのインスタンスを閉じます。
- コマンドシェルを開き、以下のコマンドを入力します。
export NSPR_LOG_MODULES=negotiateauth:5 export NSPR_LOG_FILE=/tmp/moz.log
- そのシェルから Firefox を再起動し、以前に認証できなかった Web サイトにアクセスします。情報は
/tmp/moz.log
に記録され、問題が解消される可能性があります。以下に例を示します。-1208550944[90039d0]: entering nsNegotiateAuth::GetNextToken() -1208550944[90039d0]: gss_init_sec_context() failed: Miscellaneous failure No credentials cache found
これは、Kerberos チケットがなく、kinit を実行する必要があることを示しています。
kinit をマシンから正常に実行できるが認証できない場合は、以下のようなメッセージがログファイルに表示される場合があります。
-1208994096[8d683d8]: entering nsAuthGSSAPI::GetNextToken() -1208994096[8d683d8]: gss_init_sec_context() failed: Miscellaneous failure Server not found in Kerberos database
これは通常、Kerberos 設定の問題を示しています。
/etc/krb5.conf
ファイルの [domain_realm] セクションに正しいエントリーがあることを確認します。以下に例を示します。
.example.com = EXAMPLE.COM example.com = EXAMPLE.COM
ログに何も表示されない場合は、プロキシーの背後にある可能性があり、そのプロキシーが Negotiate 認証に必要な HTTP ヘッダーを削除している可能性があります。回避策として、代わりに HTTPS を使用してサーバーへの接続を試みることができます。これにより、要求を変更せずに渡すことができます。次に、上記のように ログファイルを使用したデバッグに進みます。