У меня есть angular 8 приложение, которое требует SSO-авторизации. Я не понимаю правильный поток для этого процесса с точки зрения перенаправления SPA на другой ADFS-сервер.
У меня есть следующее:
- Нажмите на ссылку "войти" и отправить GET -request к backend-endpoint
- Имея этот запрос, я проверяю, авторизован ли пользователь в Spring Security
val authentication: Authentication = SecurityContextHolder.getContext().authentication;
- , если
authentication
равно нулю, тогда я возвращаю ответ с http кодом 401, который вызывает web -app сделать перенаправление на SAML-сервер - Пользователь вводит свои учетные данные на SAML-сервере после того, как этот пользователь будет перенаправлен обратно в мое приложение на
/home
url
На самом деле в данный момент Spring Сеанс безопасности уже установлен (из-за успешной авторизации SAML) на сервере, и если я повторяю тот же запрос, я могу определить - да, пользователь аутентифицирован. Но, честно говоря, выглядит уродливо - мне нужно сделать два запроса на один и тот же URL-адрес, когда первый возвращает код 302 после перенаправления (я не могу поймать его из-за 302 - браузер отменяет обработку до того, как javascript сможет ее обработать), и второй запрос получит jwt-токен, который указывает, что аутентификация прошла успешно