SAML-Sicherheitsanbieter in Jitterbit App Builder
SAML Single Sign-On (SSO)-Authentifizierung wird in den folgenden Dokumenten definiert:
- Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0
- SAML Version 2.0 Errata 05
In einem SSO-Szenario gibt es drei Rollen:
- Principal - Der Benutzer, der auf einen geschützten Service zugreift.
- Service Provider (SP) - Bietet Zugang zu geschützten Services.
- Identity Provider (IdP) - Authentifiziert Benutzer.
App Builder kann mit dem entsprechenden Sicherheitsanbieter entweder als SP oder IdP konfiguriert werden. Dieses Dokument behandelt den SAML-Sicherheitsanbieter, der für die SP-Rolle verwendet wird. In dieser Rolle delegiert App Builder die Authentifizierung an einen Dritt-IdP. Unterstützte IdPs sind:
Für die IdP-Rolle siehe SAML-Identitätsanbieter.
Flows
Die SAML Single Sign-On (SSO)-Spezifikation definiert mehrere Flows. Der SAML-Sicherheitsanbieter unterstützt die folgenden SAML SSO-Flows:
- Von Service Provider (SP) initiiert
- Von Identity Provider (IdP) initiiert
Von Service Provider (SP) initiiert
Bei einem von Service Provider (SP) initiierten Flow navigiert ein Benutzer zu App Builder und versucht, auf eine geschützte Seite zuzugreifen. App Builder leitet den Benutzer über die SAML Redirect-Bindung (HTTP GET) an den Identity Provider (IdP) weiter. Nach der Authentifizierung leitet der IdP den Benutzer über die SAML Post-Bindung (HTTP POST) zurück an App Builder. App Builder validiert die SAML Response, ordnet die Namenkennung einem lokalen App Builder-Benutzerkonto zu und gewährt die mit dem Benutzerkonto verbundenen Rechte.
Beachten Sie, dass App Builder vor der Weiterleitung des Benutzers zum IdP die URL der Seite speichert, auf die der Benutzer zuzugreifen versuchte. Nach der Authentifizierung des Benutzers leitet App Builder den Benutzer zurück zur ursprünglich angeforderten Seite. Dies ermöglicht Deep Linking.
Von Identity Provider (IdP) initiiert
Bei einem von Identity Provider (IdP) initiierten Flow navigiert ein Benutzer direkt zum IdP. Nach der Authentifizierung wird der Benutzer über die SAML Post-Bindung (HTTP POST) an App Builder weitergeleitet. Wie bei dem von SP initiierten Flow validiert App Builder die SAML Response, ordnet die Namenkennung einem lokalen App Builder-Benutzerkonto zu und gewährt die mit dem Benutzerkonto verbundenen Rechte.
In der Regel leitet App Builder den Benutzer nach erfolgreicher Anmeldung auf seine Startseite weiter. Der IdP kann jedoch ein Deep Linking durchführen, indem er den URI im SAML Response-Parameter RelayState übergibt. Siehe den Parameter AllowRelayStateRedirects unten.
Konfiguration
Tokens
- Issuer: Der SAML-Assertion-Aussteller. Der Standardwert ist die Audience.
- Audience: Einschränkung der SAML-Assertion-Audience. Der Wert muss ein syntaktisch gültiger URI sein.
- Recipient: Der SAML-Assertion-Empfänger. Dieser Wert muss ein syntaktisch gültiger URI sein. Der Standardwert ist der Assertion Consumer Service URI (z.B. https://example.com/Vinyl/signin-SAML).
Vorsicht
Aus Gründen der Rückwärtskompatibilität ist Audience standardmäßig auf die Anwendungs-Root-URL eingestellt (z.B. https://example.com/Vinyl/). Es wird dringend empfohlen, Audience explizit festzulegen, anstatt sich auf den Standard zu verlassen.
Endpoints
| Typ | Beschreibung |
|---|---|
| Metadata Endpoint | Metadaten-Endpoint des SAML Single Sign-On (SSO)-Service. Dieser Parameter ist erforderlich, wenn die Parameter Request Redirect Endpoint oder SigningCertificate nicht definiert sind. |
| RelayState URI | Zulässiger RelayState-Weiterleitungs-URI für eine von SAML Identity Provider (IdP) initiierte Anfrage. Siehe den Parameter AllowRelayStateRedirects für weitere Informationen. |
| Request Redirect Endpoint | SAML Single Sign-On (SSO)-Authentifizierungsanfrage-Endpoint für die Redirect-Bindung. Dieser Parameter ist erforderlich, wenn der Metadata Endpoint nicht definiert ist. |
Zertifikate
| Zweck | Typ | Format | Beschreibung |
|---|---|---|---|
| Signaturvalidierung | X.509-Zertifikat |
|
X.509-Zertifikat zur Validierung von SAML Single Sign-On (SSO)-Antwortsignaturen. Das Signaturvalidierungszertifikat ist erforderlich, wenn der Metadaten-Endpunkt nicht definiert ist. |
Eigenschaften
Der SAML-Sicherheitsanbieter definiert die folgenden zusätzlichen Parameter:
| Parameter | Standard | Beschreibung |
|---|---|---|
| AllowRelayStateRedirects | False |
Gibt an, ob eine von einem SAML-Identitätsanbieter (IdP) initiierte Anmeldung einen Umleitungs-URI im Parameter RelayState enthalten darf. Der Umleitungs-URI ist der Ort, an den der Benutzer nach der Anmeldung umgeleitet wird. Standardmäßig darf der RelayState-Parameter keinen Umleitungs-URI enthalten. Stellen Sie die Einstellung auf True, um Umleitungs-URIs im Parameter RelayState zuzulassen. Um sich vor Open-Relay-Angriffen zu schützen, muss der URI mit dem Endpunkt RelayState-URI übereinstimmen. |
| IgnoreTlsErrors | False |
Gibt an, ob App Builder HTTPS-Zertifikatsfehler ignorieren soll, wenn Back-Channel-Anfragen zum Abrufen der Dienst-Metadaten gestellt werden. Diese Einstellung ist nur für Setup- und Testzwecke bestimmt. Aktivieren Sie diese Einstellung nicht auf einem laufenden System. |
| SignatureRequirement | AssertionOrResponse |
Gibt an, ob die SAML-Antwort, die Assertion oder beide signiert sein müssen. Optionen sind: - AssertionOrResponse - Entweder die Assertion oder die Antwort muss signiert sein. - Assertion - Die Assertion muss signiert sein. - Response - Nur die Antwort muss signiert sein. Die Assertion erbt die Antwortsignatur. - AssertionAndResponse - Sowohl die Assertion als auch die Antwort müssen signiert sein. |
| LogPII | False |
Gibt an, dass personenbezogene Daten (PII) protokolliert werden sollen. Diese Einstellung wird beim Start wirksam. |
Ansprüche
SAML-Assertionen enthalten Attribute. Attribute sind mehrwertige Schlüssel-Wert-Paare. App Builder behandelt SAML-Assertion-Attribute als Ansprüche. Der Attributname wird einem Anspruchsidentifikator zugeordnet.
Beispiel: Gegeben sei eine SAML-Assertion mit dem folgenden Attribut:
<Attribute AttributeName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
<AttributeValue>Arthur.Dent</AttributeValue>
</Attribute>
Das Zuordnen des Identifikators http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name zur Eigenschaft Name setzt den Benutzernamen auf „Arthur.Dent", wenn das Benutzerkonto bereitgestellt wird.
Die folgende Tabelle beschreibt die Standard-Anspruchszuordnungen:
| Identifikator | Zweck | Beschreibung |
|---|---|---|
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier | Namensidentifikator | Eindeutiger, unveränderlicher Identifikator zur Zuordnung der Drittanbieter-Identität zu einem App Builder-Benutzer. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | Name | Benutzername. |
| http://schemas.xmlsoap.org/claims/Group | Gruppe | Sicherheitsgruppenmitgliedschaft. |
| http://schemas.zudy.com/identity/claims/fullname | Vollständiger Name | Vollständiger Name. |
| http://schemas.zudy.com/identity/claims/displayname | Anzeigename | Angezeigter Name. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress | E-Mail-Adresse | E-Mail-Adresse. |
| http://schemas.zudy.com/identity/claims/phonenumber | Telefonnummer | Telefonnummer. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint | X.509-Zertifikat-Fingerabdruck. | |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname | Unterscheidungsname des X.509-Zertifikats. | |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns | DNS-Name des X.509-Zertifikats. |
Integration
Assertion Consumer Service
Der SAML-Sicherheitsanbieter stellt einen einzelnen Endpunkt zur Verfügung. Der Endpunkt empfängt SAML-Responses. Dies wird als Assertion Consumer Service bezeichnet. Eine App Builder Assertion Consumer Service URL könnte etwa wie folgt aussehen:
https://example.com/Vinyl/signin-SAML
Die URL besteht aus folgenden Teilen:
| Komponente | Beschreibung |
|---|---|
| https://example.com/Vinyl/ | Absolute URL des App Builder-Anwendungswurzelverzeichnisses. |
| SAML | SAML-Sicherheitsanbieter-Schema. Der Wert ist case-sensitive. Sonderzeichen müssen URL-kodiert werden. |
Benutzer bereitstellen
Nachdem der SAML-Sicherheitsanbieter konfiguriert ist, müssen Sie sicherstellen, dass Benutzer über entsprechende Identitäten in App Builder verfügen, um sich erfolgreich anzumelden.
Manuelle Bereitstellung
Benutzer können von einem Administrator manuell dem SAML-Sicherheitsanbieter zugeordnet werden:
-
Navigieren Sie zu IDE > Benutzerverwaltung.
-
Klicken Sie im Panel Identities auf + Identity, um eine neue Identität zu erstellen.
-
Wählen Sie beim Konfigurieren der neuen Identität SAML als Sicherheits-Provider aus und geben Sie die Identifier ein, die mit dem IdP-Benutzernamen des Benutzers übereinstimmt (normalerweise die E-Mail oder NameID).
Automatische Bereitstellung
Um Massenbenutzer-Onboarding ohne manuelle Eingabe zu verwalten, können Sie die Funktion Match Existing User aktivieren. Dies ist hilfreich, wenn Sie bereits eine Liste von Benutzern in App Builder haben und diese bei ihrer ersten Anmeldung automatisch mit ihren SAML-Identitäten verknüpfen möchten.
-
Navigieren Sie zu IDE > Sicherheitsanbieter.
-
Falls Ihr SAML-Sicherheitsanbieter bereits vorhanden ist, suchen Sie ihn im Panel Security Providers und doppelklicken Sie auf das Erweiterungssymbol am Ende seiner Zeile. Falls er noch nicht vorhanden ist, klicken Sie auf + Security Provider.
-
Suchen Sie im angezeigten Konfigurationsbildschirm die Feldgruppe Provisioning und aktivieren Sie das Kontrollkästchen User Provisioning. Dadurch wird das Kontrollkästchen Match Existing User angezeigt. Aktivieren Sie es.
Nachdem diese Funktion aktiviert ist, prüft App Builder bei jedem Anmeldeversuch eines Benutzers über SAML, ob bereits ein lokales Benutzerkonto mit einem Benutzernamen vorhanden ist, der dem SAML-Namensbezeichner entspricht. Wenn eine Übereinstimmung gefunden wird, erstellt das System während des Anmeldevorgangs automatisch den Identitätslink für diesen Benutzer und gewährt ihm sofort Zugriff.
Fehlerbehebung
Fehler „The AudienceRestrictionCondition was not valid because the specified Audience is not present in AudienceUris."
Dieser Fehler weist darauf hin, dass der Audience-URI nicht übereinstimmt. Stellen Sie sicher, dass die Audience-Eigenschaft explizit gesetzt wurde. Wenn nicht gesetzt, wird sie standardmäßig auf die aktuelle URL festgelegt, die je nach Benutzer variabel sein kann. Der Wert ist case-sensitive.
Bekannte Probleme und Einschränkungen
Der App Builder SAML Single Sign-On (SSO)-Sicherheitsanbieter hat die folgenden Einschränkungen:
- Nur eine einzelne Audience-Einschränkung kann validiert werden.
- Das Artifact-Lösungsprotokoll wird nicht unterstützt.
- Das Logout-Protokoll wird nicht unterstützt.