Назад | Перейти на главную страницу

Установите 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
Внешний домен, на котором расположены серверы с выходом в Интернет: 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.