Аутентификация Kerberos, сервисный хост и доступ к KDC

10

У меня есть веб-приложение (имя хоста: 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 и обеспечить аутентификацию?

StrangeLoop
источник
Служба не нуждается в доступе к KDC в вашей настройке. Клиенты абсолютно так делают.
Джоуэлл

Ответы:

11

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

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

Настройка службы

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

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

  • клиент запрашивает сервисный билет от KDC
  • KDC генерирует билет службы , который содержит некоторую информацию, которая может быть расшифрована только таблицей ключей службы (это файл, который находится на вашем сервере)
  • клиент отправляет свой сервисный билет в сервис
  • не служба использует Keytab проверить билет (нет сети связи необходимо)
chutz
источник
Спасибо, я тоже так понял из статьи в Kerberos Wikipedia. На этот вопрос, кажется, есть противоречивый ответ: Аутентификация Kerberos для
веб-серверов
Ну, я не знаю, что произошло в этом другом ответе, но у меня есть очень удаленный SSH-сервер, выполняющий аутентификацию на основе Kerberos, и он, конечно, не имеет доступа к KDC, который находится в моей частной локальной сети дома. Может ли быть что-то странное с веб-серверами? Возможно, но я сильно сомневаюсь в этом.
Chutz