さまざまなブラウザで Kerberos 認証を設定する方法

はい、もちろんです。以下は、より現実的で少し乱雑なバージョンですが、要点は伝わるはずです。また、おそらく皆さんが忘れがちな詳細も含まれています。 — 企業の Web アクセスの世界では、Kerberos 認証を複数のブラウザーで正しく設定するのは少々面倒です。多くの場合、主な問題は、ブラウザーが Active Directory 設定とスムーズに通信するために少しの設定が必要なことです。Chrome、Firefox、または IE を使って社内サイトで透過的な Windows ログインを行おうとしたことがあれば、SSO が確立されなかったり、ブラウザーが認証情報を求めてきたりといった奇妙な問題に遭遇したことがあるでしょう。そこで、このガイドは役立ちます。ブラウザーが AD Kerberos チケットを信頼し、問題なく渡すための基本的な設定手順を説明します。Kerberos をサポートする Web サーバー (例: Kerberos 認証が有効になっている IIS)、ユーザーが何らかの方法でアクセス権を持ち、有効な TGT (Kerberos チケット認可チケット) を使用してユーザーのマシンが AD に正しくログインしている必要があります。これらがなければ、諦めてください。また、ブラウザによってチケットとゾーンの処理方法が異なるため、これらの手順は「なぜこのサイトは毎回ログインを求めるのか?」というよくある問題を回避できるはずです。—

ブラウザでのKerberos認証の問題を解決する方法

Internet ExplorerでKerberosを有効にする(11)

まず、IE はちょっと古い学校ですが、いくつかの場所ではまだ驚くほど重要です。 IE で Kerberos のトラブルシューティングを行う場合、最も重要なことは、サイトが「イントラネット」として認識され、信頼されていて、IE が正しいトークンを送信することを確認することです。 –インターネット オプションに移動します —コントロール パネル > インターネット オプション、または の歯車アイコンからアクセスします。 –セキュリティに進み、ローカル イントラネットをクリックして、サイト>詳細設定をクリックします。 – ここで、サイト (例: )https://*.woshub.comと を追加しますhttp://*.woshub.com。 こうすることで、IE はそれらをイントラネットとして扱い、Kerberos サポートに重要になります。 – 管理を容易にするために、グループ ポリシーを使用してこれらを設定できます。コンピューターの構成 > ポリシー > 管理用テンプレート > Windows コンポーネント > Internet Explorer の順に移動して、サイトとゾーンの割り当て設定を探します。 サイトの値を 1 (イントラネット ゾーン) に設定します。 – その後、詳細設定タブをもう一度クリックします。統合 Windows 認証を有効にするがオンになっていることを確認します。 – 重要: 代わりにサイトを信頼済みサイト ゾーンに追加する場合、Kerberos トークンは送信されません。社内ウェブアプリなどのサイトは、ローカルイントラネットゾーンに厳密に保存してください。そうすることで、IEはこれらのURLにアクセスした際に、ログイン済みのKerberosチケットを自動的に渡すようになります。それでも解決しない場合は、再起動やキャッシュのクリアが有効な場合があります。—

Chrome で Kerberos を利用する

Chrome は IE の構成を基盤として使用するため、最初のステップとして、IE が正しく設定されていることを確認します (上記)。ただし、特に古いバージョンの Chrome では、Kerberos ドメインを明示的にホワイトリストに追加する必要がある場合もあります。 – コマンドラインで、次のフラグを使用して Chrome を起動できます: plaintext –auth-server-whitelist=”*.woshub.com” –auth-negotiate-delegate-whitelist=”*.woshub.com” – より永続的な修正を行うには、レジストリを使用して次のポリシーを設定します: HKLM\SOFTWARE\Policies\Google\Chromeに移動し、DWORD 値を作成または編集します: – AuthServerWhitelist = `*.woshub.com` – AuthNegotiateDelegateWhitelist = `*.woshub.com` – これらの設定を適用した後、Chrome を再起動します。 – また、bash klist purge ( Microsoft のガイドより) を使用して Kerberos チケットをクリアしてから、ブラウザを更新することを忘れないでください。 —

Firefox で Kerberos チェックをパスさせる

Firefox では処理が異なり、IE のシステム設定を使用しないため、信頼するサイトを明示的に指定する必要があります。 – Firefox で、about:configに移動し、「リスクを受け入れる」をクリックします。 – `network.negotiate-auth.trusted-uris` を検索し、自分のドメインに設定します (例: プレーンテキスト https://*.woshub.com) – `network.automatic-ntlm-auth.trusted-uris` についても同じ操作を行います。両方を同じ値に設定しても問題ありません。 – FQDN の問題を回避するには、`network.negotiate-auth.allow-non-fqdn` を有効にして `true` に設定します。 – それでも Firefox が Kerberos チケットを渡さない場合は、チケット キャッシュを再確認します (bash klist ticket)。または、ログインした資格情報が実際に取得されているかどうかを確認します。 —

正直、ちょっと変な感じですが、これらの調整をすべて済ませると、ブラウザはKerberos認証情報をスムーズに渡すようになることが多いです。なぜうまくいくのかは分かりませんが、設定によっては再起動やキャッシュ/klistチケットのクリアだけで動作することもあります。それから、ブラウザのアップデートは必ず少しの間、動作を不安定にします。忍耐が鍵です。

まとめ

  • サイトが IE および Firefox のローカル イントラネット ゾーンにあることを確認します。
  • IE のセキュリティ設定を確認します: 統合 Windows 認証を有効にします。
  • Chrome の場合は、コマンド ライン フラグまたはレジストリ ポリシーを微調整して、ドメインをホワイトリストに登録します。
  • 何か問題が発生した場合や更新されない場合は、`klist purge` を使用してチケット キャッシュをクリアします。
  • 実際に何が送信されるかを確認するには、Fiddler や `klist ticket` などのツールを使用してテストします。

まとめ

ブラウザでKerberosを動作させるのは必ずしも簡単ではありませんが、少しの忍耐と適切な設定があれば、イントラネットでのSSOはシームレスになります。場合によっては、1つの分かりにくい設定がすべてをブロックしているだけなので、諦めないでください。この方法が誰かの頭痛の種を少しでも軽減できれば幸いです。この方法が役に立ち、ブラウザが2分ごとに認証情報を要求するのがなくなることを祈っています。