Windows-Server-2008-R2

帶有 Windows 身份驗證的 Microsoft 應用程序請求路由

  • November 19, 2012

我在嘗試讓 Windows 身份驗證在使用 Microsoft 應用程序請求路由的環境中工作時遇到問題,並希望有人能提供幫助。

我遇到的問題是只有一些請求經過身份驗證,而其他請求則因 401 錯誤而失敗。我遵循了在http://blogs.msdn.com/b/webtopics/archive/2009/01/19/service-principal-name-spn-checklist-for找到的 Web Farm 指令中執行 IIS 7.0 的特例-kerberos-authentication-with-iis-7-0.aspx無濟於事。

我目前的伺服器設置如下所示:

ARR

  • 在 Windows 2008 R2 上使用 IIS 7.5 設置了 IIS 共享配置的兩台伺服器
  • 為預設網站啟用匿名身份驗證

網路農場

  • 在 Windows 2008 R2 上執行 IIS 7.5 的兩台伺服器
  • 三個網站使用埠綁定來區分虛擬主機。使用的埠是 8000、8001 和 8002
  • Windows 身份驗證的應用程序池都使用公共域帳戶
  • SPN 添加到域帳戶http/<virthalhost-name>:<port-number>http/<virtualhost-name>.<fully-qualified-domain>:<port-number>

當身份驗證工作/失敗時,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

第二個要求/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

在第三個請求之後,我從 IIS 獲得了 401 頁面。

獲取失敗請求的網路數據包擷取,並檢查 Http 請求標頭中的 kerberos 身份驗證令牌。如果您期待 kerberos 令牌但它不存在,則問題可能不在於您的伺服器。

我假設您因為 SPN 清單而期待 kerberos。

有關詳細資訊,請參閱以下內容:

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

引用自:https://serverfault.com/questions/450171