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 [〜#〜]
ウェブファーム
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ページを取得します。
失敗したリクエストのネットワークパケットキャプチャを取得し、Kerberos認証トークンのHttpリクエストヘッダーを確認します。 Kerberosトークンを期待していて、それが存在しない場合、問題はおそらくサーバーにありません。
SPNチェックリストのため、ケルベロスを期待していると思います。
詳細については、以下を参照してください。