我有一台安装了 ADFS-2.0 的服务器,上面有几个网站。其中一个网站是 Dynamics CRM,它在端口 443 上侦听特定 IP 地址。
Dynamics CRM 提供了一个用于配置目的的元数据文件,可用于配置与 ADFS 的中继方信任。它可以通过以下 URL 访问
https://auth.contoso.com/FederationMetadata/2007-06/federationmetadata.xml
问题是 ADFS-2.0 安装了一个服务,该服务在 urlacl 之后注册
也就是说访问该URL的结果https://auth.contoso.com/FederationMetadata/2007-06/federationmetadata.xml
是ADFS的元数据文件,而不是Dynamics CRM的元数据文件。
我试图删除默认的 urlacl 并添加(一次一个)
https://192.168.1.2:443/FederationMetadata/2007-06/ https://adfs.mydomain.com:443/FederationMetadata/2007-06/
但两者都不起作用。相反,ADFS 服务无法启动完成。
有没有办法将此服务绑定到 IP 地址?目前我只看到两种选择
将服务绑定到非标准端口。这会导致问题,因为这意味着 ADFS 网站也必须使用非标准 HTTPS 端口。
在不同的服务器上安装 ADFS-2.0(这是我最喜欢的替代方案 - 但并非在任何情况下都可行......)
答案1
我假设 Dynamics 有自己的网站,并且不使用默认网站。这可能完全不正确。
无论如何,如果它们是独立的站点,为什么不简单地设置 HTTPS 主机标头并确保默认站点和动态站点都明确分配或绑定到某个主机标头或 IP。您始终可以将多个 IP 分配给计算机上的同一 NIC。
IIS SSL 主机头命令:
appcmd set site /site.name:"Name of Website in IIS" /+bindings.[protocol='https',bindingInformation='*:443:Host Header']
答案2
我有完全相同的配置,也正在寻找类似的分辨率。经过大量搜索,我发现这这解释了在 443 以外的端口上启动 ADFS 的解决方法。不幸的是,我无法成功实现它,但我不确定问题出在我的特定配置上还是一般的解决方法上。
另外,我还没有尝试过urlacl
- 看来问题可能就在这里。使用netsh http show urlacl
查看 ADFS 添加的三个 URL。
所以如果有机会就尝试一下吧。
最后我选择了第二个选项 - 在不同的机器上安装 ADFS,这基本上是 MS 提供的解决方案。
答案3
我知道问题是关于在特定 IP 上绑定 ADFS,对此我无法帮助您。
这个问题也是几年前的问题,但我的答案仍然适用于想要在同一端口上运行 ADFS 和 Dynamics CRM 的人。
我可以说的是,我已经让 Dynamics CRM 2016 与 ADFS 在标准 HTTPS 端口 443 上一起工作。
您可以在这里看到完整的故事:使用端口 443 在同一台服务器上安装带有 IFD 和 ADFS 的 Microsoft Dynamics CRM 2016
基本上你可以使用 urlhttps://auth.contoso.com/Handlers/FederationMetadata.ashx获取 Dynamics 联合元数据,而不是https://auth.contoso.com/FederationMetadata/2007-06/federationmetadata.xml
或者,您可以更改 Dynamics CRM web.config 并在另一条路径上提供元数据。