Аутентификация Kerberos через curl работает, но не в браузере

Может кто-нибудь помочь объяснить, что мне не хватает? У меня проблема с завитком

curl -i --negotiate -u : "backendService.net/kerberos:"

Работает нормально в CMD, и я могу проверить, какой пользователь вызвал этот в моей серверной службе. Однако, если я попробую это в postman/EDGE или Chrome. Я даже попросил интерфейс попробовать вызвать это из реакции с заголовками:

WWW-Authentication:negotiate

Я понимаю, что проверка Kerberos не удалась.

Я использую приложение весенней загрузки, и это backendService.net/kerberos, упомянутое выше, является конечной точкой для RestController, где у меня есть:

@GetMapping(value = "/kerberos")
public ResponseEntity<String> getKerberosUser(HttpServletRequest req) {
    logger.info("Kerberos remote user: " + req.getRemoteUser());
    return new ResponseEntity<>(req.getRemoteUser(), HttpStatus.OK);
}

У меня правильно настроены keytab и SPN, потому что, если я попытаюсь вызвать это в cmd:

knit -k -t my-file.keytab HTTP/backendService.net

Он генерирует билет kerberos с моим именем пользователя.

Самая любопытная часть для меня, почему CURL работает, а не БРАУЗЕР или что-то еще? Любая обратная связь приветствуется. Спасибо!!! :)

Обновление 1.0

Я обнаружил, что включение поиска DisableAuthNegotiateCnameLookup cname в Chrome решит эту проблему. Можно ли отключить его с помощью приложения spring-boot или мне нужно добавить этот URL-адрес в доверенный uri?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если кто сталкивался с этой проблемой. Я решил это, добавив DNS-имя в файл keytab и создав SPN для того же DNS. Проблема заключалась в поиске DNS, поскольку он все время выдавал неверный URL-адрес домена. Вот почему аутентификация Kerberos не удалась.

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