T.M. SoftStudio

feci quod potui, faciant meliora potentes

SAML

SAML 2.0

Спецификация SAML 2.0, дополнительно к сценарию, описывающему SSO Web-взаимодействие между клиентом, центром аутентификации и сервисом ресурса, определяет сценарий, в котором клиент проходит аутентификацию на одном сервисе ресурса, затем связывается с другим сервисом ресурса, который является партнером первого сервиса. Так как клиент уже прошел на первом сервисе аутентификацию, то второй сервис запрашивает у клиента разрешение на совместное использование его входа с первым сервисом. Далее клиент снова соединяется с первым сервисом, генерирующим псевдоним для клиента, ассоциированный с первоначальными данными клиента. После этого клиент передает второму сервису SAML-утверждение, содержащее информацию о псевдониме клиента. Теперь клиент может проходить аутентификацию на втором сервисе, используя свои первоначальные данные для первого сервиса, т. к. они ассоциированы с псевдонимом, позволяющим доступ ко второму сервису.

Таким образом, спецификация SAML 2.0 обеспечивает поддержку технологии интегрированной идентичности (federated identity) с определением понятия псевдонима — скрытого идентификатора, представляющего клиента для партнерского сервиса ресурсов.

Спецификация SAML 2.0, по сравнению со спецификацией SAML 1.1, определяет более широкий набор профилей, описывающих реализацию SAML, включающий в себя:

  • профили технологии единого входа SSO:

    – Web Browser SSO Profile;

    – Enhanced Client or Proxy (ECP) Profile;

    – Identity Provider Discovery Profile;

    – Single Logout Profile;

    – Name Identifier Management Profile;

  • Artifact Resolution Profile;

  • Assertion Query/Request Profile;

  • Name Identifier Mapping Profile;

  • SAML Attribute Profiles — профили атрибутов:

    – Basic Attribute Profile;

    – X.500/LDAP Attribute Profile;

    – UUID Attribute Profile;

    – DCE PAC Attribute Profile;

    – XACML Attribute Profile.

Профиль Web Browser SSO Profile описывает сценарий, в котором клиент делает HTTP-запрос к защищенному Web-ресурсу. Сервис защищенного Web-ресурса получает адрес центра аутентификации и перенаправляет клиентский запрос, содержащий теперь уже SAML-элемент <AuthnRequest>, к центру аутентификации с использованием одного из протоколов: HTTP Redirect, HTTP POST или HTTP Artifact. После того как клиент проходит аутентификацию, цент аутентификации посылает сообщение, содержащее SAML-элемент <Response> приложению клиента, которое перенаправляет его сервису ресурса с помощью протокола HTTP POST или HTTP Artifact (протокол HTTP Redirect не используется, т. к. длина URL-строки при этом будет слишком большой). После получения сообщения сервис ресурса назначает права клиенту.

Профиль Enhanced Client or Proxy (ECP) Profile описывает сценарий, в котором клиент также делает HTTP-запрос к защищенному Web-ресурсу. Далее сервис защищенного ресурса создает сообщение, содержащее SAML-элемент <AuthnRequest>, и посылает его клиенту. Клиент, в свою очередь, отправляет данное сообщение центру аутентификации с помощью протокола SOAP. Центр аутентификации производит аутентификацию клиента и посылает ему сообщение, содержащее SAML-элемент <Response>, которое клиентское приложение передает сервису ресурса, назначающего клиенту права. Таким образом, в данном профиле клиент сам знает адрес центра аутентификации. При этом обмен сообщениями между клиентом и сервисом ресурса осуществляется с использованием протокола Reverse SOAP (PAOS).

Протокол Reverse SOAP (PAOS) отличается от протокола SOAP тем, что SOAP-запрос в протоколе PAOS передается в HTTP-ответе, а SOAP-ответ — в HTTP-запросе.

ECP-клиент делает HTTP-запрос сервису ресурса. Сервис ресурса посылает HTTP-ответ, содержащий SOAP-запрос <AuthnRequest>, обратно ECP-клиенту. В результате аутентификации клиента центром аутентификации, ECP-клиент снова посылает HTTP-запрос, содержащий SOAP-ответ <Response>, сервису ресурса. Поэтому протокол PAOS и называется "обратным" SOAP.

Профиль Identity Provider Discovery Profile используется сервисом ресурса для поиска подходящего центра для аутентификации клиента в случае, если система включает в себя несколько центров аутентификации. URI-идентификатор центра аутентификации сохраняется в виде значения cookie с именем "_saml_idp" при аутентификации клиента. Сервис ресурса, в случае необходимости обращения к центру аутентификации, запрашивает сервис, отвечающий за управление и хранение cookie, и получает адрес центра, который произвел аутентификацию нужного клиента.

Профиль Single Logout Profile применяется в случае, если при взаимодействии клиента, центра аутентификации и сервиса ресурса, центр аутентификации отвечает за создание сессии с клиентом и является инициатором создания сессии сервиса ресурса с клиентом. В данном профиле клиенту или администратору дается возможность инициировать окончание сессии. При этом центру аутентификации отправляется сообщение, содержащее SAML-элемент <LogoutRequest>, в ответ на которое центр аутентификации посылает сообщение, содержащее SAML-элемент <LogoutResponse>.

Профиль Name Identifier Management Profile описывает обмен сохраняемыми идентификаторами клиента (псевдонимами) центра аутентификации с сервисом ресурса. Данный обмен включает в себя уведомления центром аутентификации сервиса ресурса об изменениях псевдонима, возможность создания сервисом ресурса нового псевдонима для клиента, уведомления сервисом ресурса об окончании действия псевдонима. Управление псевдонимами в данном профиле осуществляется путем обмена сообщениями, содержащими SAML-элементы <ManageNameIDRequest> и <ManageNameIDResponse>.

Профиль Artifact Resolution Profile описывает обмен артефактами, содержащими ссылки на SAML-утверждения. Отправка артефакта выполняется с помощью сообщения с SAML-элементом <ArtifactResolve>. После обработки данного сообщения, в ответ посылается сообщение с SAML-элементом <ArtifactResponse>, включающим в себя информацию о статусе обработки артефакта.

Профиль Assertion Query/Request Profile описывает запрос утверждений по ссылке или информации, содержащейся в утверждениях, с помощью SAML-элементов <AssertionIDRequest>, <SubjectQuery>, <AuthnQuery>, <AttributeQuery>, <AuthzDecisionQuery>. Сообщение, посылаемое в ответ, содержит SAML-элемент <Response>.

Профиль Name Identifier Mapping Profile предназначен для ассоциации клиента с несколькими идентификаторами. Запрос альтернативного идентификатора для клиента осуществляется центру аутентификации с помощью сообщения, содержащего SAML-элемент <NameIDMappingRequest>. В ответ центр аутентификации посылает сообщение с SAML-элементом <NameIDMappingResponse>.

Профили атрибутов описывают форматы XML-представления атрибутов, ассоциированных с клиентом.

Профиль Basic Attribute Profile имеет следующий формат:

<saml:Attribute

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"

Name="urn:. . .">

<saml:AttributeValue xsi:type="xs:string">. . .</saml:AttributeValue>

</saml:Attribute>

Профиль X.500/LDAP Attribute Profile имеет следующий формат:

<saml:Attribute

xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

Name="urn:. . ." FriendlyName=". . .">

<saml:AttributeValue xsi:type="xs:string"

x500:Encoding="LDAP">. . .</saml:AttributeValue>

</saml:Attribute>

Профиль UUID (Universally Unique Identifiers) Attribute Profile имеет следующий формат:

<saml:Attribute

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

Name="urn:uuid:. . ."

FriendlyName=". . .">

<saml:AttributeValue xsi:type="xs:integer">. . .</saml:AttributeValue>

</saml:Attribute>

Профиль DCE PAC Attribute Profile имеет следующий формат:

<saml:Attribute

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:realm">

<saml:AttributeValue xsi:type="dce:DCEValueType"

dce:FriendlyName=". . .">

urn:uuid:. . .

</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:principal">

<saml:AttributeValue xsi:type="dce:DCEValueType"

dce:FriendlyName=". . .">

urn:uuid:. . .

</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:primary-group">

<saml:AttributeValue xsi:type="dce:DCEValueType"

dce:FriendlyName=". . .">

urn:uuid:. . .

</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:groups">

<saml:AttributeValue xsi:type="dce:DCEValueType"

dce:FriendlyName=". . .">

urn:uuid:. . .

</saml:AttributeValue>

<saml:AttributeValue xsi:type="dce:DCEValueType"

dce:FriendlyName=". . .">

urn:uuid:. . .

</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:foreign-

groups">

<saml:AttributeValue xsi:type="dce:DCEValueType"

dce:FriendlyName=". . ."

dce:Realm="urn:uuid:. . . ">

urn:uuid:. . .

</saml:AttributeValue>

</saml:Attribute>

Профиль XACML (eXtensible Access Control Markup Language) Attribute Profile имеет следующий формат:

<saml:Attribute

xmlns:xacmlprof="urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML"

xmlns:ldapprof="urn:oasis:names:tc:SAML:2.0:profiles:attribute:LDAP"

xacmlprof:DataType="http://www.w3.org/2001/XMLSchema#string"

ldapprof:Encoding="LDAP"

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

Name="urn:. . ." FriendlyName=". . .">

<saml:AttributeValue xsi:type="xs:string">. . .</saml:AttributeValue>

</saml:Attribute>

Корневым элементом XML-данных, представляющих утверждение, также как и в спецификации SAML 1.1, является элемент <Assertion> (пространство имен urn:oasis:names:tc:SAML:2.0:assertion), имеющий следующие атрибуты и вложенные элементы:

  • обязательный атрибут Version — версия спецификации (2.0). В SAML 1.1 — это атрибуты MajorVersion и MinorVersion;

  • обязательный атрибут ID — идентификатор утверждения. В SAML 1.1 — это атрибут AssertionID;

  • обязательный атрибут IssueInstant — дата и время создания утверждения;

  • обязательный элемент <Issuer> — имя стороны, создавшей утверждение. В SAML 1.1 — это обязательный атрибут Issuer. Элемент <Issuer> имеет дополнительные атрибуты NameQualifier (сторона, определяющая имя), SPNameQualifier (имя сервиса, определяющего имя), Format (формат имени), SPProvidedID (идентификатор сервиса, создавшего утверждение). Атрибут Format имеет следующие возможные значения:

    – urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified — интерпретация зависит от конкретной реализации;

    – urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress — формат адреса электронной почты;

    – urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName — формат элемента <ds:X509SubjectName> спецификации XML Signature;

    – urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName — формат "DomainName\UserName";

    – urn:oasis:names:tc:SAML:2.0:nameid-format:Kerberos — формат name[/instance]@REALM;

    – urn:oasis:names:tc:SAML:2.0:nameid-format:entity — формат URI, включающий значения атрибутов NameQualifier, SPNameQualifier, SPProvidedID, которые должны при этом отсутствовать, по умолчанию;

    – urn:oasis:names:tc:SAML:2.0:nameid-format:persistent — формат сохраняемого псевдонима;

    – urn:oasis:names:tc:SAML:2.0:nameid-format:transient — формат несохраняемого псевдонима;

  • дополнительный элемент <Conditions> — условия действительности утверждения;

  • дополнительный элемент <Advice> — дополнительная информация об утверждении, например дополнительные утверждения, представленные элементами <Assertion> или ссылками на утверждения, представленные элементами <AssertionIDReference>. В отличие от SAML 1.1 дополнительные утверждения могут быть также представлены элементами <AssertionURIRef> и <EncryptedAssertion>. Элемент <AssertionIDReference> содержит значение атрибута ID, а элемент <AssertionURIRef> содержит строку HTTP-запроса с параметром ID — значением атрибута ID. Элемент <EncryptedAssertion> содержит зашифрованное утверждение в соответствии со спецификацией XML Encryption с вложенными элементами <xenc:EncryptedData> и <xenc:EncryptedKey> (пространство имен http://www.w3.org/2001/04/xmlenc#);

  • дополнительный элемент <ds:Signature> (пространство имен xmlns:ds="http://www.w3.org/2000/09/xmldsig#") — цифровая подпись XML Signature;

  • дополнительный элемент <Subject> — описание клиента утверждения.

А также какие-либо из элементов:

  • элемент <Statement> — элементы расширения спецификации SAML, описывающие утверждение. Элемент <SubjectStatement> в SAML 2.0 отсутствует;

  • элемент <AuthenticationStatement> описывает утверждение того, что клиент прошел аутентификацию;

  • элемент <AuthorizationDecisionStatement> описывает утверждение того, что клиент получил определенные права доступа к запрашиваемым ресурсам;

  • элемент <AttributeStatement> описывает утверждение того, что клиент ассоциируется с определенными атрибутами (имя/значение), влияющими на права доступа, которые сервис ресурса выдает клиенту.

Элемент <Conditions> описывает условия действительности утверждения с помощью следующих атрибутов и вложенных элементов:

  • дополнительный атрибут NotBefore — время, начиная с которого действует утверждение;

  • дополнительный атрибут NotOnOrAfter — время, до которого действует утверждение;

  • необязательный элемент <Condition> — элементы расширения спецификации SAML, описывающие дополнительные условия;

  • необязательный элемент <AudienceRestriction> (в SAML 1.1 это элемент <AudienceRestrictionCondition>) — стороны, для которых предназначено данное утверждение, описываемые с помощью вложенных элементов <Audience>, содержащих URI-идентификаторы сторон;

  • необязательный элемент <OneTimeUse> (в SAML 1.1 это элемент <DoNotCacheCondition>) указывает, что утверждение не является повторно используемым;

  • необязательный элемент <ProxyRestriction> (в SAML 1.1 этого элемента нет) накладывает ограничения на получающую утверждение сторону, которая сама является стороной, формирующей новое утверждение. Элемент <ProxyRestriction> имеет дополнительный атрибут Count — максимальное количество создаваемых производных утверждений и дополнительные элементы <Audience>, указывающие стороны, для которых предназначаются производные утверждения.

Элемент <Subject> описывает клиента, которому выдано данное утверждение, используя вложенные элементы <BaseID>, <NameID> или <EncryptedID> (в SAML 1.1 это <NameIdentifier>) и <SubjectConfirmation>.

Элемент <BaseID> является базовым для элементов, определяющих идентификацию. Элемент <BaseID> имеет дополнительные атрибуты NameQualifier — сторона, определяющая имя клиента, и SPNameQualifier — имя сервиса, определяющего имя клиента.

Элемент <NameID> содержит имя клиента и имеет следующие атрибуты:

  • дополнительный атрибут NameQualifier — сторона, определяющая имя клиента;

  • дополнительный атрибут SPNameQualifier — имя сервиса;

  • дополнительный атрибут Format — URI-идентификатор формата имени клиента (см. элемент <Issuer>), по умолчанию urn:oasis:names:tc:SAML:1.0:nameid-format:unspecified;

  • дополнительный атрибут SPProvidedID — идентификатор сервиса.

Элемент <EncryptedID> описывает зашифрованный идентификатор с помощью вложенных элементов <xenc:EncryptedData> и <xenc:EncryptedKey>.

Элемент <SubjectConfirmation> содержит информацию, дающую возможность сервису ресурса подтвердить аутентификацию клиента с помощью вложенных элементов:

  • обязательный атрибут Method (в SAML 1.1 это обязательный элемент <ConfirmationMethod>) содержит URI-идентификатор протокола, используемого для подтверждения аутентификации клиента. Спецификация предопределяет следующие URI-идентификаторы:

    – urn:oasis:names:tc:SAML:2.0:cm:holder-of-key — аутентификация производится с помощью ключа, информация о котором содержится во вложенном элементе <ds:KeyInfo>. Это может быть, например, публичный ключ цифровой подписи, содержащейся в элементе <SubjectConfirmationData>;

    – urn:oasis:names:tc:SAML:2.0:cm:sender-vouches — информация, помогающая аутентифицировать клиента;

    – urn:oasis:names:tc:SAML:2.0:cm:bearer — клиент является стороной, передающей утверждение;

Примечание

URI-идентификатор urn:oasis:names:tc:SAML:1.0:cm:artifact в SAML 2.0 отсутствует.

  • необязательные элементы <BaseID>, <NameID> или <EncryptedID>;

  • необязательный элемент <SubjectConfirmationData> содержит данные, используемые протоколом подтверждения аутентификации клиента. Элемент <SubjectConfirmationData> имеет следующие дополнительные атрибуты и вложенные элементы:

    – NotBefore — время, до которого подтверждение не производится;

    – NotOnOrAfter — время, после которого подтверждение не производится;

    – Recipient — URI-идентификатор получателя утверждения;

    – InResponseTo — ID-сообщения, в ответ на которое представляется утверждение;

    – Address — IP-адрес, представляющий утверждение;

    – <ds:KeyInfo> — информация о ключе.

Элемент <AuthnStatement> (в SAML 1.1 это элемент <AuthenticationStatement>) описывает утверждение аутентификации клиента, используя следующие атрибуты и вложенные элементы:

Примечание

Обязательный атрибут AuthenticationMethod и необязательный элемент <AuthorityBinding> в SAML 2.0 отсутствуют. Элемент <Subject> включен непосредственно в элемент <Assertion>.

  • обязательный атрибут AuthenticationInstant — время, когда клиент прошел аутентификацию;

  • необязательный элемент <SubjectLocality> — локализация клиента (DNS-имя и IP-адрес), указываемая с помощью атрибутов Address и DNSName (в SAML 1.1 IPAddress и DNSAddress);

  • дополнительный атрибут SessionIndex (только в SAML 2.0) — индекс сессии между клиентом и центром аутентификации;

  • дополнительный атрибут SessionNotOnOrAfter (только в SAML 2.0) — время окончания сессии;

  • обязательный элемент <AuthnContext> (только в SAML 2.0) — контекст аутентификации.

Контекст аутентификации — это дополнительная информация, которая может потребоваться сервису ресурса. Например, это может быть информация о механизме идентификации и аутентификации клиента, хранении и защите прав клиента и т. д. Информация контекста аутентификации содержится в элементе <AuthnContextDecl>. Кроме того, информация контекста аутентификации может быть сгруппирована по классам контекста аутентификации, URI-идентификаторы которых указываются с помощью элемента <AuthnContextClassRef>.

Таким образом, элемент <AuthnContext> может иметь вложенные элементы <AuthnContextClassRef>, <AuthnContextDecl> или <AuthnContextDeclRef> (содержит URI-ссылку на элемент <AuthnContextDecl>), а также элементы <AuthenticatingAuthority>, которые указывают идентификаторы центров аутентификации клиента.

Элемент <AuthnContextDecl> может содержать следующие элементы:

  • <Identification> — характеристики идентификации клиента;

  • <TechnicalProtection> — характеристики защиты ключа аутентификации;

  • <OperationalProtection> — характеристики защиты процесса аутентификации;

  • <AuthnMethod> — метод аутентификации;

  • <GoverningAgreements> — характеристики обязательств и гарантий аутентификации;

  • <Extension> — расширение спецификации.

Спецификация предопределяет следующие URI-идентификаторы классов контекста аутентификации:

  • urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol — клиент проходит аутентификацию, используя IP-адрес;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword — клиент проходит аутентификацию, используя IP-адрес в дополнение к логину-паролю;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos — клиент проходит аутентификацию, используя Kerberos-билеты;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorUnregistered — аутентификацию походит мобильное устройство, а не пользователь;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorUnregistered — аутентификацию не проходит ни пользователь, ни мобильное устройство;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorContract — аутентификация с использованием цифровой подписи мобильного устройства;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract — аутентификация с использованием цифровой подписи мобильного устройства и идентификатора пользователя;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:Password — клиент проходит аутентификацию с помощью пароля по HTTP-протоколу;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport — клиент проходит аутентификацию с помощью пароля по защищенному протоколу;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession — аутентификация клиента производится с помощью предыдущей сессии;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:X509 — клиент проходит аутентификацию, используя цифровую подпись и X.509-ключ;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:PGP — клиент проходит аутентификацию, используя цифровую подпись и PGP-ключ;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:SPKI — клиент проходит аутентификацию, используя цифровую подпись и SPKI-ключ;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:XMLDSig — клиент проходит аутентификацию, используя цифровую подпись согласно спецификации XML Signature;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard — клиент проходит аутентификацию, используя смарт-карту;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI — клиент проходит аутентификацию, используя смарт-карту и PIN-код;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:SoftwarePKI — клиент проходит аутентификацию, используя X.509-сертификат;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:Telephony — клиент проходит аутентификацию, используя телефонный номер, передаваемый по ADSL-протоколу;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:NomadTelephony — клиент проходит аутентификацию, используя телефонную карту;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:PersonalTelephony — клиент проходит аутентификацию, используя телефонный номер и пользовательский идентификатор, передаваемые по ADSL-протоколу;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:AuthenticatedTelephony — клиент проходит аутентификацию, используя телефонный номер, пользовательский идентификатор и пароль;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:SecureRemotePassword — аутентификация производится с помощью протокола Secure Remote Password Protocol (SRP);

  • urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient — клиент проходит аутентификацию, используя сертификат и протокол SSL/TLS;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken — аутентификация производится с помощью синхронизированных по времени маркеров защиты;

  • urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified — неопределенный способ аутентификации.

Элемент <AttributeStatement> описывает ассоциацию клиента с атрибутами с помощью вложенных элементов <Attribute> или <EncryptedAttribute>. Элемент <Attribute> имеет обязательный атрибут Name, необязательные атрибуты NameFormat и FriendlyName (в SAML 1.1 атрибуты AttributeNamespace и AttributeName) и вложенный элемент <AttributeValue> (значение атрибута).

Элемент <EncryptedAttribute> (только в SAML 2.0) содержит элементы <xenc:EncryptedData> и <xenc:EncryptedKey>.

Атрибут NameFormat указывает URI-идентификатор формата имени атрибута. Спецификация предопределяет следующие URI-идентификаторы:

  • urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified — интерпретация имени атрибута зависит от конкретной реализации, по умолчанию;

  • urn:oasis:names:tc:SAML:2.0:attrname-format:uri — формат URI;

  • urn:oasis:names:tc:SAML:2.0:attrname-format:basic — тип xs:Name (пространство имен http://www.w3.org/2001/XMLSchema).

Атрибут FriendlyName указывает упрощенное имя атрибута.

Элемент <AuthzDecisionStatement> (в SAML 1.1 это элемент <AuthorizationDecisionStatement>) содержит информацию о правах клиента, используя следующие атрибуты и вложенные элементы:

  • обязательный атрибут Resource — URI-идентификатор ресурса, относительно которого назначаются права клиенту;

  • обязательный атрибут Decision — права клиента, возможные значения: Permit, Deny, Indeterminate;

  • обязательный элемент <Action> — действия, разрешенные для ресурсов, указываемые с помощью дополнительного атрибута Namespace (пространство имен действия):

    – urn:oasis:names:tc:SAML:1.0:action:rwedc — соответствует действиям Read, Write, Execute, Delete, Control;

    – urn:oasis:names:tc:SAML:1.0:action:rwedc-negation (по умолчанию) — соответствует действиям Read, Write, Execute, Delete, Control, ~Read, ~Write, ~Execute, ~Delete и ~Control;

    – urn:oasis:names:tc:SAML:1.0:action:ghpp — соответствует действиям GET, HEAD, PUT, POST;

    – urn:oasis:names:tc:SAML:1.0:action:unix — соответствует действиям extended, user, group, world, представленным кодом из 4-х цифр;

  • необязательный элемент <Evidence> — утверждения, которые подлежат авторизации. Элемент <Evidence> может включать в себя элементы <AssertionIDReference>, <AssertionURIRef>, <Assertion>, <EncryptedAssertion>.

SAML-запросы к центру аутентификации и SAML-ответы, содержащие утверждения, включаются в тело SOAP-сообщения с помощью элементов, представляющих запросы, и элементов, представляющих ответы.

Элементы, представляющие запросы, имеют следующие атрибуты и вложенные элементы:

  • обязательный атрибут ID (в SAML 1.1 это атрибут RequestID) — идентификатор запроса;

  • обязательный атрибут Version (в SAML 1.1 это атрибуты MajorVersion и MinorVersion) — версия спецификации SAML (значение — 2.0);

  • обязательный атрибут IssueInstant — время создания запроса;

  • необязательный атрибут Destination (SAML 2.0) — URI-адрес SAML-запроса;

  • необязательный атрибут Consent (SAML 2.0) — по умолчанию urn:oasis:names:tc:SAML:2.0:consent:unspecified, указывает способ получения согласия пользователя на отправку запроса. Возможные значения:

    – urn:oasis:names:tc:SAML:2.0:consent:unspecified — неопределенный способ получения согласия;

    – urn:oasis:names:tc:SAML:2.0:consent:obtained — согласие получается запрашивающей стороной;

    – urn:oasis:names:tc:SAML:2.0:consent:prior — согласие получается запрашивающей стороной предварительно;

    – urn:oasis:names:tc:SAML:2.0:consent:current-implicit — неявное согласие в контексте общего согласия;

    – urn:oasis:names:tc:SAML:2.0:consent:current-explicit — явный запрос согласия;

    – urn:oasis:names:tc:SAML:2.0:consent:unavailable — запрашивающая сторона не получает согласие;

    – urn:oasis:names:tc:SAML:2.0:consent:inapplicable — согласие не требуется;

Примечание

Необязательный элемент <RespondWith> в SAML 2.0 отсутствует.

  • необязательный элемент <ds:Signature> — цифровая подпись запроса;

  • необязательный элемент <saml:Issuer> (SAML 2.0) — сторона, генерирующая запрос;

  • необязательный элемент <Extensions> — расширение спецификации.

Запрос может быть представлен каким-либо из следующих элементов, которые могут иметь дополнительно к вышеперечисленным атрибуты и вложенные элементы:

  • <SubjectQuery> — запрос информации о клиенте, содержит вложенный элемент <saml:Subject>;

  • <AuthnQuery> (в SAML 1.1 <AuthenticationQuery>) — запрос информации об аутентификации клиента. Имеет дополнительный атрибут SessionIndex — фильтрация по сессии, и дополнительный вложенный элемент <RequestedAuthnContext> — фильтрация по контексту аутентификации (в SAML 1.1 AuthenticationMethod);

  • <RequestedAuthnContext> (SAML 2.0) — запрос контекста аутентификации. Имеет вложенные элементы <saml:AuthnContextClassRef> или <saml:AuthnContextDeclRef> и дополнительный атрибут Comparison — метод оценки требуемого контекста. Возможные значения атрибута Comparison: "exact" (по умолчанию, точно совпадает с указанным), "minimum" (возвращаемый контекст по меньшей мере сильнее, чем указанный), "better" (контекст сильнее, чем указанный) и "maximum" (возвращаемый контекст максимально строже, чем указанный);

  • <AttributeQuery> — запрос информации об атрибутах клиента. Вложенные элементы <saml:Attribute> указывают атрибуты, чьи значения должны быть возвращены (в SAML 1.1 это дополнительный атрибут Resource — фильтрация по ресурсам, и необязательный вложенный элемент <AttributeDesignator> — фильтрация по имени атрибута);

  • <AuthzDecisionQuery> (в SAML 1.1 <AuthorizationDecisionQuery>) — запрос информации о правах клиента. Имеет дополнительный атрибут Resource и необязательные элементы < saml:Action> и < saml:Evidence>;

  • <AssertionIDRequest> (в SAML 1.1 <AssertionIDReference>) — запрос по ссылке на утверждение. Имеет вложенный элемент <saml:AssertionIDRef>;

Примечание

Элемент <AssertionArtifact> в SAML 2.0 отсутствует.

  • <AuthnRequest> — запрос клиентом утверждений у центра аутентификации. Дополнительные вложенные элементы и атрибуты:

    – элемент <saml:Subject> описывает клиента, для которого должны быть созданы утверждения;

    – элемент <NameIDPolicy> накладывает ограничения на имя клиента. Дополнительный атрибут Format указывает URI-идентификатор формата имени, возможные значения: unspecified (по умолчанию), emailAddress, X509SubjectName, WindowsDomainQualifiedName, kerberos, entity, persistent, transient и encrypted (пространство имен urn:oasis:names:tc:SAML:2.0:nameid-format). Дополнительные атрибуты: SPNameQualifier (имя сервиса, определяющего имя клиента) и AllowCreate (true/false, разрешает ли отвечающей стороне создавать новый идентификатор для клиента);

    – элемент <saml:Conditions> — предполагаемые условия для возвращаемых утверждений;

    – элемент <RequestedAuthnContext> — требования к контексту аутентификации;

    – элемент <Scoping> определяет отвечающие стороны, которым доверяет запрашивающая сторона. Имеет дополнительный атрибут ProxyCount (количество перенаправлений между центом, получившим запрос, и центром, совершившим аутентификацию) и дополнительные элементы <IDPList> (список доверенных центров аутентификации) и <RequesterID> (список идентификаторов запрашивающей стороны). Элемент <IDPList> содержит элементы <IDPEntry> (информация о центре аутентификации) и дополнительный элемент <GetComplete> (URI-ссылка на дополнительную информацию). Элемент <IDPEntry> имеет обязательный атрибут ProviderID (идентификатор центра аутентификации) и дополнительные атрибуты Name (имя центра аутентификации) и Loc (URI-адрес конечной точки);

    – атрибут ForceAuthn — если true, тогда центр аутентификации производит аутентификацию клиента, даже если он уже ее перед этим прошел, по умолчанию — false;

    – атрибут IsPassive — если true, тогда центр аутентификации сам не взаимодействует с интерфейсом пользователя, по умолчанию — false;

    – атрибут AssertionConsumerServiceIndex — идентификатор, по которому должен быть направлен ответ;

    – атрибут AssertionConsumerServiceURL — URI-адрес, по которому должен быть направлен ответ;

    – атрибут ProtocolBinding — URI-идентификатор протокола, с помощью которого должен быть направлен ответ. Возможные значения (пространство имен urn:oasis:names:tc:SAML:2.0:bindings): SOAP, PAOS (Reverse SOAP в профиле ECP SSO), HTTP-Redirect (сообщение передается по HTTP-протоколу, закодированное в URL-строке), URL-Encoding:DEFLATE (сообщение кодируется в URL-строке, используя механизм сжатия DEFLATE), HTTP-POST (сообщение передается методом HTTP POST), HTTP-Artifact (передача ссылки на утверждение), URI (передача утверждения по идентификатору);

    – атрибут AttributeConsumingServiceIndex — идентификатор информации, описывающей SAML-атрибуты, ожидаемые в ответе;

    – атрибут ProviderName — короткое имя запрашивающей стороны;

  • <ArtifactResolve> — отправка артефакта, содержащего ссылку на утверждение. Вложенный элемент <Artifact> содержит значение, включающее в себя ссылку на утверждение;

  • <ManageNameIDRequest> — сообщение об изменении идентификатора или о прекращении действия идентификатора. Обязательный вложенный элемент <saml:NameID> или <saml:EncryptedID> — текущий идентификатор, и <NewID> или <NewEncryptedID> (новый идентификатор) или <Terminate> (указатель о прекращении действия идентификатора);

  • <LogoutRequest> — запрос на завершение сессии. Дополнительные атрибуты: NotOnOrAfter (время, до которого действует запрос) и Reason (причина завершения сессии, например: urn:oasis:names:tc:SAML:2.0:logout:user — клиент хочет завершить сессию; urn:oasis:names:tc:SAML:2.0:logout:admin — администратор хочет завершить сессию), а также дополнительные вложенные элементы <saml:BaseID> или <saml:NameID> или <saml:EncryptedID> (идентификатор клиента) и <SessionIndex> (идентификатор сессии);

  • <NameIDMappingRequest> — запрос альтернативного идентификатора клиента. Вложенные элементы: <saml:BaseID> либо <saml:NameID> или <saml:EncryptedID> (идентификатор клиента) и <NameIDPolicy> (формат требуемого идентификатора)

Элементы, представляющие ответы, имеют следующие атрибуты и вложенные элементы:

  • обязательный атрибут ID (в SAML 1.1 ResponseID) — идентификатор ответа;

  • дополнительный атрибут InResponseTo — ссылка на идентификатор запроса;

  • обязательный атрибут Version (в SAML 1.1 это атрибуты MajorVersion и MinorVersion) — версия спецификации SAML (значение — 2.0);

  • обязательный атрибут IssueInstant — время создания ответа;

  • дополнительный атрибут Destination (в SAML 1.1 Recipient) — URI получателя ответа;

  • необязательный элемент <ds:Signature> — цифровая подпись ответа;

  • необязательный атрибут Consent (SAML 2.0) — по умолчанию urn:oasis:names:tc:SAML:2.0:consent:unspecified, указывает способ получения согласия пользователя на отправку ответа;

  • необязательный элемент <saml:Issuer> (SAML 2.0) — сторона, генерирующая ответ;

  • необязательный элемент <Extensions> — расширение спецификации;

  • обязательный элемент <Status> — статус выполнения соответствующего запроса. Вложенные элементы: <StatusCode> (обязательный элемент указывает код статуса), <StatusMessage> (дополнительное сообщение) и <StatusDetail> (дополнительные детали). Элемент <StatusCode> может иметь вложенные элементы <StatusCode> (второстепенный код) и имеет обязательный атрибут Value с возможными значениями:

    – urn:oasis:names:tc:SAML:2.0:status:Success — запрос обработан успешно;

    – urn:oasis:names:tc:SAML:2.0:status:Requester — ошибка на стороне запроса;

    – urn:oasis:names:tc:SAML:2.0:status:Responder — ошибка на стороне ответа;

    – urn:oasis:names:tc:SAML:2.0:status:VersionMismatch — ошибка версии.

Значения второстепенного кода:

    – urn:oasis:names:tc:SAML:2.0:status:AuthnFailed — ошибка аутентификации клиента;

    – urn:oasis:names:tc:SAML:2.0:status:InvalidAttrNameOrValue — ошибка содержимого атрибута;

    – urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy — политика идентификатора не поддерживается;

    – urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext — ошибка запроса контекста аутентификации;

    – urn:oasis:names:tc:SAML:2.0:status:NoAvailableIDP — ошибка списка доверенных центров аутентификации (элемент <IDPList>);

    – urn:oasis:names:tc:SAML:2.0:status:NoPassive — пассивная аутентификация невозможна;

    – urn:oasis:names:tc:SAML:2.0:status:NoSupportedIDP — неподдерживаемый список доверенных центров аутентификации (элемент <IDPList>);

    – urn:oasis:names:tc:SAML:2.0:status:PartialLogout — невозможность полного завершения сессии;

    – urn:oasis:names:tc:SAML:2.0:status:ProxyCountExceeded — невозможность перенаправить запрос для аутентификации;

    – urn:oasis:names:tc:SAML:2.0:status:RequestDenied — невозможность ответа на запрос;

    – urn:oasis:names:tc:SAML:2.0:status:RequestUnsupported — неподдерживаемый запрос;

    – urn:oasis:names:tc:SAML:2.0:status:RequestVersionDeprecated — неподдерживаемая версия протокола отвечающей стороной;

    – urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooHigh — версия протокола отвечающей стороны требует обновления;

    – urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooLow — версия протокола запрашивающей стороны требует обновления;

    – urn:oasis:names:tc:SAML:2.0:status:ResourceNotRecognized — ошибка ресурса;

    – urn:oasis:names:tc:SAML:2.0:status:TooManyResponses — ошибка структуры сообщения запроса;

    – urn:oasis:names:tc:SAML:2.0:status:UnknownAttrProfile — неподдерживаемый профиль атрибутов;

    – urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal — неизвестный пользователь;

    – urn:oasis:names:tc:SAML:2.0:status:UnsupportedBinding — неподдерживаемый протокол.

Ответ может быть представлен каким-либо из следующих элементов, которые могут иметь дополнительно к вышеперечисленным атрибуты и вложенные элементы:

  • <Response> имеет необязательный вложенный элемент <Assertion> или <saml:EncryptedAssertion>, который содержит возвращаемое утверждение;

  • <ArtifactResponse> — ответ на запрос <ArtifactResolve>;

  • <ManageNameIDResponse> — ответ на запрос <ManageNameIDRequest>;

  • <LogoutResponse> — ответ на запрос <LogoutRequest>;

  • <NameIDMappingResponse> — ответ на запрос <NameIDMappingRequest>. Вложенные элементы <saml:NameID> или <saml:EncryptedID>.

Спецификация SAML 2.0 определяет способ дополнительного описания участников SAML-взаимодействия в виде XML-документов, содержащих SAML-метаданные взаимодействующих сторон. SAML-метаданные представляют собой конфигурационные данные о том, какие протоколы и профили, системы безопасности поддерживает конкретный участник SAML-взаимодействия. Применение SAML-метаданных упрощает развертывание и работу SAML-системы. При этом SAML-метаданные могут быть опубликованы различными способами, например с помощью идентификатора участника, содержащего URL-адрес документа SAML-метаданных.

Корневым элементом XML-документа SAML-метаданных является элемент <EntitiesDescriptor> или <EntitiesDescriptor> (пространство имен urn:oasis:names:tc:SAML:2.0:metadata), имеющий следующие атрибуты и вложенные элементы:

  • дополнительный атрибут ID — идентификатор документа;

  • дополнительный атрибут validUntil — время окончания действия метаданных;

  • дополнительный атрибут cacheDuration — максимальное время кэширования метаданных;

  • дополнительный атрибут Name — имя группы участников, для которых создаются метаданные;

  • дополнительный элемент <ds:Signature> — цифровая подпись документа;

  • дополнительный элемент <Extensions> содержит элементы расширения спецификации;

  • обязательные элементы <EntitiesDescriptor> или <EntityDescriptor> содержат метаданные участников группы.

Элемент <EntityDescriptor> представляет метаданные одного участника с помощью следующих атрибутов и вложенных элементов:

  • обязательный атрибут entityID — идентификатор участника;

  • дополнительный атрибут ID — идентификатор участника в пределах группы;

  • дополнительный атрибут validUntil — время окончания действия метаданных;

  • дополнительный атрибут cacheDuration — максимальное время кэширования метаданных;

  • дополнительный элемент <ds:Signature> — цифровая подпись метаданных;

  • дополнительный элемент <Extensions> — элементы расширения спецификации;

  • обязательный элемент <RoleDescriptor>, или <IDPSSODescriptor>, или <SPSSODescriptor>, или <AuthnAuthorityDescriptor>, или <AttributeAuthorityDescriptor>, или <PDPDescriptor>, или <AffiliationDescriptor>;

  • дополнительный элемент <Organization> — идентификатор организации, к которой принадлежит участник. Вложенные элементы: <Extensions>, <OrganizationName>, <OrganizationDisplayName> и <OrganizationURL>;

  • дополнительный элемент <ContactPerson> — контактная информация. Имеет обязательный атрибут contactType — тип контакта, возможные значения: technical, support, administrative, billing и other. Дополнительные вложенные элементы: <Extensions>, <Company>, <GivenName>, <SurName>, <EmailAddress> и <TelephoneNumber>;

  • дополнительный элемент <AdditionalMetadataLocation> — местонахождение дополнительных метаданных.

Элемент <RoleDescriptor> содержит следующие атрибуты и элементы:

  • дополнительный элемент ID — идентификатор документа;

  • дополнительный атрибут validUntil — время окончания действия метаданных, содержащихся в элементе;

  • дополнительный атрибут cacheDuration — максимальное время кэширования метаданных, содержащихся в элементе;

  • обязательный атрибут protocolSupportEnumeration — перечень URI-идентификаторов протоколов, поддерживаемых участником;

  • дополнительный атрибут errorURL — адрес дополнительной поддержки;

  • дополнительный элемент <ds:Signature> — цифровая подпись метаданных, содержащихся в элементе;

  • дополнительный элемент <Extensions> — элементы расширения спецификации;

  • дополнительный элемент <KeyDescriptor> — информация о криптографических ключах участника. Имеет дополнительный атрибут use — использование ключа, возможные значения: encryption и signing, обязательный вложенный элемент <ds:KeyInfo> (спецификация XMLSig) и дополнительный вложенный элемент <EncryptionMethod> (спецификация XMLEnc);

  • дополнительный элемент <Organization> — идентификатор организации, к которой принадлежит участник. Вложенные элементы: <Extensions>, <OrganizationName>, <OrganizationDisplayName> и <OrganizationURL>;

  • дополнительный элемент <ContactPerson> — контактная информация. Имеет обязательный атрибут contactType — тип контакта, возможные значения: technical, support, administrative, billing и other. Дополнительные вложенные элементы: <Extensions>, <Company>, <GivenName>, <SurName>, <EmailAddress> и <TelephoneNumber>.

Элемент <IDPSSODescriptor> содержит информацию о центре аутентификации клиента и имеет атрибуты и элементы элемента <RoleDescriptor>, а также дополнительно следующие атрибуты и элементы:

  • дополнительный элемент <ArtifactResolutionService> — информация о конечной точке участника, поддерживающего профиль Artifact Resolution. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки), index (целочисленный идентификатор конечной точки) и дополнительный атрибут isDefault (true/false, указывает использование данной конечной точки по умолчанию);

  • дополнительный элемент <SingleLogoutService> — информация о конечной точке участника, поддерживающего профиль Single Logout. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <ManageNameIDService> — информация о конечной точке участника, поддерживающего профиль Name Identifier Management. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <NameIDFormat> — URI-идентификатор формата псевдонима, поддерживаемый участником (пространство имен urn:oasis:names:tc:SAML:1.1:nameid-format). Возможные значения: unspecified, emailAddress, X509SubjectName, WindowsDomainQualifiedName, kerberos, entity, persistent, transient;

  • дополнительный атрибут WantAuthnRequestsSigned — требование запросов <samlp:AuthnRequest>, получаемых участником, быть снабженными цифровой подписью, по умолчанию false;

  • обязательный элемент <SingleSignOnService> — информация о конечной точке участника, поддерживающего профиль Authentication Request. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями) и Location (URI-адрес конечной точки);

  • дополнительный элемент <NameIDMappingService> — информация о конечной точке участника, поддерживающего профиль Name Identifier Mapping. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями) и Location (URI-адрес конечной точки);

  • дополнительный элемент <AssertionIDRequestService> — информация о конечной точке участника, поддерживающего профиль Assertion Request. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <AttributeProfile> — URI-идентификатор профиля атрибутов, поддерживаемый участником;

  • дополнительный элемент <saml:Attribute> — идентификатор атрибута, поддерживаемый участником.

Элемент <SPSSODescriptor> содержит информацию о сервисе ресурса и имеет атрибуты и элементы элемента <RoleDescriptor>, а также дополнительно следующие атрибуты и элементы:

  • дополнительный элемент <ArtifactResolutionService> — информация о конечной точке участника, поддерживающего профиль Artifact Resolution. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки), index (целочисленный идентификатор конечной точки) и дополнительный атрибут isDefault (true/false, указывает использование данной конечной точки по умолчанию);

  • дополнительный элемент <SingleLogoutService> — информация о конечной точке участника, поддерживающего профиль Single Logout. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <ManageNameIDService> — информация о конечной точке участника, поддерживающего профиль Name Identifier Management. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <NameIDFormat> — URI-идентификатор формата псевдонима, поддерживаемый участником (пространство имен urn:oasis:names:tc:SAML:1.1:nameid-format), возможные значения: unspecified, emailAddress, X509SubjectName, WindowsDomainQualifiedName, kerberos, entity, persistent, transient;

  • дополнительный атрибут AuthnRequestsSigned указывает, что запрос <samlp:AuthnRequest>, посылаемый участником, будет подписан цифровой подписью, по умолчанию false;

  • дополнительный атрибут WantAssertionsSigned указывает, что ответ <saml:Assertion>, получаемый участником, должен быть подписан цифровой подписью, по умолчанию false;

  • обязательный элемент <AssertionConsumerService> — информация о конечной точке участника, поддерживающего профиль Authentication Request. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки), дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения), index (целочисленный идентификатор конечной точки) и дополнительный атрибут isDefault (true/false, указывает использование данной конечной точки по умолчанию);

  • дополнительный элемент <AttributeConsumingService> — информация о сервисе, использующем SAML-атрибуты. Имеет обязательный атрибут index — целочисленный идентификатор элемента, и дополнительный атрибут isDefault, указывающий, что данный сервис используется по умолчанию, по умолчанию значение атрибута — false. Обязательные вложенные элементы: <ServiceName> — имя сервиса и <RequestedAttribute> (дополнительный атрибут isRequired, принимающий значения true/false, указывает необходимость атрибута) — атрибуты, необходимые сервису, а также дополнительный вложенный элемент <ServiceDescription> — описание сервиса.

Элемент <AuthnAuthorityDescriptor> содержит информацию об участнике, отвечающем на запросы <samlp:AuthnQuery>, и имеет атрибуты и элементы элемента <RoleDescriptor>, а также дополнительно следующие элементы:

  • обязательный элемент <AuthnQueryService> — информация о конечной точке участника, поддерживающего запросы <samlp:AuthnQuery>. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <AssertionIDRequestService> — информация о конечной точке участника, поддерживающего запросы <samlp:AssertionIDRequest>. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <NameIDFormat> — URI-идентификатор формата псевдонима, поддерживаемый участником (пространство имен urn:oasis:names:tc:SAML:1.1:nameid-format), возможные значения: unspecified, emailAddress, X509SubjectName, WindowsDomainQualifiedName, kerberos, entity, persistent, transient.

Элемент <PDPDescriptor> содержит информацию об участнике, отвечающем на запросы <samlp:AuthzDecisionQuery>, и имеет атрибуты и элементы элемента <RoleDescriptor>, а также дополнительно следующие элементы:

  • обязательный элемент <AuthzService> — информация о конечной точке участника, поддерживающего запросы <samlp:AuthzDecisionQuery>. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <AssertionIDRequestService> — информация о конечной точке участника, поддерживающего запросы <samlp:AssertionIDRequest>. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <NameIDFormat> — URI-идентификатор формата псевдонима, поддерживаемый участником (пространство имен urn:oasis:names:tc:SAML:1.1:nameid-format), возможные значения: unspecified, emailAddress, X509SubjectName, WindowsDomainQualifiedName, kerberos, entity, persistent, transient.

Элемент <AttributeAuthorityDescriptor> содержит информацию об участнике, отвечающем на запросы <samlp:AttributeQuery>, и имеет атрибуты и элементы элемента <RoleDescriptor>, а также дополнительно следующие элементы:

  • обязательный элемент <AttributeService> — информация о конечной точке участника, поддерживающего запросы <samlp:AttributeQuery>. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <AssertionIDRequestService> — информация о конечной точке участника, поддерживающего запросы <samlp:AssertionIDRequest>. Имеет обязательные атрибуты Binding (URI-идентификатор протокола обмена SAML-сообщениями), Location (URI-адрес конечной точки) и дополнительный атрибут ResponseLocation (URI-адрес, по которому должны отправляться ответные сообщения);

  • дополнительный элемент <NameIDFormat> — URI-идентификатор формата псевдонима, поддерживаемый участником (пространство имен urn:oasis:names:tc:SAML:1.1:nameid-format), возможные значения: unspecified, emailAddress, X509SubjectName, WindowsDomainQualifiedName, kerberos, entity, persistent, transient;

  • дополнительный элемент <AttributeProfile> указывает URI-идентификатор профиля атрибутов, поддерживаемого участником;

  • дополнительный элемент <saml:Attribute> — идентификатор атрибута, поддерживаемый участником.

Элемент <AffiliationDescriptor> описывает объединение участников с помощью следующих атрибутов и элементов:

  • обязательный атрибут affiliationOwnerID — идентификатор участника, отвечающего за объединение;

  • дополнительный атрибут ID — идентификатор элемента;

  • дополнительный атрибут validUntil — время окончания действия метаданных элемента;

  • дополнительный атрибут cacheDuration — максимальное время кэширования метаданных элемента;

  • дополнительный элемент <ds:Signature> — цифровая подпись метаданных элемента;

  • дополнительный элемент <Extensions> — элементы расширения спецификации;

  • обязательные элементы <AffiliateMember> — идентификаторы членов объединения;

  • дополнительный элемент <KeyDescriptor> — информация о криптографических ключах объединения.