Показать сообщение отдельно
Старый 20.06.2014, 13:12   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
axforum blogs: Проблема внутренней (доменной) авторизации в CRM 2011/2013 при включенном IFD
Источник: http://axforum.info/forums/blog.php?b=8139
==============

Недавно я столкнулся с интересным глюком при настройке Internet Faced Deployment в CRM 2011 (аналогичный опыт есть и с 2013).

Настройка выполнялась строго по официальной инструкции (ныне включена в состав Implementation Guide), однако на финальном шаге - настройке IFD возникала проблема: переставала работать авторизация по внутреннему адресу системы.

Для тех кто не погружен в предметную область, я дам некоторые комментарии. Исторически сложилось, что публикация внутренних ресурсов во внешнюю сеть - это всегда геморрой. Причин тому несколько. В основном - интегрированные внутренние системы, взаимодействие с которыми может быть затруднено в случае доступа снаружи, и авторизация, которая внутри и снаружи может выполняться по разному (опять же касательно работы с интегрированными системами).

Различные системы, например CRM и SharePoint, используют для реализации задачи различные подходы. В случае SharePoint, для внешнего доступа, как правило, создается отдельный веб-сайт со своими настройками, который подключен к той же базе что и основной. Далее, через специальное решение типа Reverse Proxy он публикуется во внешнюю сеть. При этом рекомендуется использовать для внутреннего и внешнего доступа одно и то же имя.

В случае с CRM, использование одного и того же имени для внутреннего и внешнего доступа невозможно. Так как веб приложение у CRM одно, а не два, система понимает откуда идет запрос на основании запрашиваемого URL. Дополнительно, отличаются сами форматы этих адресов. Для внутреннего доступа используется формат:
X++:
https:<font color="green">//server.d...ization</font>
а для внешнего:
X++:
https:<font color="green">//oranizat....domain</font>
Иными словами, если URL не совпал с внутренним, система парсит его как внешний, так что все что соответствует маске *.domain система пытается парсить как имя организации.

Теперь к практике. Внутреннее имя системы (вне зависимости от того собираетесь вы использовать IFD/Claims авторизацию, или нет) задается в параметрах развертывания системы, которые доступны через Deployment Manager:

Вложение 348

Прошу вас обратить внимание, что по умолчанию в них указан порт. В данном случае это порт по умолчанию.

Начиная с CRM 2011, IFD конфигурация возможна только при использовании HTTPS, поэтому адреса служб будут выглядеть как-то так:
X++:
CRM.FIXRM.COM:443
Если писать их по аналогии с адресами по умолчанию.

Вот тут-то и кроется опасность: при включении и настройке IFD, нельзя указывать порт по умолчанию 443 во внутреннем имени сервиса.

Порт требуется указывать, только если система развернута на не стандартном порту, например:
X++:
CRM.FIXRM.COM:444
В противном случае,порт требуется не указывать:



Если же вы повторите мою ошибку, внутренний адрес будет восприниматься некорректно: система будет пытаться авторизовать пользователя через форму, при этом имя сервера будет восприниматься как имя организации.

Если в вашей конфигурации уже есть эта проблема, не забудьте после выполнения настройки перезагрузить IIS на сервере CRM и обновить метаданные конечных точек в консоли ADFS.


Источник: http://axforum.info/forums/blog.php?b=8139
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.