AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.08.2020, 21:33   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
? Выполнение действия от имени пользователя в кастомном сервисе
Есть сервер с развернутым CRM 2016.
На отдельном сервере размещается сайт с WebAPI (поддерживает работу фронта CRM в части сложной бизнес-логики).

Для этого кастомного сайта включена Windows аутентификация, все сотальные способы аутентификации выключены.
Основная масса логики выполянется на сайте от имени пользователя, указанного в Application Pool (т.е. без каких либо извратов). В Web.config есть строка адреса OrganizationService, а пользователь AppPool имеет права системного администратора... И все это прекрасно работает.

Появилась необходимость выполнять часть кода от имени того пользователя, который стучиться на этот кастомный сайт (естественн, пользователь является пользователем CRM).

Казалось бы - все просто...
Код:
using (var impersonationContext = ((WindowsIdentity)User.Identity).Impersonate())
{
    var credentials = new ClientCredentials();
    credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
    var service = new OrganizationServiceProxy(serviceUrl, null, credentials, null);
    ...
}
Делаешь имперсонализацию, потом создаеш экземпляр сервиса (который будет создан уже от имени нужного пользователя).
И когда CRM и кастомный веб-сервис находятся на одном сервере (в одном IIS) оно таки работает.
А вот когда CRM и сервис разнесены по разным серверам - получаю ошибку "The caller was not authenticated by the service".

Вычитал в интернетах, что проблема может быть связана с неким Double-Hop.
Предлагается решение - использовать Kerberos, но там чета SPN настрой, IIS настрой, даже браузер настрой...

Собственно вопрос... Сталкивался ли кто-то с такой проблемой и действительно ли она решается использованием Kerberos или как то можно решить ее по другому?
__________________
Моё: Cайт - Код - Dynamics365 Tools
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расширенный поиск от имени другого пользователя Otti Dynamics CRM: Разработка 3 31.05.2017 09:44
Microsoft CRM 2015: разрешить подготавливать письма в быстрой кампании от имени другого пользователя Drakonchik2706 Dynamics CRM: Администрирование 1 02.11.2015 15:17
Кеширование логина пользователя при смене доменного имени Eugene.Ostroukhov Dynamics CRM: Разработка 4 05.03.2013 11:05
Как найти пользователя в CRM по его Имени в домене? SuBwooFer Dynamics CRM: Разработка 1 10.01.2010 18:25
Ошибка после изменениями имени пользователя в AD sergeyjb Dynamics CRM: Администрирование 20 29.10.2008 18:27

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:38.