Что такое правильный поток для аутентификации в SSO для приложения angular? - PullRequest
0 голосов
/ 10 января 2020

У меня есть angular 8 приложение, которое требует SSO-авторизации. Я не понимаю правильный поток для этого процесса с точки зрения перенаправления SPA на другой ADFS-сервер.

У меня есть следующее:

  1. Нажмите на ссылку "войти" и отправить GET -request к backend-endpoint
  2. Имея этот запрос, я проверяю, авторизован ли пользователь в Spring Security val authentication: Authentication = SecurityContextHolder.getContext().authentication;
  3. , если authentication равно нулю, тогда я возвращаю ответ с http кодом 401, который вызывает web -app сделать перенаправление на SAML-сервер
  4. Пользователь вводит свои учетные данные на SAML-сервере после того, как этот пользователь будет перенаправлен обратно в мое приложение на /home url

На самом деле в данный момент Spring Сеанс безопасности уже установлен (из-за успешной авторизации SAML) на сервере, и если я повторяю тот же запрос, я могу определить - да, пользователь аутентифицирован. Но, честно говоря, выглядит уродливо - мне нужно сделать два запроса на один и тот же URL-адрес, когда первый возвращает код 302 после перенаправления (я не могу поймать его из-за 302 - браузер отменяет обработку до того, как javascript сможет ее обработать), и второй запрос получит jwt-токен, который указывает, что аутентификация прошла успешно

...