Какие утверждения должен включать ответ на запрос аутентификации SAML, если докладчик и запрашиваемый субъект отличаются? - PullRequest
0 голосов
/ 01 октября 2019

Я оцениваю сценарий, используя протокол запроса аутентификации SAML v2 (3.4), где презентатор и запрашиваемый субъект отличаются, т. Е. Когда презентатор аутентифицируется у провайдера идентификациичтобы получить утверждения о другом предмете.

Мой вопрос: какие утверждения требуются в ответ на такой запрос и о каких предметах?


В этом сценарии <AuthnRequest> идентифицирует субъект, используя элемент <saml:Subject>. <Response> к запросу на аутентификацию содержит утверждения. С начала раздела 3.4 «Такие утверждения МОГУТ содержать дополнительные операторы любого типа, но по крайней мере одно утверждение ДОЛЖНО содержать по крайней мере один оператор аутентификации». *

В разделе «3.4.1.4 Правила обработки» я идентифицируюследующие правила для успешного ответа:

  • Ответчик ДОЛЖЕН в конечном итоге ответить на <AuthnRequest> сообщением <Response>, содержащим одно или несколько утверждений, которые соответствуют спецификациям, определенным запросом (строка 2229)
  • Если в запросе присутствует элемент <saml:Subject>, то результирующие утверждения <saml:Subject> ДОЛЖНЫ строго соответствовать запросу <saml:Subject>, как описано в разделе 3.3.4
  • Всесодержимое, определенное в пределах <AuthnRequest>, является необязательным, хотя некоторые из них могут потребоваться для определенных профилей. При отсутствии какого-либо конкретного содержимого подразумевается следующее поведение:
    • Возвращенные утверждения ДОЛЖНЫ содержать элемент <saml:Subject>, представляющий докладчика.

Мне кажется, что эти правила требуют, чтобы <saml:Subject> в каждом ответном утверждении было равным как запрашиваемому субъекту, так и докладчику.

Я использую «Утверждения и протоколы дляOASIS Security Assertion Markup Language (SAML) V2.0 "( saml-core-2.0-os ) в качестве моей справки.

1 Ответ

0 голосов
/ 01 октября 2019

Фраза «[я] вообще отсутствует какой-либо конкретный контент» имеет решающее значение для понимания стандарта здесь. Поскольку включение <saml:Subject> в запрос означает, что запрос имеет конкретное содержание, последний пункт в моем вопросе не применяется.

Однако первая часть раздела 3.4 по-прежнемуговорит:

Такие утверждения МОГУТ содержать дополнительные операторы любого типа, но по крайней мере одно утверждение ДОЛЖНО содержать по крайней мере один оператор аутентификации.

Затем объект этих утверждений долженбыть запрашиваемым субъектом согласно правилам обработки.

Требуемое утверждение аутентификации должно относиться к этому субъекту (который, возможно, никогда не был аутентифицирован). Если это соответствует элементу <AuthnStatement>, то для этого элемента требуется:

  • Атрибут AuthnInstant для времени аутентификации
  • A <saml:AuthnContext>, описывающий контекст аутентификации. Это может быть оставлено на <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>
...