使用 ARR 對 Lync 2013 內部 Web 服務進行負載平衡時驗證失敗

使用 ARR 對 Lync 2013 內部 Web 服務進行負載平衡時驗證失敗

我在 Windows Server 2012 R2 上使用應用程式請求路由 3.0 對 Lync 2013 前端池上的內部 Web 服務進行負載平衡;我是不是使用它來反向代理外部 Web 服務(有一個單獨的反向代理),我僅將其用作負載平衡器,因為該客戶沒有任何其他可用的負載平衡解決方案。

我已將 DNS 配置為將所有 Lync 內部 Web 服務 URL 指向 ARR 伺服器,我已定義一個伺服器場,其中包括池中的兩個 Lync 前端伺服器,並且已將 ARR 配置為路由所有 HTTP 和 HTTPS 請求到此場,無論URL 或主機名稱為何; ARR 伺服器上 IIS 中的預設網站僅配置為匿名驗證。

請求已正確路由,但對於所有經過驗證的 Lync Web 服務(很多),身份驗證都嚴重失敗。

我確定問題出在 Kerberos 驗證上,透過 Google 快速搜尋發現很多人在使用 Kerberos 驗證透過 ARR 發布經過驗證的網站/服務時遇到身分驗證問題;我嘗試在 Lync 伺服器上的 IIS 中手動停用“協商”身份驗證方法,僅保留“NTLM”,並且使用此設定一切正常;這確實表明問題實際上是由 Kerberos 身份驗證引起的。但是,完全不支援在 Lync 伺服器上修改 IIS 配置,並且當發生配置更新或安裝 Lync 更新時,任何手動更改都可能會重置,因此我不能僅以這種方式手動配置 IIS。

我正在尋找一種(支援!)的方法,當請求透過 ARR 伺服器路由時,可以在內部 Lync Web 服務上進行身份驗證。

這可以做到嗎?如何?

答案1

經過一番努力,我們沒有找到透過 ARR 進行 Kerberos 驗證的方法;作為解決方法,我們只是從網域中刪除 ARR 伺服器:這迫使它完全跳過 Kerberos 身份驗證,並且一切立即開始工作。

我接受這個答案是因為它解決了問題並讓我們使用 ARR 來平衡 Lync 的內部 Web 服務的負載,但是如果/當有人提出一個實際上可以使 Kerberos 身份驗證工作的答案時,我會很高興接受它。

答案2

Kerberos 要求為來自 ARR 伺服器的請求 URL 設定執行 lync 的服務帳戶的 SPN。您需要使用以下命令設定伺服器名稱和內部 FQDN 的 SPN:

setspn -S http/<servername> domain.com\<Svc_Acct>
setspn -S http/<servername>.domain.com domain.com\<Svc_Acct>

可以找到非常好的 SPN 總結這裡

此外,您還需要修改 ARR 伺服器的活動目錄屬性,以便信任它進行委派。這是透過 AD 使用者和電腦中 ARR 伺服器物件的屬性設定的。在「委派」標籤上,勾選「信任此電腦委派任何服務(僅限 Kerberos)」單選按鈕。

可以找到關於委託的討論這裡

相關內容