在Azure配置中访问ADFS的REST API时,我看到奇怪的行为。
假设我使用OpenSSl或DigiCert之类的工具来测试我的网站是否返回了正确的证书。例如:
openssl s_client -connect adfs.{mydomain}.com:443
多次运行将交替返回正确的证书和错误的证书。
配置如下:
已在DNS中创建了用于ADFS,WWW和ADRMS的CNAMES,将它们指向{mydomain} testsvc.cloudapp.net,它是Azure公共主机。
已创建SAN证书并将其安装在面向Internet的Web服务器上
主题名称:www。{mydomain} .com
主题备用名称:adfs。{mydomain} .com,adrms。{mydomain} .com,www。{mydomain} .com
在网络服务器上运行“ Netsh http show sslcert”可显示adfs和adrms的正确证书主机名:端口
已安装WebApplicationProxy以允许我访问adfs。{mydomain} .com / adfs / oauth2 / xxx。
如果我运行稍微不同的测试:
openssl s_client -connect adrms.{mydomain}.com:443
然后,我也交替获得不同的证书。我确定边缘服务器正在提供正确的证书,而adrms服务器正在提供“不良”证书。实际上,该证书确实可以使用,只是不应将其提供给要求adfs。{mydomain} .com的人。
那么,为什么到adfs的连接请求交替到达边缘服务器和adrms服务器?现在我该去哪里寻找问题了?我承认我对WebApplicationProxy以及如何引导所有流量通过边缘服务器(包括adrms流量)了解甚少。
我可以提供真实的URI,以通过私人消息演示该问题。
另外:我怀疑负载均衡器,因为我的Web日志中有很多来自“负载均衡器代理”的请求。但是,我找不到一个已配置的。我用过:
Get-AzureInternalLoadBalancer
Get-AzureRMLoadBalancer
都不返回任何东西。
最佳答案
在发布我的问题之后,我就获得了突破,从而解决了问题。
我使用的是“经典”管理控制台。我切换到portal.azure.com来管理我的部署。当我导航到边缘服务器和adrms服务器时,我发现它们都是负载均衡集的一部分。我不确定为什么PowerShell脚本没有显示此信息。
为了解决该问题,我必须将它们从LB集中删除,然后重新创建边缘服务器的终结点。
这些步骤是:
转到管理门户。 (portal.azure.com)
选择虚拟机
点击我的adrms VM
单击负载平衡集
单击负载均衡器
点击“离开”
对边缘虚拟机执行相同的步骤
对于边缘虚拟机,为端口443添加新端点
之所以可行,是因为Edge服务器还处理将流量重定向到adrms服务器的问题。
我希望这可以使人免于头痛。
关于azure - Azure负载平衡器问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38250292/