Ein Identitätsanbieter für „ SAML “ Enterprise
Dieser Abschnitt enthält Informationen zu den Metadaten von „ SAML “ und zur Zuordnung von Benutzerattributen, die für die Konfiguration eines „ SAML Enterprise“-Identitätsanbieters erforderlich sind.
SAML ist ein XML-Standard für den Austausch von Single-Sign-On-Informationen zwischen einem Identitätsanbieter, der die Identität des Benutzers bestätigt, und einem Dienstanbieter, der diese Identitätsinformationen nutzt. Im Vergleich zu einem Cloud-Verzeichnis-Identitätsanbieter ist die Konfiguration eines „ SAML “-Enterprise-Identitätsanbieters aufwändiger.
- Die Authentifizierung der IBM® Verify Teilnehmer an einen externen Identitätsanbieter, der die Benutzer authentifiziert. Beispiele sind Microsoft ADFS und Microsoft Azure AD.
- Füllt ein Verify Benutzer-Anmeldetoken mit den zurückgegebenen Benutzeridentitätsdaten.
- Stellen Sie die Metadatendatei des Identitätsanbieters „ SAML “ ( 2.0 ) dem Identitätsanbieter „ SAML Enterprise“ zur Verfügung.
- Beziehen Sie die Metadatendatei des Dienstanbieters „ SAML “ ( 2.0 ) vom Identitätsanbieter „ SAML Enterprise“.
Voraussetzungen für SAML-Metadaten
- Sowohl der Inhalt der Metadatendatei des Service-Providers als auch der Inhalt der Metadatendatei des Identitätsproviders muss der SAML 2.0-Spezifikation entsprechen.
- Die Metadatendatei des Identitätsanbieters muss den öffentlichen Schlüssel des Identitätsanbieters enthalten, damit der Identitätsanbieter von „ SAML Enterprise“ dessen digitale Signatur überprüfen kann. Die Metadaten von „ SAML “ müssen ein
<KeyDescriptor>-Element enthalten. Beispiel für ein Element<KeyDescriptor>für Signierschlüssel:<md:KeyDescriptor use="signing"> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Data> <X509Certificate>idp.example.com SSO key</X509Certificate> </X509Data> </KeyInfo> </md:KeyDescriptor> - Die Metadatendatei des Service-Providers muss mindestens ein
Element
<md:KeyDescriptor use="signing">enthalten. Beispiel:<md:KeyDescriptor use="signing"> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Data> <X509Certificate>(...signing certificate...)</X509Certificate> </X509Data> </KeyInfo> </md:KeyDescriptor> - Wenn der Identitätsanbieter „ SAML Enterprise“ ein internes Stamm- oder Zwischenzertifikat verwendet, muss jedes Zertifikat in der Kette einen
<X509Certificate>-Abschnitt enthalten. Beispiel:<KeyDescriptor use="signing"> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Data> <X509Certificate>...root CA base64 encoded public certificate...</X509Certificate> <X509Certificate>...intermediate CA base64 encoded public certificate...</X509Certificate> <X509Certificate>...signer base64 encoded public certificate ...</X509Certificate> </X509Data> </KeyInfo> </KeyDescriptor>Aktualisieren Sie sowohl<md:KeyDescriptor use="signing">das als auch<md:KeyDescriptor use="encryption">das Element in den Metadaten von „ SAML “.VerifyHinweis: Das Zertifikat im<md:KeyDescriptor use="encryption">-Element der Metadatendatei des Dienstanbieters kann vom externen Identitätsanbieter SAML 2.0 verwendet werden, um die SAML2 -Assertion-Elemente zu verschlüsseln und an zu senden.
SAML Zuordnung von Assertions und Verify Anmeldetoken
- Das Verify Anmeldetoken, das einen authentifizierten Verify Connect-Benutzer repräsentiert.
Es speichert die Identität des Benutzers und die zugehörigen Attributinformationen.
- Eine ausgehende „ SAML “-Anfrage an die Anwendung „ SaaS “.
| Der Wert dieses Elements „ SAML “ | wird dem Verify Anmeldetoken als |
|---|---|
<saml:Subject><saml:NameID> |
preferred_username |
<saml:Issuer> |
realmName, sofern realmName die Behauptung nicht ausdrücklich in der Aussage „ SAML “ enthalten ist.Hinweis: Wenn
<saml:Issuer> die Form http(s) URL hat, wird das <hostname> im URL extrahiert und zum Festlegen des realmName Attributs verwendet. |
<saml:AttributeStatement>Weitere Informationen zur Benutzeridentität können in der „ SAML “-Assertion enthalten sein. Das Element <saml:AttributeValue>
unterstützt nur den Zeichenfolgedatentyp.
<saml:Attribute Name> einem der folgenden Standardattribute aus dem Verify Cloud-Verzeichnis entspricht, wird das Attribut dem Verify Anmeldetoken als Standardattribut mit demselben Attributnamen hinzugefügt:preferred_usernamegiven_namefamily_namenameoderdisplayNameemailoderemailAddressgroupsodergroupIdsuserIDrealmNamemobile_number
Wenn die <saml:Attribute Name> keinem der Standardattribute aus dem Verify Cloud-Verzeichnis entsprechen, wird das Attribut dem Verify Anmeldetoken als erweitertes Attribut hinzugefügt. Erweiterte Attribute haben ein Präfix
ext:: in den ursprünglichen Attributnamen.
emailAddressIm Folgenden finden Sie ein Beispiel für eine Antwort vom Typ „ SAML “, deren Attributangabe <saml:AttributeStatement> die Attribute und mobile_number enthält, die an das Verify Credential-Token weitergegeben werden sollen.<?xml version="1.0"?>
<samlp:Response xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ID="FIMRSP_549f7c46-014a-195f-b377-f24678dbf88a"
IssueInstant="2014-12-16T19:42:25Z" Version="2.0">
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion ID="Assertion-uuid549f74ad-014a-120d-a67b-f24678dbf88a"
IssueInstant="2014-12-16T19:42:23Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://idp.example.com/SAML</saml:Issuer>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">testuser
</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2014-12-16T19:43:23Z"
Recipient="https://sp.iam.ibmcloud.com/SAML"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2014-12-16T19:41:23Z" NotOnOrAfter="2014-12-16T19:43:23Z">
<saml:AudienceRestriction>
<saml:Audience>https://sp.iam.ibmcloud.com/SAML</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2014-12-16T19:42:23Z"
SessionIndex="uuid549ad19a-014a-1451-8e4d-998e0731058a"
SessionNotOnOrAfter="2014-12-16T20:42:21Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute Name="emailAddress"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xsi:type="xs:string">testuser@idp.example.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="mobile_number"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xsi:type="xs:string">01234556789</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
{
"preferred_username":"testuser",
"realmName": "idp.example.com",
"email":"testuser@idp.example.com",
"ext:mobileNumber": "01234556789"
}