web-dev-qa-db-ja.com

Windows認証を使用したMicrosoftアプリケーション要求ルーティング

Microsoft Application Request Routingを使用する環境でWindows認証を機能させようとすると問題が発生し、誰かが助けてくれることを期待していました。

私が遭遇している問題は、一部のリクエストのみが認証され、他のリクエストは401エラーで失敗することです。 Webファームでの実行の特殊なケースIIS 7.手順 http://blogs.msdn.com/b/webtopics) /archive/2009/01/19/service-principal-name-spn-checklist-for-kerberos-authentication-with-iis-7-0.aspx 役に立たない。

私の現在のサーバー設定は次のようになります。

[〜#〜] arr [〜#〜]

  • Windows 2008R2でIIS 7.5を使用してIIS共有構成でセットアップされた2台のサーバー
  • デフォルトのWebサイトで匿名認証がオンになっている

ウェブファーム

  • Windows 2008R2でIIS 7.5を実行している2台のサーバー
  • 仮想ホストを区別するためにポートバインディングを使用してセットアップされた3つのWebサイト。使用されているポートは8000、8001、および8002です。
  • Windows認証のアプリケーションプールはすべて、共通のドメインアカウントを使用します
  • http/<virthalhost-name>:<port-number>およびhttp/<virtualhost-name>.<fully-qualified-domain>:<port-number>のドメインアカウントにSPNが追加されました

IISログには、認証が機能している/失敗している場合、次のように表示されます。正しく理解していれば、すべてのリクエストにDOMAIN\User_Nameが表示されます。

2012-11-19 15:03:17 CLUSTER-IP-ADDRESS GET /home/stylesheets/techweb.landing.css - 8002 DOMAIN\User_Name ARR-Host-1-IP-ADDRESS 200 0 0 62
2012-11-19 15:03:17 CLUSTER-IP-ADDRESS GET /home/images/user-background-right.gif - 8002 - ARR-Host-1-IP-ADDRESS  401 2 5 0
2012-11-19 15:03:17 CLUSTER-IP-ADDRESS GET /home/images/user-background-left.gif - 8002 DOMAIN\User_Name ARR-Host-IP-ADDRESS 200 0 0 31
2012-11-19 15:03:17 CLUSTER-IP-ADDRESS GET /home/images/user-icon.png - 8002 - ARR-Host-1-IP-ADDRESS 401 2 5 0
2012-11-19 15:03:17 CLUSTER-IP-ADDRESS GET /home/images/user-icon.png - 8002 - ARR-Host-1-IP-ADDRESS 401 1 2148074248 0
2012-11-19 15:03:17 CLUSTER-IP-ADDRESS GET /home/images/application-icon.png - 8002 - ARR-Host-1-IP-ADDRESS 401 1 2148074248 0
2012-11-19 15:03:17 CLUSTER-IP-ADDRESS GET /home/images/user-background-right.gif - 8002 - ARR-Host-1-IP-ADDRESS 401 1 3221225581 15
2012-11-19 15:03:17 CLUSTER-IP-ADDRESS GET /home/images/building.gif - 8002 DOMAIN\User_Name ARR-Host-2-IP-ADDRESS 200 0 0 218

この問題の原因とその解決方法を知っている人はいますか?

[〜#〜]編集[〜#〜]

ネットワークキャプチャを実行するたびに、Negotiateヘッダーがサーバーに送信されているのがわかります。

最初のリクエスト/home

リクエスト

何もない

応答

Proxy-Support: Session-Based-Authentication
WWW-Authenticate: NTLM
WWW-Authenticate: Negotiate

2番目のリクエスト/home

リクエスト

Authorization: Negotiate YIGeBgYrBgEFBQKggZMwgZCgGjAYBgorBgEEAY....

応答

Proxy-Support: Session-Based-Authentication
WWW-Authenticate: Negotiate oRUwE6ADCgEDoQwGCisGAQ....

番目(および最後)のリクエスト/home

リクエスト

Authorization: Negotiate oTMwMaADCgEBoioEKE5UTE1TU1AAAQAAAJe....

応答

Proxy-Support: Session-Based-Authentication
WWW-Authenticate: NTLM
WWW-Authenticate: Negotiate

3番目の要求の後、IISから401ページを取得します。

1
Steve Platz

失敗したリクエストのネットワークパケットキャプチャを取得し、Kerberos認証トークンのHttpリクエストヘッダーを確認します。 Kerberosトークンを期待していて、それが存在しない場合、問題はおそらくサーバーにありません。

SPNチェックリストのため、ケルベロスを期待していると思います。

詳細については、以下を参照してください。

https://serverfault.com/a/440050/20701

2
Greg Askew