Я действительно новичок в SAML, и мне пришлось настроить систему аутентификации SAML. Мы работаем над API Platform и Angular 7+.
Все работает нормально, API аутентифицируется для SSO с помощью SAML, а клиент аутентифицируется в API с JWT.
Но проблема в том, что когда пользователь не аутентифицирован для SSO, как сообщить клиенту «перенаправить пользователя или открыть всплывающее окно» на страницу аутентификации SSO.
Я искал несколько ответов, но похоже, что аутентификация SAML не очень популярна в Rest API World.
Заранее спасибо.
Я не уверен, что SAML был создан для работы с API. Насколько мне известно, он был разработан для использования с веб-страницами.
Разве нельзя просто вернуть HTTP 401 и оставить обработку ошибок клиенту? Служба REST не должна перенаправлять пользователя на страницу входа, потому что это ресурс, а не преобразователь представлений.
Обновлено: Как я вижу это:
{"error":"auth required","url":"SSO_http_url"}
, без связи с SSOДумаю, я неправильно понял проблему. API пытается войти в систему единого входа от имени пользователя, если он не представил токен авторизации? 301 возвращается на сервер API службой единого входа?
Когда мы пытаемся пройти аутентификацию в SAML, он перенаправляет нас в систему входа в SAML (как и в форме входа в систему), для этого используется 302 (а не 301, извините). Я добавил ответ с указанием, как я могу делать то, что хочу. Не стесняйтесь высказать свое мнение.
Возможно, я нашел способ делать то, что хочу, я не должен аутентифицировать пользователей от клиента к SAML с API в качестве моста, у них будет много проблем (перенаправления, Cors и т. д.).
Итак, вот шаги:
Надеюсь, сработает ^^
Привет, спасибо за ответ. Проблема в том, что API попытается войти в систему, если в заголовке нет токена авторизации. Таким образом, он отправит 301 клиенту. Но обработать 301 не получится.