0

在 Azure 配置中访问 ADFS 的 REST API 时,我看到了奇怪的行为。

假设我使用 OpenSSl 或DigiCert之类的工具来测试我的站点是否返回了正确的证书。例如:

openssl s_client -connect adfs.{mydomain}.com:443

多次运行此操作将交替返回正确的证书和错误的证书。

配置如下:

  1. ADFS、WWW 和 ADRMS 的 CNAMES 已在 DNS 中创建,将它们指向 Azure 公共主机 {mydomain}testsvc.cloudapp.net。
  2. 已在面向 Internet 的网络服务器上创建并安装了 SAN 证书
  3. 主题名称:www.{mydomain}.com
  4. 主题备用名称:adfs.{mydomain}.com、adrms.{mydomain}.com、www.{mydomain}.com
  5. 在网络服务器上运行“Netsh http show sslcert”会显示 adfs 和 adrms 的正确证书主机名:端口
  6. 安装了 WebApplicationProxy 以允许我访问 adfs.{mydomain}.com/adfs/oauth2/xxx。

如果我运行一个稍微不同的测试:

openssl s_client -connect adrms.{mydomain}.com:443

然后,我也交替获得不同的证书。我已经确定边缘服务器提供了正确的证书,而 adrms 服务器提供了“坏”的证书。事实上,该证书真的没问题,只是不应该将它提供给要求 adfs.{mydomain}.com 的人。

那么,为什么对 adfs 的连接请求会交替到达边缘服务器和 adrms 服务器?我现在该去哪里解决这个问题?我承认我对 WebApplicationProxy 以及如何通过边缘服务器引导所有流量(包括 adrms 流量)知之甚少。

我可以通过私信提供一个真实的 URI 来演示问题。

另外:我怀疑是负载均衡器,因为我的网络日志有很多来自“负载均衡器代理”的请求。但是,我找不到配置的。我用过:

Get-AzureInternalLoadBalancer
Get-AzureRMLoadBalancer

也不返回任何东西。

4

1 回答 1

0

好吧,在发布我的问题之后,我就解决了这个问题。

我使用的是“经典”管理控制台。我切换到 portal.azure.com 来管理我的部署。当我导航到边缘服务器和 adrms 服务器时,我发现它们都是负载平衡集的一部分。我不确定为什么 PowerShell 脚本没有显示这一点。

为了解决这个问题,我不得不将它们从 LB 集中删除并为边缘服务器重新创建端点。

步骤是:

  1. 转到管理门户。(portal.azure.com)
  2. 选择虚拟机
  3. 单击我的 adrms 虚拟机
  4. 单击负载平衡集
  5. 单击负载均衡器
  6. 点击“离开”
  7. 对边缘虚拟机执行相同的步骤
  8. 对于边缘 VM,为端口 443 添加一个新端点

这是因为边缘服务器还处理重定向到 adrms 服务器的流量。

我希望这可以避免某人头疼。

于 2016-07-07T18:20:37.373 回答