2016-06-22 20 views
0

Windows認証を使用するイントラネットWebサイトがあります。 AJAXを使用すると、Windows認証も使用する同じドメインのWebサービスが使用されます。私はリバースプロキシ(ロードバランシングなし)としてARRを使用しており、Windows認証をWebサービスに渡すようにしています。ARRがWindows認証を通過できない

リバースプロキシは基本認証では正常に動作しますが、Windows認証では正常に動作します。

私の物理的なセットアップは、ウェブサイト、Web APIサービス、およびARRがすべて同じサーバー上にある単一のWindows 2008 R2サーバーです。すべてが同じマシン上にあるので、私はServer Farmの下に何も追加していません。

ウェブサイトとWeb APIサービスをWindows認証のみに設定し、サーバーとデフォルトのWebサイトを匿名のみを許可するように設定しました(いくつかの記事では、ARRは匿名を使用する必要があります)。 Windows認証が設定されているサイトのIIS構成でuseAppPoolCredentials = trueを設定しました。

Kerberos/SPNの問題を避けるために認証プロバイダをNTLMに制限しようとしましたが、Kerberosが使用されるようにネゴシエートも試みました。

Kerberosの場合、ARR、外部Webサイト、および内部WebサービスによってアプリケーションプールIDとして使用される単一ドメインアカウントを使用して、サーバーNetBIOSおよびFQDN、WebサイトおよびWebサービスFQDMのSPNを設定しました。 (例:setspn -s HTTP/domain/account)

私は直接内部のWebサービスを参照することができ、Windowsの認証は成功しますが、Webサイトを使用すると、Webサービスに対する書き換えられた要求は401.1エラーを受け取ります。 Fiddlerでは、ブラウザから外部Webサイトへの3つのリクエストを見ることができます。最後の2つはヘッダーで私のウィンドウ認証を持っています。サーバー上で、内部WebサービスのIISログには、要求に関するWindowsアカウント情報が表示されません。

ARRがWindowsの資格情報をサービスに渡すことができないのはなぜですか?

答えて

0

ARRプロキシのIISコンテキストでは、Windows認証を使用しないでください。それは匿名に設定する必要があります。プロキシされるバックエンドサービスは、Windows認証を使用できます。

関連する問題