0

Windows Server 2008 で NodeJS サーバーを実行しています。

サーバーはあまり機能しませんが、401、WWW-Authenticate Negotiation のヘッダーを設定します。これは、彼のデフォルトの Kerberos 認証を使用するか、利用できない場合は NTLM を使用することができます。

フィドラーをダウンロードしたところ、サーバーにアクセスしようとすると、コンピューターがサーバーと同じドメインにあり、コマンドを実行すると、Kerberos ではなく NTLM (ユーザー名とパスワードの入力を求める) で認証しようとすることがわかりました。 「klist」は、彼がトークンを持っていることを示しています。これは、彼がすでにKerberosで認証されていることを意味します(そうではありませんか?)。

私の質問は、NTLM ではなく Kerberos で認証するにはどうすればよいかということです。なぜ彼はそもそも NTLM に行くのですか?

何か案は?

4

3 に答える 3

1

クライアントはおそらくそのマシンのサーバー チケットを取得できません。Wireshark を使用して、KerberosTGS-REQメッセージを確認します。SO で同様の回答を検索してください。そのような状況ではすでに支援することができました。

于 2014-07-15T11:19:43.320 に答える
0

これは修正済みとしてマークされていないので、私のために働く解決策を追加すると思いました。YMMV 私の環境と同様に、信頼関係を持つ複数のフォレストがあります。

私の場合、ブラウザを実行している (したがって HTTP GET を作成している) ユーザーは DOMA にいましたが、Web サーバーは DOMB に参加していました。クライアントが の SPN を見つけようとしたとき、HTTP/webserver.domainb.example.comそれは DOMA で探していました。

私は、DOMA と DOMB の間に双方向の信頼関係が存在するため、DOMB を調べてそうすることを理解するだろうと誤って想定しました。残念ながらそうではなく、Configure Kerberos Forest Search Orderを実行する必要があります。これは、Windows 7 ではクライアントごと ([コンピューターの構成] → [ポリシー] → [管理用テンプレート] → [システム] → [Kerberos] → [フォレストの検索順序を使用])、または KDC ごと ([コンピューターの構成] → [ポリシー] → [管理用テンプレート] → [システム] → [KDC] → [フォレストの検索順序を使用]) で実行できます。 Windows サーバー 2008R2。

注: Wireshark を使用して TGS-REQ メッセージを探すようにというMichael-Oのアドバイスにより、KFSO 設定を見つけることができました。彼のおかげです。

于 2016-04-14T14:10:58.680 に答える
0

ほとんどの場合、Kerberos について調べる必要があります。AD (KDC) に対して認証されたことを証明する TGT (ticket granting ticket) を持っている可能性があります。インスタンス化された特定のサービス/サーバーの ST (サービス チケット) が引き続き必要です。http/サーバー名。これが機能するには、サービスに登録された SPN が必要です。SPN は、ST を復号化するアカウントに登録する必要があります。

ST を送信していないことを示す Fiddler は、ST を取得していないことを示しています。Fiddler だけでなく、sniffer が必要になる可能性があります。ポート 88 で、ワークステーションが KDC から ST を要求しようとして失敗し、NTLM にフォールバックすることがわかります。ST req が ST を返すのを見たいとします。

これは 2000 年のhttp://technet.microsoft.com/en-us/library/bb742431.aspxにもかかわらず、すばらしいスターターです。

より有意義なサポートが必要な場合は、アプリの URL、setspn -l を介した SPN 情報、およびサーバーのホスト名を確認する必要があります。

于 2014-07-15T15:04:15.397 に答える