Я пытаюсь разработать схему аутентификации для веб-приложения, имеющего слой Angular на стороне клиента и SpringBoot на сервере. Пользователи такого веб-приложения находятся в сети организации, входят в систему на своих ПК и должны использовать веб-приложение без необходимости входа через другую страницу с запросом учетных данных.
Я изучал различные механизмы, но тот, который больше следует инфраструктуре на клиенте, это Предоставление кода авторизации платформы Oauth2.0 RFC . На самом деле у клиента есть сервер ADFS4.0, который будет работать как сервер авторизации и отвечать JWT.
Вышеупомянутый поток описан в разделе 4.1, хотя есть и другие, которые могут быть полезны для других случаев.
Поток ясен, но я не понимаю одного (на первый взгляд) простого факта: Как сервер авторизации распознает пользователя? В обоих запросах нет параметр для включения учетных данных, в то время как предполагается, что access_token, который они получают в конце, будет содержать утверждения (имя пользователя, группы, роли и т. д.). Я бы предпочел остаться в этом случае, но тогда, в разделе 4.4 у нас есть другой тип потока, объясненный, где пользователь вводит учетные данные.
Тем не менее, требуется, чтобы пользователь НЕ повторно вставил какие-либо учетные данные.
Один из способов, который я пытался раскрыть, состоял в том, чтобы восстановить данные пользователя с его рабочей машины (интеграция аутентификации Windows) из агента пользователя (браузера клиента). Но, похоже, ему нужна конфигурация на агенте, а не какая-то простая для конечного пользователя.
Также известно, что домен организации использует Kerberos для предоставления доступа пользователям в их сети, но я не вижу, чтобы этот компонент вписался в туман.
Итак, последний вопрос: как выполнить автоматическую аутентификацию (скрытую для пользователя) с помощью профиля, который они вошли в компьютер? Предоставляет ли код авторизации неявное требование? Кроме того, вы предлагаете обрабатывать всю последовательность перенаправления непосредственно в Angular или лучше воспользоваться информацией об интеграции SpringSecurity с OAuth?