SSO-аутентификация, объединяющая Kerberos, ADFS и Spring Security - PullRequest
1 голос
/ 08 апреля 2019

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

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

  1. Kerberos: это (предполагаемый) механизм аутентификации, который пользователи проходят аутентификацию при входе в систему с помощью своих профилей Windows. Я очень уверен в том, что в нем содержится явный список претензий для принципала, который нужно получить.
  2. ADFS: С моей точки зрения, службы федерации могут быть просто расширением Kerberos, обернув свой билет в более стандартный протокол SAML. На мой взгляд, это может помочь, если веб-приложение будет доступно внешней сети. Таким образом, я правильно сказал, что мне не нужно интегрировать приложение в механизм единого входа? Или это все еще будет необходимо в качестве средства интеграции.
  3. Oracle WebLogic: это выбранный сервер приложений, на котором будет размещаться веб-приложение. Кажется, есть способы настроить WLS, чтобы быть частью области Kerberos. Основным моментом интеграции является таблица ключей. Здесь я нашел старый пример, но, похоже, то же самое нужно сделать и в WLS 12c: http://www.ateam -oracle.com / kerberos-and-weblogic-server-on-windows- шаг за шагом /
  4. SPNEGO: похоже, это стандартный протокол, который используется при настройке архитектуры, где протокол HTTP используется для доступа к поставщику услуг (веб-приложению). Для меня это просто расширение Kerberos, которое необходимо в моем случае использования, поскольку доступ к сервису действительно осуществляется через HTTP (Angular SPA + SpringBoot, взаимодействующий через REST).
  5. Расширение SpringSecurity-Kerberos: SpringSecurity предлагает множество расширений, одним из которых является модуль для поддержки Kerberos и SPNEGO. В моей голове сейчас кипят два вопроса:
    • Я вижу, что это альтернатива, если интеграция не обрабатывается на сервере приложений (Oracle WLS). Если это так, что было бы лучший подход?
    • В своих документах Spring предоставляет пример настройки адаптера безопасности с использованием этого расширения (основная точка интеграции: до сих пор таблица ключей). Но как насчет поиска пользовательских данных? Требуется ли еще служба для подключения к Active Directory, где они хранятся отдельно?

Я очень запутался в альтернативах и во всех компонентах, которые могут работать вместе. Я также не нашел краткую схему процесса для такого варианта использования, только те из них, которые работают отдельно. Итак, какой из подходов может быть разработан, если у нас есть все вышеперечисленные компоненты?

ПРИМЕЧАНИЕ. Кроме того, прямо сейчас уровень Angular проходит аутентификацию через фиктивную службу в JWT-интерфейсе SpringBoot. Я хотел бы держать JWT между ними, если это возможно, но если билет Kerberos можно легко найти и проанализировать для получения заявок, он устареет.

1 Ответ

0 голосов
/ 28 апреля 2019

Используйте мое расширение Tomcat SPNEGO AD, которое содержит прокладку Spring Sec.

...