Я пытаюсь установить 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
Внешний домен, на котором расположены серверы с выходом в Интернет: 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?
Пытался возиться с резервированием 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.