Установите Microsoft Dynamics CRM 2016 с IFD и ADFS на одном сервере, используя порт 443
Я пытаюсь установить Microsoft Dynamics CRM 2016 с IFD (развертывание через Интернет) и ADFS на одном сервере (Windows Server 2012 R2)
ADFS работает и, кажется, работает нормально. Я могу получить метаданные на https://sts.mydomain.com/FederationMetadata/2007-06/FederationMetadata.xml
Я настроил Dynamics CRM IFD для использования следующих параметров:
Домен сервера веб-приложений: mydomain.com
Домен веб-службы организации: mydomain.com
Домен веб-службы обнаружения: discovery.mydomain.com
Внешний домен, где расположены серверы Internet-Facing: auth.mydomain.com
Проблема начинается при попытке установить доверие проверяющей стороны в ADFS.
При использовании адреса https://auth.mydomain.com/FederationMetadata/2007-06/FederationMetadata.xml в качестве адреса метаданных федерации он выбирает неправильные метаданные.
Он выбирает метаданные ADFS вместо метаданных CRM.
Единственный способ заставить это работать, если я установлю другой порт для конечных точек CRM, например, добавив:444 к настройкам CRM IFD.
Проблема с этой конфигурацией заключается в том, что она будет использовать нестандартный HTTPS-порт 444 для веб-сайта Dynamics CRM, а также на этапе аутентификации с использованием auth.mydomain.com:444.
Есть ли способ, чтобы ADFS и Dynamics CRM работали по HTTPS через порт 443?
1 ответ
Пытался возиться с резервированием URL, но безуспешно.
Попытка добавить еще один IP к сетевому интерфейсу снова безуспешно.
Кажется, что ADFS всегда пытается привязаться к 0.0.0.0 вместо определенного IP. Если резервирование отсутствует, ADFS не будет связываться вообще.
Я также попробовал то, что предложил Томас, но 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 ex:
<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.