使用 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 服务器的 Active Directory 属性,以便信任它进行委派。这可以从 AD 用户和计算机中的 ARR 服务器对象的属性中进行设置。在委派选项卡上,选中“信任此计算机委派任何服务(仅 Kerberos)”单选按钮。

关于授权的讨论可以在这里找到这里

相关内容