2016-03-08 5 views
5

Я отчасти понимаю, как основной SAML аутентификации должен работать: ресурс запросаSAML Атрибуты запроса В AuthnRequest

пользователя в SP
SP отправляет запрос аутентификации на IDP
IDP проверяет подлинность пользователя и отправляет обратно часть USERID
SP посылы атрибут запроса к IDP для получения дополнительной информации с USERID
IDP отправляет атрибуты
SP предоставляет пользовательский ресурс

Моего вопрос, может вам какой-либо способ перепуска Attribut eQuery. Когда я делаю запрос SAML 2.0 на свой сервер Gluu/Shibboleth, я возвращаюсь обратно givenName (первое имя) и sn (lastname). Есть ли в любом случае я могу запросить inum идентификатор пользователя и адрес электронной почты только в AuthnRequest?

Мой запрос довольно прост:

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="MyPrefix1457456412304" Version="2.0" IssueInstant="2016-03-08T17:00:12Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"> 
    <saml:Issuer>me.com</saml:Issuer> 
</samlp:AuthnRequest> 

Запрос я возвращусь что-то вроде этого:

<?xml version="1.0" encoding="UTF-8"?> 
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="_bff09cf745ea5722aac3f3ec57c0ecf3" IssueInstant="2016-03-08T17:01:06.140Z" Version="2.0"> 
    <saml2:Issuer .... 
    <saml2:AttributeStatement> 
     <saml2:Attribute FriendlyName="sn" Name="urn:oid:2.5.4.4" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> 
      <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">User</saml2:AttributeValue> 
     </saml2:Attribute> 
     <saml2:Attribute FriendlyName="givenName" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> 
      <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Admin</saml2:AttributeValue> 
     </saml2:Attribute> 
    </saml2:AttributeStatement> 
</saml2:Assertion> 

Я прочитал соответствующую часть спецификации, и, кажется, говорят, сервер может вернуть все, что захочет (и сколько ему нужно)? Опять же, мой вопрос заключается в том, могу ли я заставить сервер SAML Gluu/Shibboleth вернуть мне определенные атрибуты в составе AuthnRequest.

ответ

2

Вам необходимо добавить нужные атрибуты к освобожденным атрибутам в ваших отношениях доверия на IdP. Afaik нет способа запросить атрибуты.

+0

Я вас ненавижу ..... – jn1kk

+0

@Mike git хорошо. – jn1kk

3

Чтобы предоставить более подробную информацию, вам необходимо запросить дополнительные атрибуты в качестве СП, когда вы отправляете свои метаданные в IdP. Эти метаданные описывают вашу службу, включая конечную точку ACS, общедоступный сертификат, с которым будут подписаны ваши AutnRequests, сертификат, который вы хотите, чтобы ваш партнер зашифровал, требуемые атрибуты, уникальный идентификатор объекта и т. Д. Хорошая вещь заключается в том, что как только вы определяете, что вам нужно, эти метаданные не должны меняться - для ЛЮБОГО партнера. Вы можете отправить его всем, с кем вы сотрудничаете.

Как только ваш партнер получит эти метаданные, они импортируют его и выполняют атрибуты, которые вы запросили, из информации из своего репозитория, настройте подписи и шифрование и т. Д. Как только все будет сделано, они отправят вам свои метаданные, которые содержат их конечные точки протокола (где вам нужно отправить AuthnRequests и т. д.), сертификат, который может подтвердить их подписание, проверку атрибутов, которые они отправляют вам (они могут изменяться в зависимости от разговоров, которые вы должны удерживать с помощью своих партнер) и т. д.

Вы получаете эти метаданные и импортируете их в свою систему и при необходимости устанавливаете соединения (ы) в своих приложениях.