2016-03-08 15 views
5

I rodzaju zrozumieć podstawowe SAML uwierzytelniania ma działać:SAML Zapytanie Atrybuty AuthnRequest

użytkownika żądania zasobu przy SP
SP wysyła żądania uwierzytelniania do IDP
IDP uwierzytelnia użytkownika i wysyła z powrotem niektóre userid
SP wysyła zapytanie do atrybutu IDP dodatkowych szczegółów z userid
IDP odsyła atrybuty
SP daje zasób użytkownika

Mój problem jest, można dowolny sposób obejścia Attribut eQuery. Kiedy zgłoszę żądanie SAML 2.0 do mojego serwera testowego Gluu/Shibboleth, otrzymuję zwrot givenName (imię) i sn (nazwisko). Czy mimo to mogę poprosić o identyfikator użytkownika i adres e-mail inum tylko w AuthnRequest?

Moja prośba jest całkiem prosta:

<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> 

Zapytanie wrócę to coś takiego:

<?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> 

czytam odpowiednią część specyfikacji, i to zdaje się mówić do serwera może oddać to, czego naprawdę chce (i ile atrybutów chce)? Moje pytanie brzmi, czy mogę zmusić serwer SAML Gluu/Shibboleth do przekazania mi konkretnych atrybutów w ramach AuthnRequest.

Odpowiedz

2

Musisz dodać pożądane atrybuty do uwolnionych atrybutów w relacji zaufania w dostawcy tożsamości. Afaik nie ma sposobu, aby konkretnie żądać atrybutów.

+0

Nienawidzę cię ..... – jn1kk

+0

@Mike git good. – jn1kk

3

Wystarczy podać nieco więcej szczegółów, czas oczekiwania na dodatkowe atrybuty, takie jak SP, gdy wysyłasz metadane do dostawcy tożsamości. Te metadane opisują Twoją usługę, włączając punkt końcowy ACS, publiczny certyfikat, z którym będą podpisywane Twoje żądania AuthnRequest, certyfikat, który chcesz, aby twój partner szyfrował, wymagane atrybuty, unikalny identyfikator jednostki itp. jest to, że po ustaleniu, czego potrzebuje twoja usługa, metadane nie muszą się zmieniać - dla KAŻDEGO partnera. Możesz wysłać go do wszystkich, z którymi współpracujesz.

Gdy twój partner otrzyma te metadane, zaimportuje je i spełni żądane atrybuty z informacjami z ich repozytorium tożsamości, skonfiguruje podpisywanie i szyfrowanie itd. Po wykonaniu wszystkich zadań wyśle ​​Ci swoje metadane, które zawiera ich punkty końcowe protokołu (gdzie musisz wysyłać AuthnRequest itp.), certyfikat, który może potwierdzić ich podpisanie, zatwierdzenie atrybutów, które do ciebie wysyłają (te mogą się zmienić, w oparciu o rozmowy, które powinieneś trzymać ze swoim partner) itp.

Otrzymujesz te metadane i importujesz je do swojego systemu, a także budujesz połączenia do swoich aplikacji w razie potrzeby.

Powiązane problemy