我正在尝试在 Windows Server 2016 上运行的 ADFS 4.0 场中的主服务器上安装 Azure AD Connect ADFS 健康代理。
安装成功完成,但配置错误:
Register-AzureADConnectHealthADFSAgent : Could not query the MEX on http ports: 443 in hosts: localhost
At line:1 char:190
+ ... gent\PowerShell\AdHealthAdfs; Register-AzureADConnectHealthADFSAgent}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Register-AzureADConnectHealthADFSAgent], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Identity.Health.Adfs.PowerShell.Configuration
Module.RegisterADHealthAdfsAgent
现在我通过谷歌运行了这个错误,它告诉我这可能是一个STS 证书问题,所以我已经按照那里指出的文章进行了检查,没有问题,没有其他意外或不正确的证书指纹可见,除了在 ADFS 4.0 上,您无法更改 ADFS 场中辅助服务器上的证书,因此即使只是尝试重新注册证书也无济于事。
根据 maweeras 的建议运行进一步的诊断:
PS C:\Users\administrator.INTERNAL> $error[0] | fl * -f
PSMessageDetails :
Exception : System.InvalidOperationException: Could not query the MEX on http ports: 443 in hosts:
localhost
at Microsoft.Identity.Health.Adfs.PowerShell.ConfigurationModule.AdfsServiceExaminer.GetAdfs
FarmNameFromSts()
at Microsoft.Identity.Health.Adfs.PowerShell.ConfigurationModule.AdfsServiceExaminer.Compute
ServiceSignature()
at Microsoft.Identity.Health.Common.Clients.PowerShell.ConfigurationModule.RegisterADHealthA
gent.ProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()
TargetObject :
CategoryInfo : NotSpecified: (:) [Register-AzureADConnectHealthADFSAgent], InvalidOperationException
FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Identity.Health.Adfs.PowerShell.ConfigurationModule.
RegisterADHealthAdfsAgent
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}
安装/配置日志似乎没有告诉我们任何不存在的内容。我可以在 Web 浏览器中通过其 FQDN 浏览到 MEX 端点。
似乎缺少 TLS 的 localhost 特定 SNI 绑定。get-adfssslcertificate 应该显示用于实际服务的主机名和 localhost 的 443 绑定。
如果丢失, set-adfssslcertificate 是修复丢失绑定的方法。这将允许健康代理安装成功。