Можно ли изменить ADFS для использования учетных данных NTLM, если они есть, для аутентификации пользователя?

Мы используем CRM 2011 с ADFS 2.0. Наши пользователи хотели бы, чтобы один URL-адрес использовался как для внутренних, так и для внешних пользователей, но с конфигурацией IFD в CRM 2011 это невозможно, если мы также хотим использовать автоматический вход с использованием текущих учетных данных пользователей NTLM. Можно ли изменить страницу входа в ADFS, чтобы определить, присутствуют ли учетные данные NTLM и получены ли они из правильного домена, и если это так, автоматически войти в систему и перенаправить их обратно в приложение с правильными маркерами ADFS?

Достаточно ли площади поверхности API и нужных типов, чтобы мы могли изменить страницу входа таким образом, или API продажи билетов закрыт до такой степени, что мы не можем сделать это программно?

Комментарий. Мы знаем, что с помощью UAG SP1 мы можем принудительно выполнить вход в ADFS с учетными данными NTLM, но наш клиент не планирует развертывать UAG в ближайшее время.


person chris.w.mclean    schedule 31.01.2012    source источник
comment
@chris-w-mclean Уточняющий вопрос: внутренние и внешние пользователи = пользователи, которые могут получить доступ к Active Directory AD FS, и пользователи, которые не могут?   -  person MarnixKlooster ReinstateMonica    schedule 29.02.2012
comment
да. Внутренний означает пользователей, которые вошли в систему на машинах-членах домена и, следовательно, имеют действительные учетные данные ntlm. Внешними будут пользователи, которые обращаются к сайту и либо не вошли в систему на компьютерах домена, либо вошли в систему на машинах домена, но не могут получить доступ к объявлению из-за того, что находятся за пределами брандмауэра.   -  person chris.w.mclean    schedule 06.03.2012


Ответы (1)


Ваш вопрос мне не очень понятен, но где-то здесь может быть ответ.

Как описано на странице Обзор обработчика аутентификации, AD FS 2.0 имеет пару механизмов аутентификации. Какой из них выбран, определяется на основе того, что «запрос аутентификации допускает». Речь идет не о HTTP-запросе из браузера пользователя, а о запросе на вход, поступающем от проверяющей стороны (CRM 2011 в вашем случае). И нет отступления: для каждого из четырех обработчиков «[I]f вызывается, он не передает запрос следующему обработчику».

Так, например, если запрос на вход WS-Federation из CRM в AD FS (отправленный через браузер) говорит, что встроенная проверка подлинности Windows в порядке, и если у вас есть встроенный обработчик в верхней части списка <localAuthenticationTypes>, то IWA всегда используется для аутентификации пользователя (так что либо NTLM, либо Kerberos, в зависимости от возможностей браузера/сервера). Не имеет значения, является ли пользователь «внутренним» или «внешним».

Вы хотите использовать разные методы аутентификации для разных пользователей? Если это так, то единственный способ повлиять на выбранный метод аутентификации — у источника: теоретически CRM может адаптировать свой запрос аутентификации на основе некоторой информации от пользователя или браузера пользователя. Если CRM основан на WIF, вы можете выполнять манипуляции с запросами в Событие WSFederationAuthenticationModule.RedirectingToIdentityProvider. Коллеги успешно манипулировали запросами на вход WIF в SharePoint, используя этот механизм.

Вы всегда хотите автоматический вход в систему (в отличие от получения диалогового окна учетных данных Windows из браузера)? По нашему опыту, существует множество причин, по которым согласование IWA может не убедить сервер в том, что учетные данные Windows клиента действительно действительны, что заставляет браузер явно запрашивать учетные данные. Самая очевидная причина в том, что браузер не может получить доступ к AD сервера, но есть и другие.

person MarnixKlooster ReinstateMonica    schedule 29.02.2012
comment
По сути, наш клиент хочет, чтобы страница входа определяла, есть ли у пользователя учетные данные в правильном домене, а затем использовала эти учетные данные, если это возможно. CRM допускает как интегрированный вход, так и вход на основе форм в adfs, но использует разные URL-адреса, чтобы различать, какой дескриптор аутентификации запрашивать. Наш клиент предпочел бы не использовать два URL-адреса: один для внутренних (интегрированных) и один для внешних (на основе форм) клиентов. - person chris.w.mclean; 06.03.2012