Создание билетов AD Kerberos без пароля пользователя

Я занимаюсь разработкой серверного приложения Java EE, которое должно генерировать билет Kerberos от имени пользователя.

Разрабатываемое мной приложение будет аутентифицировать пользователя с использованием альтернативных учетных данных (не Active Directory, скажем, биометрических), а затем необходимо каким-то образом сгенерировать билет Kerberos, показывающий, что пользователь прошел аутентификацию. Затем я буду использовать билет Kerberos, чтобы сгенерировать токен SPNEGO и вставить токен в заголовок HTTP, чтобы пользователю не пришлось проходить повторную аутентификацию при последующих запросах браузера.

Можно ли сгенерировать этот билет Kerberos от имени пользователя без необработанного пароля AD пользователя? (предположим, у меня есть доступ к логину и паролю учетной записи службы AD). Если это возможно, как бы я это сделал? Какая конфигурация, разрешения необходимы?

1 ответ

Решение

Да, это возможно. Microsoft расширила Kerberos для этого. Это называется "Услуги для пользователя" (S4U). Ваш случай называется S4U2Self (протокол перехода). Это будет доступно в Java 8. Вы можете проверить тикет и добавить этот код в одобренный Java путь к классу. Вы можете прочитать больше в MIT Kerberos wiki.

Другие вопросы по тегам