このKerberos / ADセットアップは可能ですか?


10

少し複雑なIDAM設定があります。

ここに画像の説明を入力してください

つまり、エンドユーザーのマシンとブラウザは親ADのあるネットワークにあり、Jettyベースのアプリケーションとそれが通信できるAD(ローカルAD)は別のネットワークにあります。

2つのADの間には双方向の信頼があります。親ネットワークのブラウザは、信頼済みサイトにローカルドメインを持っています。

Jettyサーバーの設定は次のとおりです。

  • ローカルADのプリンシパルに対して生成されたキータブファイルを使用する
  • ローカルADで定義されたユーザーの下でWindowsサービスとして実行されている
  • レルム、ドメイン-レルムマッピング、およびkdcは、ローカルADのドメインに対して定義されます
  • それはspnegoを使用します-isInitiatorはfalseに設定されます。doNotPromptはtrueです。storeKeyはtrueです

問題は:

  • テストとして、(すなわちローカルADにリンクされている)、ローカルネットワーク内のブラウザからサーバーにアクセスすると動作します私は、HTTPトラフィックに正しいKerberosのネゴシエーションを見ることができ、Kerberosのデバッグ情報がログに表示され、ユーザーは自動的に署名されています- 。鮮やかさ。
  • ただし、親ネットワーク内のブラウザーからサーバーにアクセスする(これは、ユーザーが操作する方法です)ことができません。ブラウザは401 unauthを取得しますが、資格情報を要求します。資格情報を入力すると、空白の画面が表示されます。次に、アドレスバーをクリックしてEnterキーを押すと、資格情報がリモートADとローカルADのどちらであるかに応じて、次のいずれかが行われます。

    • ローカルADの資格情報は、ログに最初からKerberosを使用して正常にログインします(GET要求、401非認証応答、Kerberosヘッダー要求など)
    • リモートADの資格情報がログインしていない(GETリクエスト、401 UNAUTH応答は、何がNTLMヘッダーのようになります。Authorization: Negotiate <60 or so random chars>

いずれにせよ、それが促しているという事実は間違っています!

これらの症状の説明はありますか?私たちが持っているセットアップは私たちが望むことをすることができますか?

上記の説明については何が間違っている可能性があるかについては、私が行ったように、Jettyサーバーに関して述べた構成はすべて正確である必要があります。詳細をお知らせいたします。ADまたは親ネットワークブラウザーのいずれかに関する構成は疑わしい可能性があります。これは、私の制御下になく、自分で確認するのではなく、報告された構成を持っているためです。


_kerberos._tcp.OurITOrgDomainおよび_kerberos._tcp.partentdomainのdns結果にリストされているサーバーのブラウザー間でTCP / 88が開いていますか?Jettyサーバーで認証する必要がある資格情報を使用して、マシン「ブラウザ」からkinitを実行できますか?
ジェイコブエヴァンス

roguelynn.com/words/explain-like-im-5-kerberosは、ファイアウォールが問題を引き起こしている可能性のある点に光を当てるかもしれません(再び、クライアントから両方のDCに88)
Jacob Evans

変数が多すぎて、ネットワークキャプチャを行わずに詳細なステップバイステップの説明を行うことはできません。次に、SPNが適切にセットアップされているかどうか、またはブラウザーがサイレント認証を行うように構成する必要があるかどうかをすぐに確認できます。
user2320464

回答:


3

パケットキャプチャが表示されないので、アプリケーションを実行しているアカウントにHTTP / www.website.com SPNを登録する必要があると思います。Microsoftのディレクトリサービスチームは、次のURLでこのトピックに対処する優れたマルチパートの投稿を持っています。

https://blogs.technet.microsoft.com/askds/2008/05/29/kerberos-authentication-problems-service-principal-name-spn-issues-part-1/

各環境のクライアントからパケットキャプチャ(netmon、wireshark)を実行して、検索されているSPNを特定します。それが決定したら、setspn cmdを使用して、アプリケーションを実行しているアカウントにそれを登録します。

FWIW、KerberosはLAN上でのみ機能します。ドメインコントローラーにアクセスできない場所で誰かがアクセスする必要がある場合は、ShibbolethやADFSなどのSSOを検討する必要があります。

編集:@ alex-hで述べたように、ブラウザーはKerberosを介してサイレント認証するように構成する必要があります。

  • Internet Explorer -TechNetの記事は特定のアプリケーション向けではありませんが、手順は同じです。
  • Firefox -IEリンクと同じですが、完全に一致するわけではありませんが、手順は同じです。

最後に、これはMicrosoft Sharepointの展開に共通の問題です。ユーザーがドメインに認証されると、Kerberosを介したSSOがサイレントで実行されることを望んでいます。したがって、上記の回答で問題が解決しない場合は、次のようなフォーラムを確認してください。

Chrome、Safari、FireFoxのKerberos


良い答えです、私のものより良いです!
Alex H

両方のおかげで-リンクされたドキュメントを読むのに数日かかりますが、質問など何もしていません!
ロバートグラント

ええと、実際にはそうではありませんでしたが、本当の答えは別の答えとして追加する非常に珍しいケースなので、おそらくこの答えを受け入れるのが最善だと思います。どうもありがとうございました!
ロバートグラント

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.