20.06.2014, 13:12 | #1 |
Участник
|
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, напишите личное сообщение администратору. |
|
|
|