SAML Authentication на API Rest, откройте страницу аутентификации - PullRequest
0 голосов
/ 18 декабря 2018

Я действительно новичок в SAML, и мне пришлось настроить систему аутентификации SAML.Мы работаем над платформой API и Angular 7+.

Все работает нормально, API аутентифицируется на SSO с помощью SAML, а клиент аутентифицируется на API с помощью JWT.

Но проблема в том,когда пользователь не аутентифицирован в SSO, как сказать клиенту «перенаправить пользователя или открыть всплывающее окно» на страницу аутентификации SSO.

Я искал некоторые ответы, но похоже, что аутентификация SAML недействительно известный в Rest API World.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Возможно, я нашел способ сделать то, что я хочу, я не должен аутентифицировать пользователей от клиента до SAML с помощью API в качестве моста, у них будет много проблем (перенаправления, Cors и т. Д.).

Итак, вот шаги:

  • Клиент пытается пройти аутентификацию в API с помощью токена JWT
  • Клиент не подключен, API возвращает клиенту 302 для перенаправления насистема аутентификации SAML API.
  • API попытается аутентифицировать пользователя в SAML (автоматическая аутентификация, перенаправление на форму входа и т. д.)
  • При успешном входе API перенаправляет пользователя наклиент с новым токеном JWT, разрешающим доступ пользователя

Надеюсь, он будет работать ^^

0 голосов
/ 18 декабря 2018

Я не уверен, что SAML был создан, чтобы справиться с API.Насколько я знаю, он был разработан для использования с веб-страницами.

Разве вы не можете просто вернуть HTTP 401 и оставить обработку ошибок клиенту?Служба REST не должна перенаправлять пользователя на страницу входа в систему, поскольку она является ресурсом, а не распознавателем представления.

РЕДАКТИРОВАТЬ: Как я вижу:

  1. клиент отправляет запрос REST без заголовка аутентификации (JWT)
  2. Ответы API с 401 и телом типа {"error":"auth required","url":"SSO_http_url"} без связи с SSO
  3. клиент должен обработать ошибку - перенаправить пользователя на службу SSOи получить токен JWT
  4. клиент отправляет новый запрос с действительным заголовком аутентификации (JWT)
...