2017-01-30 11 views
0

Мы запускаем ADFS 3 на Windows Server 2012 R2 и используем библиотеку C3 ADAL C3 для получения токена аутентификации из ADFS для нашего пользовательского приложения .NET. Идея состоит в том, чтобы использовать ADFS для обеспечения аутентификации AD наших пользователей в наших веб-интерфейсах .NET Core с использованием того же метода веб-стандартов, является ли клиентское приложение .NET-приложением или ReactJS-приложением.Почему аутентификация ADFS с использованием ADAL никогда не требует от пользователя ввода учетных данных?

Приложения являются внутренними приложениями LOB, и все пользователи являются внутренними корпоративными пользователями, которые вошли в AD через Windows при использовании приложения. Аутентификация, похоже, работает в том, что ADFS вызывается и предоставляет токен JWT для вызывающего пользователя, и этот токен успешно проверяется веб-API.

Что касается меня, то, когда аутентификация запускается для веб-API, окно браузера замигает, но никогда не делает паузы, чтобы заставить пользователя пройти аутентификацию - ADFS просто отвечает токеном для пользователя. Я ожидал, что пользователи должны будут аутентифицироваться с их именем пользователя и паролем, по крайней мере, в первый раз и сразу после смены пароля.

Является ли это ожидаемым поведением и почему? This answer относится к другому вопросу, но подразумевает, что в этой ситуации будет использоваться интегрированная проверка подлинности Windows (IWA), если ADFS не настроена на принудительное использование аутентификации на основе форм (FBA).

Может ли кто-нибудь подтвердить, что это то, что происходит?

Спасибо, Peter

+0

Вы можете просто использовать Telerik Fiddler для проверки заголовка авторизации в HTTP-запросе для подтверждения. –

ответ

1

Если вы работаете в ADFS сервер в домене среды (который я предполагаю, что Вы делаете, так как ADFS является своего рода Windows-только-МОГ). Затем ваши пользователи испытывают SingleSignOn через Kerberos.

Так что в основном происходило следующее:

  • Пользователи Browser (UA = пользовательский агент) открывает
  • UA грузы ADFS, обеспечивая это агент пользователя заголовка
  • AD FS вдыхает этот заголовок для настроенные значения (PS> Get-ADFSProperties для получения дополнительной информации)
  • AD FS видит IE или любой другой WIA-браузер с поддержкой (вы можете сделать Chrome и FF работать тоже)
  • AD FS начинает Negotiation Kerberos с UA
  • вопросы AD FS билет

пользователя можно принудительно аутентификации пользователей, установив соответствующую политику или отключить WIA на AD FS (включить FBA, или вы не будете проверять подлинность любым способом).
Вы также можете позвонить в AD FS через прокси-сервер WAP - это также заставит FBA (при условии, что у вас нет аутентификации устройства)

Тем не менее - почему вы повторно аутентифицируете пользователя в ADFS? Он уже предоставил свой пароль машине для окон, на которой он сидит, - если вы вынудите reauth вы потерять приятный и гладкий опыт с одним знаком. Вы ничего не получите, попросив пользователя снова. Если вы хотите, чтобы «более безопасная» развернула двухфакторную аутентификацию. У AD FS 2016 есть модули для этого.

Обновление - только для уточнения для других:
AD FS должен автоматически отступать к FBA (если не настроен в противном случае), если браузер не поддерживает WIA!

+0

Спасибо Томасу, это в значительной степени то, что я думал, что происходит. Причина, по которой я использую ADFS, заключается в том, что мы будем запускать наши API-интерфейсы .NET Core на серверах Linux, поэтому без IIS на бэкэнде обычные окна SSO не будут работать. Я рад, что WIA сделает плагин ADFS более плавным. Мы также можем в будущем перейти на поддержку различных служб аутентификации. – Peter

+0

Ах, извините - мой последний абзац был о том, «зачем повторно проверять их», а не «почему вы используете AD FS». Я думаю, что ADFS делает прочную работу для сценариев WS-Fed, SAML и Basic OIDC. – TGlatzer

+0

Я понял. Это связано с тем, что я не хочу полагаться на то, чтобы Windows с обоих концов превращалась в мою инфраструктуру. – Peter