SAML spec: возвращение в SP без пользователя - PullRequest
0 голосов
/ 25 января 2019

Я использую стандартный SAML 2.0 SP-инициированный протокол SSO для аутентификации.

Обычно IdP возвращает объект samlp:Response XML моему SP, содержащий saml:Assertion о проверенном пользователе.

Позволяет ли спецификация SAML IdP возвращать ответ SP, который не содержит информацию о пользователе?

Я бы хотел разобраться с ситуацией, когда аутентификация не может быть выполнена, но мы хотим вернуться на сайт SP. Может быть, IdP может вернуть какую-то ошибку или сообщение нашему SP? Сейчас кажется, что если аутентификация невозможна, пользователь застревает на сайте IdP.

Я полагаю, они могли бы просто перенаправить на согласованный URL, хотя тогда вы потеряете информацию RelayState. Будет ли это правильным подходом, или спецификация SAML справится с этим сценарием?

1 Ответ

0 голосов
/ 03 февраля 2019

Спецификация SAML2 справляется с этим.Idp может вернуть samlp:response с кодом состояния Responder, означающим, что idp не смог выполнить запрос.Тогда может быть более подробная информация о состоянии, почему именно.

Но случай, когда Idp не может аутентифицировать пользователя, может быть обработан в протоколе.Тем не менее, я думаю, что большинство Idps ведут себя так, как вы описали - держите пользователя на Idp, если что-то пойдет не так.

Добавлен OP - это из SAML spec :

<StatusCode> [Необязательно]

Подчиненный код состояния, который предоставляет более конкретную информацию о состоянии ошибки.Обратите внимание, что респонденты МОГУТ опускать подчиненные коды состояния, чтобы предотвратить атаки, которые пытаются найти дополнительную информацию путем преднамеренного представления ошибочных запросов.

Допустимые значения верхнего уровня:

urn:oasis:names:tc:SAML:2.0:status:Success Запрос успешно выполнен.Дополнительная информация МОЖЕТ быть возвращена в элементах and и / или.

urn:oasis:names:tc:SAML:2.0:status:Requester Запрос не может быть выполнен из-за ошибки со стороны запрашивающей стороны.

urn:oasis:names:tc:SAML:2.0:status:Responder Запрос можетне выполняется из-за ошибки со стороны ответчика SAML или органа SAML.

urn:oasis:names:tc:SAML:2.0:status:VersionMismatch Ответчику SAML не удалось обработать запрос, поскольку версия сообщения с запросом была неправильной.

...