2009-02-09 13 views
7

Czy można wysyłać atrybuty w żądaniu autoryzacji SAML?Czy atrybuty są dozwolone w żądaniu autoryzacji 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> 

Odpowiedz

7

Technicznie, tak, to jest możliwe, ponieważ AuthnRequest może zawierać element rozszerzeń, które mogą zawierać wszystko - patrz the SAML 'core' spec: AuthnRequest (sekcja 3.4.1) pochodzi od RequestAbstractType (sekcja 3.2.1), który ma opcjonalne rozszerzenia. Nadawca i odbiorca musieliby uzgodnić składnię i semantykę danych przesyłanych w ten sposób.

Nie widzę bardziej "konwencjonalnego" sposobu, aby to zrobić, ponieważ Atrybuty zwykle znajdują się w asercji, a nie w AuthnRequests.

+0

Dzięki za pomoc wcześniej. Mam dodatkowy komentarz. Czy jest to dla SAML 2.0 lub SAML 1.0 lub obu? – jon077

+0

To było dla SAML 2.0. Patrząc na sekcję 3.2.1 specyfikacji SAML 1.1 (http://www.oasis-open.org/committees/download.php/3406/oasis-sstc-saml-core-1.1.pdf), nie ma elementu Extensions, więc nie sądzę, że możesz to zrobić z SAML 1.x. – metadaddy

+0

Ten wpis bardzo mi pomógł, kiedy go opublikowałem. Byłem w stanie używać rozszerzeń i Shibboleth do przekazywania atrybutów w AuthnRequest. Używam teraz OpenAM i zastanawiałem się, czy możliwe było uzyskanie dostępu do rozszerzeń z AMLoginModule. To jest możliwe? – jon077

0

Istnieje przypadek, w którym atrybuty mają być częścią żądania auth. , dzięki czemu możemy uzyskać tę nazwę atrybutu z żądania, aby utworzyć taką samą odpowiedź na żądanie.

ponieważ dostawca usług sprawdza poprawność odpowiedzi, porównując nazwy atrybutów. Możemy przyjąć przykład Salesforce jako usługodawcy, gdzie to samo dzieje się.

Powiązane problemy