2015-04-17 3 views
1

Я использую расширение SAML Spring Security для моего SP. После того как пользователь аутентифицируется из IDP, SP использует какой-то метод, позволяющий последующим вызовам повторно не проверяться с помощью IDP. Как это делается в расширении SAML Spring Security?Как расширение SAML Spring Security обрабатывает последующие запросы после аутентификации?

Смежный вопрос: Authenticating mobile users against SAML IDP

В принятом ответе от выше соответствующего вопроса, SP должен создать маркер и передать его обратно клиенту для будущих запросов. Я не вижу ничего подобного при просмотре потока в Network Tool для Chrome. Что я должен искать?

Обновление 1: Я прихожу к выводу, что Spring SAML ничего не передает в браузер в виде токена. Он должен отслеживать пользователя на стороне сервера. Могу ли я получить подтверждение об этом? Возможно ли создать токен, чтобы передать клиент обратно в случае вызова REST?

ответ

2

Spring SAML ретранслирует на Spring Security для обработки состояния аутентификации пользователя. По умолчанию пользовательское состояние хранится в SecurityContext и Authentication объектах, которые помещаются в HTTP-сеанс пользователя (определяется безопасным файлом cookie, как правило, JSESSIONID, который передается в браузер). Вы сможете найти все детали, связанные с этим в документации Spring Security.

В случае, если ваш пользователь вызывает API REST из браузера, где она аутентифицирована, а API развернут вместе с приложением Spring Security, вызов будет предоставлять такие же файлы cookie, как и для обычных вызовов на сервере, и они будут аутентифицированы используя тот же механизм, без необходимости использовать токены.

Если вы хотите выполнять вызовы стороннего REST API, где вы не установили сеанс или не аутентифицировали с использованием других средств, одним из способов обеспечения такого сценария является, например, выпускать и использовать маркеры маркера OAuth 2.0.

0

После того, как пользователь аутентифицирован из IDP, IDP отправляет обратно утверждение SAML в SP. Расширение SAML Spring Security подтверждает это утверждение.
Если проверка прошла успешно, Spring Security устанавливает сеанс пользователя, который обычно сохраняется через механизм cookie.

В случае услуги REST ваше предложение в основном заключается в том, что делается в службах REST с поддержкой OAuth. Клиент отправляет маркер авторизации с каждым запросом.

+0

После того, как проверка этого утверждения завершена, я вижу, что для этого выбраны файлы cookie: JSESSIONID и iPlanetDirectoryPro. Первый - общий куки-файл, и я мог видеть, что он используется, если Spring SAML обрабатывает все через сеанс на стороне сервера. IPlanetDirectoryPro устанавливается из IDP (OpenAM), поэтому это не Spring SAML exclusive. Предполагая, что я прав в том, что я сказал выше в обновлении 1, в конечном итоге то, что я пытаюсь выяснить, - это способ заставить Spring SAML предоставить токен для вызовов REST, чтобы каждый запрос не возвращался к ВПЛ. – AndyB

Смежные вопросы