Это правильный вариант использования SAML? - PullRequest
2 голосов
/ 21 сентября 2011

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

Когда пользователь нажимает кнопку «Аутентифицировать с помощью ...» на веб-странице поставщика услуг, он перенаправляется с помощью SAML AuthnRequest к выбранному поставщику удостоверений.

Затем Identity Provider показывает веб-страницу, где он просит отправить форму с некоторыми полями, например: Firsname, Lastname, Address, а затем проверяет, действительно ли человек живет по этому адресу.

Если проверка прошла успешно, то ответ SAML возвращается со статусом «Успешно», а в качестве атрибутов возвращаются имя, фамилия, адрес.

Если проверка не пройдена, то ответ SAML возвращается со статусом AuthnFailed с такими же атрибутами.

У меня вопрос, является ли это правильным использованием SAML или нет?

Как правильно настроить его так, чтобы он каждый раз запрашивал аутентификацию (не следует устанавливать сеанс с провайдером идентификации)?

1 Ответ

3 голосов
/ 21 сентября 2011

Вы по сути правы и это правильный вариант использования.Однако, если Auth завершится неудачно в IDP, вы получите сообщение SAMLResponse со статусом «сбой» (вероятно, «urn: oasis: names: tc: SAML: 2.0: status: AuthnFailed» и информация о пользователе не будет возвращена (так как Auth не выполнен)).

В вашем AuthnRequest, который генерирует ваш SP, вы можете установить необязательный атрибут ForceAuthn = true. Если он поддерживается IDP и установлен на «" true ", провайдер идентификации ДОЛЖЕН аутентифицировать докладчика напрямую, а нечем полагаться на предыдущий контекст безопасности. Если значение не указано, по умолчанию используется значение «ложь». Однако, если ForceAuthn и IsPassive имеют значение «истина», провайдер идентификации НЕ ДОЛЖЕН заново аутентифицировать презентатора, если ограничения IsPassive не могут бытьвстретил. "(из раздела 3.4.1 Элемент в спецификации ядра SAML 2.0).

HTH - Ian

...