Web Authentication Service Schnittstelle
Der Web Authentication Service (WAS) ist für die Authentifizierung von Nutzern und das Ausstellen von SAML Tickets verantwortlich. Folgende Parameter werden über die HTTP-GET-Schnittstelle des WAS erwartet.
Anfrageparameter | Erforderlich/ Optional | Beschreibung |
---|---|---|
|
|
Versionsparameter, der Wert muss |
|
|
Operationsname, der Wert muss |
|
|
Authentifizierungsmethode, diese gibt vor welcher Wert im |
|
|
Die Authentifizierungs-informationen des Nutzers, codiert wie durch die Authentifizierungsmethode gefordert. |
|
|
Flag ob ein Ticket für einen anonymen Nutzer ausgestellt werden soll. |
|
|
Gibt das Format vor, das vom WAS zurückgegeben werden soll.
Standardmäßig wird immer ein samlp:Response Element erzeugt.
Setzt man |
Folgende Authentifizierungsmethoden (METHOD
) werden unterstützt:
- urn:opengeospatial:authNMethod:OWS:1.0:password
-
Passwortauthentifizierung. Hierbei muss der
CREDENTIALS
Parameter den Nutzernamen und nachfolgend das Passwort als Base64-kodiertes kommasepariertes Paar enthalten.Beispiel:
CREDENTIALS=dGVzdA==,dGVzdA==
- urn:opengeospatial:authNMethod:OWS:1.0:samlresponse
-
Bezeichnet die SAML-Ticket Authentifizierung. Hierbei muss der
CREDENTIALS
Parameter ein gültiges base64 codiertessamlp:Response
odersaml:Assertion
Element beinhalten, wie es vom WAS ausgestellt wird.Diese Methode kann z.B. zur Ticketerneuerung (vor dem Ablauf der Gültigkeit eines Tickets verwendet werden).
Die oben beschriebenen Parameter können einfach an den Link http(s)://[HOST]/administration/WAS
als URL Parameter angehängt werden, d.h. der Aufruf erfolgt per HTTP-GET.
http://localhost:8080/administration/WAS?VERSION=1.1&REQUEST=GetSAMLResponse&METHOD=urn:opengeospatial:authNMethod:OWS:1.0:password&CREDENTIALS=dGVzdA==,dGVzdA==
http://localhost:8080/administration/WAS?VERSION=1.1&REQUEST=GetSAMLResponse&METHOD=urn:opengeospatial:authNMethod:OWS:1.0:password&ANONYMOUS=TRUE&CREDENTIALS=
Das Ergebnis einer WAS-Authentifizierung ist ein base64 codiertes samlp:Response Element. Wird dieses Ticket dekodiert, sieht es z.B. wie folgt aus:
<Response xmlns="urn:oasis:names:tc:SAML:1.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" IssueInstant="2010-02-12T10:42:35.765Z" MajorVersion="1" MinorVersion="1" ResponseID="_84902b97cd7c2f66beeed4500dc475a1">
<Status>
<StatusCode Value="samlp:Success"/>
</Status>
<Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion" AssertionID="_040bf74af75f3d3456aa88bacc19742c" IssueInstant="2010-02-12T10:42:35.765Z" Issuer="ct-security" MajorVersion="1" MinorVersion="1">
<Conditions NotBefore="2010-02-12T10:42:35.280Z" NotOnOrAfter="2010-02-12T11:42:35.280Z"/>
<AuthenticationStatement AuthenticationInstant="2010-02-12T10:42:35.280Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">
<Subject>
<NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">anonymous-946d7e7b-c176-4945-b54b-822e34101514</NameIdentifier>
</Subject>
</AuthenticationStatement>
<AttributeStatement>
<Subject>
<NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">anonymous-946d7e7b-c176-4945-b54b-822e34101514</NameIdentifier>
</Subject>
<Attribute AttributeName="gender" AttributeNamespace="urn:ct:names">
<AttributeValue xsi:type="xsd:string">M</AttributeValue>
</Attribute>
<Attribute AttributeName="urn:conterra:names:sdi-suite:policy:attribute:group-name" AttributeNamespace="urn:ct:names">
<AttributeValue xsi:type="xsd:string">Gast</AttributeValue>
</Attribute>
<Attribute AttributeName="urn:conterra:names:sdi-suite:policy:attribute:user-id" AttributeNamespace="urn:ct:names">
<AttributeValue xsi:type="xsd:string">2</AttributeValue>
</Attribute>
<Attribute AttributeName="urn:conterra:names:sdi-suite:policy:attribute:group-id" AttributeNamespace="urn:ct:names">
<AttributeValue xsi:type="xsd:string">2</AttributeValue>
</Attribute>
<Attribute AttributeName="mail" AttributeNamespace="urn:ct:names">
<AttributeValue xsi:type="xsd:string">t.test@example.com</AttributeValue>
</Attribute>
<Attribute AttributeName="urn:conterra:names:sdi-suite:policy:attribute:role" AttributeNamespace="urn:ct:names">
<AttributeValue xsi:type="xsd:string">gast</AttributeValue>
</Attribute>
</AttributeStatement>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">..</ds:Signature>
</Assertion>
</Response>