SAML Subject confirmation: Holder of Key vs. Sender Vouches

Die Methoden „Holder of Key“ und „Sender Vouches“ der SAML SubjectConfirmation sind leider in der SAML Dokumentation nicht leicht verständlich beschrieben. Es handelt sich um Profile, welche die Vertrauensstellung zwischen Client und Provider des Webservice definieren. Der Unterschied soll dargestellt werden.

Subject Confirmation
Das Element <SubjectConfirmation> authentifiziert den Sender der SAML-Assertion als das <Subject> der Assertion, wobei die <ConfirmationMethod> und Daten in <SubjectConfirmationData> verwendet werden. Dadurch wird die SAML-Assertion zu einem SecurityToken.

Holder-of-Key
Der Request enthält eine Holder-of-Key SAML Assertion, die von ihrem Aussteller mit einer enveloped signature signiert wird, die den Schlüssel des Ausstellers identifiziert. Der SOAP Body wird vom SOAP Client signiert. Das Zertifikat des SOAP Clients ist in der <SubjectConfirmationData> in einem <ds:KeyInfo> Element enthalten.

Beispiel:

<SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">

<SubjectConfirmationData

xsi:type="saml:KeyInfoConfirmationDataType">

<ds:KeyInfo>

<ds:KeyName>MyRequester</ds:KeyName>

</ds:KeyInfo>

</SubjectConfirmationData>

</SubjectConfirmation>

Sender Vouches
Der Request enthält eine sender-vouches SAML Assertion. Assertion und Body Elemente werden vom SOAP-Proxy signiert. Eine Referenz des Zertifikats ist im Header enthalten, während keine Schlüsselinformation des SOAP Clients mitgeliefert wird.

Bearer
[SAML-Profiles] definiert noch eine dritte Methode für die SubjectConfimation, die des Überbringers. Der Überbringer der Assertion wird als Subject angenommen. Da im Token kein Proof-of-possession enthalten ist, muss die Zusicherung anders erfolgen, etwa durch SSL.

Links:
OASIS: SAML Security Token Profile for WSS
SAP Help: Sender vouches
Shibboleth Wiki: Subject Confirmation