Im Standard für SAML-Tokenprofile definierte SAML-Zusicherungen
Der OASIS-Standard Web Services Security SAML Token Profile gibt an, wie SAML-Zusicherungen (Security Assertion Markup Language) mit der Spezifikation "Web Services Security SOAP Message Security" verwendet werden sollen.
Dieses Produkt unterstützt zwei Versionen des SAML-Standards von OASIS: Assertions and Protocol for the OASIS Security Assertion Markup Language (SAML) V1.1 und Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0.
Der Standard beschreibt die Verwendung von SAML-Zusicherungen als Sicherheitstoken im <wsse:Security>-Header, wie in der Spezifikation "WSS: SOAP Message Security" definiert. Eine XML-Signatur kann verwendet werden, um die Subjekte und Anweisungen in der SAML-Zusicherung mit der SOAP-Nachricht zu verbinden.
Subjektbestätigungsmethoden definieren die Verfahren, mit denen eine Entität den Nachweis erbringt, dass eine Beziehung zwischen dem Subjekt und den Claim-Informationen der SAML-Zusicherungen besteht. Die Spezifikation "WSS: SAML Token Profile" beschreibt die Nutzung der drei Subjektbestätigungsmethoden: "bearer", "holder-of-key" und "sender-vouches". Dieses Produkt unterstützt alle drei folgenden Bestätigungsmethoden. Wenn Sie die Subjektbestätigungsmethode "bearer" verwenden, ist der Nachweis der Beziehung zwischen Subjekt und Claim-Informationen implizit. Es sind also keine bestimmten Schritte erforderlich, um die Beziehung herzustellen.
Da einem Token vom Typ "bearer" keine Schlüssel zugeordnet sind, muss der Schutz der SOAP-Nachricht, falls erforderlich, mit einem Verfahren auf Transportebene oder einem anderen Sicherheitstoken auf Nachrichtenebene, wie z. B. X.509-Token oder einem Kerberos-Token, gewährleistet werden. Wenn Sie die Subjektbestätigungsmethode "holder-of-key" verwenden, wird der Nachweis der Beziehung zwischen dem Subjekt und den Claim-Informationen erbracht, indem ein Abschnitt der SOAP-Nachricht mit dem in der SAML-Zusicherung angegebenen Schlüssel signiert wird. Da einem Token vom Typ "holder-of-key" Schlüssel zugeordnet sind, kann dieses Token verwendet werden, um für die SOAP-Nachricht Schutz auf Nachrichtenebene (Signatur und Verschlüsselung) bereitzustellen.
- Ein Sender konfiguriert eine SSL-Sitzung mit einem Empfänger. Dazu verwendet er die Clientzertifikatsauthentifizierung.
- Ein Sender signiert digital SAML-Zusicherungen mit der übergeordneten SOAP-Nachricht. Dazu verwendet er den Umsetzungsalgorithmus der Sicherheitstokenreferenz. Ein Sender kann SSL oder die SOAP-Nachrichtenverschlüsselung verwenden, um die Vertraulichkeit zu schützen.
Zusicherung vom Typ "bearer"
Eine SAML-Zusicherung ist eine Zusicherung vom Typ "bearer", wenn es das Element <saml:ConfirmationMethod> für "bearer" gemäß Definition in den OASIS-Spezifikationen für Web Services Security umfasst. Weitere Informationen finden Sie in den Spezifikationsdokumenten.<saml:SubjectConfirmation>
<saml:ConfirmationMethod>
urn:oasis:names:tc:SAML:1.0:cm:bearer
</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
<saml2:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
</saml2:SubjectConfirmation>
Zusicherung vom Typ "holder-of-key"
Eine SAML-Zusicherung ist eine Zusicherung vom Typ "holder-of-key", wenn sie ein ds:KeyInfo-Element und das Element SubjectConfirmation enthält, vorausgesetzt, dass letzeres ein saml:ConfirmationMethod-Element mit dem Wert holder-of-key umfasst. Weitere Informationen finden Sie in den Spezifikationsdokumenten.Die ds:KeyInfo-Informationen innerhalb des Elements SubjectConfirmation geben einen öffentlichen oder geheimen Schlüssel an, der zur Bestätigung der Identität des Subjekts verwendet wird. Die Zusicherung vom Typ "holder-of-key" enthält auch ein ds:Signature-Element, das die Integrität des Bestätigungselements ds:KeyInfo gemäß Definition des Ausstellers der Zusicherung schützt.
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>
urn:oasis:names:tc:SAML:1.0:cm: holder-of-key
</saml:ConfirmationMethod>
<ds:KeyInfo>
<ds:KeyValue>. . .</ds:KeyValue>
</ds:KeyInfo>
</saml:SubjectConfirmation>
<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
<saml2:SubjectConfirmationData>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
......
</ds:KeyInfo>
</saml2:SubjectConfirmationData>
</saml2:SubjectConfirmation>
Zusicherung vom Typ "sender-vouches"
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>
urn:oasis:names:tc:SAML:1.0:cm:sender-vouches
</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
<saml2:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:sender-vouches">
</saml2:SubjectConfirmation>
Symmetrischer Schlüssel in der Zusicherung vom Typ "holder-of-key"
Eine Zusicherung vom Typ "holder-of-key" für SAML wird als Schutztoken verwendet. Dieser Typ von Schutztoken kann einen symmetrischen Schlüssel als Nachweisschlüssel verwenden. Der Client verwendet den Nachweisschlüssel, um der vertrauenden Partei nachzuweisen, dass der Client tatsächlich Eigner des ausgegebenen SAML-Tokens ist. Wenn ein Sicherheitstokenservice ein SAML-Token ausgibt, das einen symmetrischen Nachweisschlüssel verwendet, enthält das Token einen Schlüssel, der für den Zielservice verschlüsselt wird. Der STS sendet denselben Nachweisschlüssel als Teil der RequestSecurityTokenResponse (RSTR) auch an den Requester in einem <RequestedProofToken>-Element. Der Web-Service-Client übergibt das SAML-Token dann dem Zielservice, der auch als vertrauende Seite bezeichnet wird, und signiert die Anwendungsnachricht mit dem empfangenen Nachweisschlüssel.<t:KeyType> http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey
</t:KeyType>
<t:KeySize>256</t:KeySize>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:holder-of-key</saml:ConfirmationMethod>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<enc:EncryptedKey xmlns:enc="http://www.w3.org/2001/04/xmlenc#">
<enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
</enc:EncryptionMethod>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIB3 . . . vO3bdg</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<enc:CipherData>
<enc:CipherValue>P5Kb . . . rOTvII</enc:CipherValue>
</enc:CipherData>
</enc:EncryptedKey>
</ds:KeyInfo>
</saml:SubjectConfirmation>
Öffentlicher Schlüssel in der Zusicherung vom Typ "holder-of-key"
Wenn eine SAML-Zusicherung vom Typ "holder-of-key" als Schutztoken verwendet wird, kann das Token einen öffentlichen Schlüssel als Nachweisschlüssel verwenden. Der Client verwendet den Nachweisschlüssel, um der vertrauenden Partei nachzuweisen, dass der Client tatsächlich Eigner des ausgegebenen SAML-Tokens ist. Der Vorteil eines öffentlichen Nachweisschlüssels im Vergleich zu einem symmetrischen Schlüssel besteht darin, dass der Client den geheimen Schlüssel nicht mit dem Sicherheitstokenservice (STS) und der vertrauenden Partei gemeinsam nutzt. Der öffentliche Nachweisschlüssel kann ein X509-Zertifikat oder ein öffentlicher RSA-Schlüssel (Rivest Shamir Adleman) sein.<trust:UseKey>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>MIIGCzCCBPOgAwIBAgIQcSgVwaoQv6dG. . .1GqB
</X509Certificate>
</X509Data>
</KeyInfo>
</trust:UseKey>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:holder-of-key</saml:ConfirmationMethod>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>hYHQm. . . ZnH1S0=</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</saml:SubjectConfirmation>