Windows-Server-2012-R2

使用埠 443 在同一台伺服器上安裝帶有 IFD 和 ADFS 的 Microsoft Dynamics CRM 2016

  • August 16, 2018

我正在嘗試在同一台伺服器(Windows Server 2012 R2)上安裝帶有 IFD(面向 Internet 的部署)和 ADFS 的 Microsoft Dynamics CRM 2016

ADFS 正在執行並且似乎工作正常。我可以在https://sts.mydomain.com/FederationMetadata/2007-06/FederationMetadata.xml上獲取元數據

我已將 Dynamics CRM IFD 配置為使用以下設置:

Web 應用程序伺服器域:mydomain.com

組織 Web 服務域:mydomain.com

發現 Web 服務域:discovery.mydomain.com

面向 Internet 的伺服器所在的外部域:auth .mydomain.com

當嘗試在 ADFS 上設置依賴方信任時,問題就開始了。

當使用地址https://auth.mydomain.com/FederationMetadata/2007-06/FederationMetadata.xml作為聯合元數據地址時,它正在獲取錯誤的元數據。

它正在獲取 ADFS 元數據而不是 CRM 元數據。

實現此功能的唯一方法是為 CRM 端點設置不同的埠,例如通過將 :444 附加到 CRM IFD 設置。

此配置的問題在於,它將為 Dynamics CRM 網站使用非標準 HTTPS 埠 444,並且在身份驗證階段使用 auth.mydomain.com:444

有什麼方法可以讓 ADFS 和 Dynamics CRM 在埠 443 上的 HTTPS 上執行?

試圖弄亂 URL 保留但沒有成功。

嘗試再次將另一個 IP 添加到網路介面,但沒有成功。

似乎 ADFS 總是嘗試綁定到 0.0.0.0 而不是特定的 IP。如果沒有預留,則 ADFS 根本不會綁定。

我也嘗試過 Thomas 的建議,但 ADFS 總是先擷取請求。(由於 URL 預訂)

我通過讓 Dynamics CRM 在另一個 URL 路徑上提供其元數據來實現它。

基本上我認為我可以使用 URL 重寫規則來做到這一點。

當我在 Dynamics CRM web.config 上發現這個時,我正要創建一個新規則

<rule name="FederationMetadataRule" stopProcessing="true">
 <match url="FederationMetadata/2007-06/FederationMetadata.xml" />
 <action type="Rewrite" url="/Handlers/FederationMetadata.ashx" />
</rule>

預設路徑:C:\Program Files\Microsoft Dynamics CRM\CRMWeb\web.config

您只需要將 url 更改為 FederationMetadata 以外的其他內容,例如:

<rule name="FederationMetadataRule" stopProcessing="true">
 <match url="FederationMetadataCrm/2007-06/FederationMetadata.xml" />
 <action type="Rewrite" url="/Handlers/FederationMetadata.ashx" />
</rule>

進行此更改後,您可以使用 URL https://auth.mydomain.com/FederationMetadataCrm/2007-06/FederationMetadata.xml添加信賴方信任

另一種選擇是使用 URL https://auth.mydomain.com/Handlers/FederationMetadata.ashx添加它

對於前者,您需要確保在更新 Dynamics CRM 時更改仍然存在。

後者似乎更好,因為您不需要修改 web.config 並且僅當 Microsoft 不記得更改處理程序名稱及其位置時。

無論哪種方式,最好在更新 Dynamics CRM 後進行檢查。

現在一切都在埠 443 上執行。

引用自:https://serverfault.com/questions/835040