Разрешены ли атрибуты в запросе аутентификации SAML?
-
22-08-2019 - |
Вопрос
Можно ли отправлять атрибуты в запросе аутентификации SAML?
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="aaf23196-1773-2113-474a-fe114412ab72"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z"
AssertionConsumerServiceIndex="0"
AttributeConsumingServiceIndex="0">
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>
Решение
Технически да, это возможно, поскольку AuthnRequest может содержать элемент Extensions, который может содержать что угодно — см. «основная» спецификация SAML:AuthnRequest (раздел 3.4.1) является производным от RequestAbstractType (раздел 3.2.1), который имеет дополнительные расширения.Отправитель и получатель должны будут согласовать синтаксис и семантику данных, отправляемых таким образом.
Я не вижу более «традиционного» способа сделать это, поскольку атрибуты обычно находятся в утверждениях, а не в AuthnRequests.
Другие советы
Существует случай, когда атрибуты должны быть частью запроса аутентификации.чтобы мы могли получить это имя атрибута из запроса и построить утверждение ответа с ним.
поскольку поставщик услуг проверяет ответ, сравнивая имена атрибутов. Мы можем взять пример Salesforce в качестве поставщика услуг, где происходит то же самое.