Назад | Перейти на главную страницу

Проверка подлинности Kerberos, хост службы и доступ к KDC

У меня есть веб-приложение (имя хоста: service.domain.com), и я хочу использовать проверку подлинности Kerberos для идентификации пользователей, которые вошли в домен Windows. Microsoft AD (Windows Server 2008 R2) предоставляет службу Kerberos.

Служба представляет собой веб-приложение Java, использующее библиотеку расширений Spring Security Kerberos для реализации протокола SPNEGO / Kerberos. Я создал файл keytab в AD, который содержит общий секрет, которого должно быть достаточно для аутентификации билетов Kerberos, отправляемых клиентскими браузерами с помощью веб-приложения.

Мой вопрос: требуется ли хост службы (service.domain.com) для доступа брандмауэра (TCP / UDP 88) к KDC (kdc.domain.com) или достаточно ли файла keytab, чтобы хост службы мог расшифровать Билеты Kerberos и обеспечивают аутентификацию?

В служба никогда не нужно разговаривать с KDC. Ему нужен keytab генерируется KDC, но вы можете копировать как хотите. Им никогда не приходится разговаривать друг с другом.

Чрезмерно упрощенная версия того, что я считаю, выглядит примерно так:

Настройка сервиса

  • KDC генерирует услугу keytab (что-то вроде секретного ключа / пароля, если хотите)
  • этот keytab предоставляется служба каким-то образом (scp или на USB-накопителе, если хотите)

Клиент подключается к услуге

  • клиент запрашивает услугу проездной билет из KDC
  • KDC генерирует услугу проездной билет, который содержит некоторую информацию, которую может расшифровать только служба keytab (это файл, который находится на вашем сервере)
  • клиент отправляет свои услуги проездной билет к служба
  • в служба использует свой keytab чтобы проверить проездной билет (нет необходимости в сетевом подключении)