SAML-Identitätsanbieter 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 eingeschränkten Service zugreift.
- Service Provider (SP) - Bietet Zugriff auf eingeschränkte Services.
- Identity Provider (IdP) - Authentifiziert Benutzer.
App Builder kann mit dem entsprechenden Sicherheitsanbieter als SP oder IdP konfiguriert werden. Dieses Dokument behandelt den SAML IdP-Sicherheitsanbieter. Der SAML IdP-Sicherheitsanbieter authentifiziert Benutzer im Namen eines Drittanbieter-SP. Normalerweise handelt es sich bei dem Drittanbieter um eine andere Instanz von App Builder.
Für die SP-Rolle siehe den SAML-Sicherheitsanbieter.
Flows
Die SAML Single Sign-On (SSO)-Spezifikation definiert mehrere Flows. Der SAML IdP-Sicherheitsanbieter unterstützt die folgenden SAML SSO-Flows:
- Service Provider (SP) initiiert
- Identity Provider (IdP) initiiert
Service Provider (SP) initiiert
Im Service Provider (SP) initiierten Flow navigiert ein Benutzer zu einem Drittanbieter-Service und versucht, auf eine eingeschränkte Ressource zuzugreifen. Der Drittanbieter-Service leitet den Benutzer über die SAML Redirect-Bindung (HTTP GET) zu App Builder weiter. Falls sich der Benutzer noch nicht authentifiziert hat, leitet App Builder den Benutzer zum Anmeldeformular weiter.
Nach der Authentifizierung leitet App Builder den Benutzer über die SAML Post-Bindung (HTTP POST) zurück zum Drittanbieter-Service. Der Drittanbieter-Service validiert die SAML Response, ordnet die Namenskennung einem lokalen Benutzerkonto zu und gewährt die mit diesem Benutzerkonto verbundenen Rechte.
Im SP-initiierten Flow zeichnet der Drittanbieter-Service normalerweise die URL auf, auf die der Benutzer vor der Umleitung zugreifen wollte. Nach Abschluss des SAML SSO-Prozesses leitet der SP den Benutzer zu dieser URL weiter. Dies ermöglicht Deep Links.
Identity Provider (IdP) initiiert
Im Identity Provider (IdP) initiierten Flow folgt ein Benutzer einem Link zum Single Sign-On Service. Falls sich der Benutzer noch nicht authentifiziert hat, leitet App Builder den Benutzer zum Anmeldeformular weiter.
Nach der Authentifizierung leitet App Builder den Benutzer über die SAML Post-Bindung (HTTP POST) zurück zum Drittanbieter-Service. Wie beim SP-initiierten Flow validiert der Drittanbieter-Service die SAML Response, ordnet die Namenskennung einem lokalen Benutzerkonto zu und gewährt die mit diesem Benutzerkonto verbundenen Rechte.
Da der IdP-Flow nicht vom Drittanbieter-SP initiiert wird, wird der Benutzer nach Abschluss des SAML SSO-Prozesses normalerweise zu einer Standardseite weitergeleitet. Einige SPs ermöglichen es dem IdP jedoch, den Benutzer durch Übergabe einer URL im RelayState-Parameter an einen beliebigen Ort weiterzuleiten.
Konfiguration
Tokens
- Issuer: SAML-Assertion-Aussteller.
- Audience: SAML-Assertion-Zielgruppenbeschränkung. Der Wert muss ein syntaktisch gültiger URI sein.
- Recipient: SAML-Assertion-Empfänger. Der Wert muss ein syntaktisch gültiger URI sein. Standardmäßig der Assertion Consumer Service.
- Entity ID: SAML-Entitätskennung. Der Wert muss ein syntaktisch gültiger URI sein. Standardmäßig der Issuer.
- Subject: SAML NameId. Standardmäßig der aktuelle Benutzername.
Endpoints
| Typ | Beschreibung |
|---|---|
| Assertion Consumer Service | Drittanbieter-Service Provider (SP)-Endpoint, der SAML Response-Nachrichten (SAMLResponse) empfängt. |
| Single Sign-On Service | Endpoint, der Authentifizierungsanfrage-Nachrichten (AuthNRequest) empfängt. Standardmäßig basierend auf der aktuellen URL. Siehe Single Sign-On Service unten. |
Zertifikate
| Zweck | Typ | Format | Beschreibung |
|---|---|---|---|
| Signierung | X.509-Zertifikat mit privatem Schlüssel | PKCS#12 (PFX), kennwortgeschützt, Base64-codiert | X.509-Zertifikat mit privatem Schlüssel. Wird zum Signieren der SAML-SSO-Antwort (Single Sign-On) verwendet. |
Wie oben erwähnt, erfordert App Builder ein Base64-codiertes PKCS#12-Signaturzertifikat mit privatem Schlüssel. Die Erstellung eines Zertifikats liegt außerhalb des Umfangs dieses Dokuments. Zu Illustrationszwecken zeigen die folgenden Befehle jedoch, wie man mit dem OpenSSL-Befehlszeilenprogramm ein kompatibles Zertifikat erstellt.
Der folgende Befehl erstellt einen privaten Schlüssel (key.pem) und ein selbstsigniertes Zertifikat (cert.pem):
$ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -nodes -days 1095 -subj "/CN=localhost/O=App Builder"
Der folgende Befehl erstellt ein PKCS#12-Archiv (cert.pfx) mit dem privaten Schlüssel und dem Zertifikat:
$ openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.pfx
Es wird eine Aufforderung zur Eingabe eines Kennworts angezeigt. App Builder benötigt dieses Kennwort, um den privaten Schlüssel zu entschlüsseln.
Abschließend wird mit dem folgenden Befehl das PKCS#12-Archiv Base64-codiert:
$ openssl base64 -in cert.pfx -out cert.txt -A
Kopieren Sie den Inhalt von cert.txt und fügen Sie ihn in App Builder ein.
Eigenschaften
Der SAML-IdP-Sicherheitsanbieter definiert die folgenden zusätzlichen Parameter:
| Parameter | Standard | Beschreibung |
|---|---|---|
| AllowRelayStatePassthrough | False |
Gibt an, ob beliebige RelayState-Werte vom Client an den SAML-Dienstanbieter (SP) weitergeleitet werden sollen. Beachten Sie, dass dies nur für eine vom Identitätsanbieter (IdP) initiierte Anmeldung gilt: Bei einer vom SP initiierten Anmeldung bestimmt der SP den Wert des RelayState-Parameters. Standardmäßig leitet der SAML-IdP den RelayState-Wert nicht an den SP weiter. Setzen Sie den Wert auf True, um RelayState-Werte an den SP weiterzuleiten. |
| CacheDuration | Cache-Dauer der SAML-IdP-Metadaten in Sekunden. | |
| RelayState | Wert, der an den SAML-Dienstanbieter (SP) im RelayState-Parameter übergeben wird. Beachten Sie, dass dies nur für eine vom Identitätsanbieter (IdP) initiierte Anmeldung gilt: Bei einer vom SP initiierten Anmeldung bestimmt der SP den Wert des RelayState-Parameters. Zulässige Werte variieren je nach Implementierung. Einige SAML-SP-Implementierungen akzeptieren einen Redirect-URI. |
|
| ValidUntil | Ablaufdatum der SAML-IdP-Metadaten. Erwartet ein im ISO-8601-Format formatiertes Datum wie:
|
Ansprüche
Der SAML-IdP-Sicherheitsanbieter ordnet Benutzereigenschaften Ansprüchen zu. Die Ansprüche werden in die SAML-Assertion als Attribute eingebettet. Der Attributname entspricht dem Anspruchsbezeichner.
Wenn beispielsweise die Eigenschaft Name dem Anspruchsbezeichner http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name zugeordnet wurde, würde die SAML-Assertion das folgende Attribut enthalten:
<Attribute AttributeName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
<AttributeValue>Arthur.Dent</AttributeValue>
</Attribute>
Die Eigenschaft Group kann verwendet werden, um die Zugehörigkeit zu Sicherheitsgruppen zu übergeben. Standardmäßig enthalten SAML-Assertions keine Gruppen. Sie müssen die Gruppen, die eingebunden werden sollen, explizit registrieren.
Um die Gruppenzugehörigkeit einzubinden, erstellen Sie eine Sicherheitsanbietergruppe und ordnen Sie sie einer App-Builder-Gruppe zu. Wenn der Benutzer Mitglied der App-Builder-Gruppe ist, wird die Sicherheitsanbietergruppe der Assertion hinzugefügt. Der Bezeichner der Sicherheitsanbietergruppe wird verwendet. Wenn der Bezeichner null ist, wird der Name verwendet.
Integration
Der SAML-IdP-Sicherheitsanbieter stellt die folgenden Endpunkte bereit:
- Single-Sign-On-Dienst
- Metadaten-Endpunkt
Single-Sign-On-Dienst
Der Single-Sign-On-Dienst empfängt SAML-Anforderungsnachrichten (AuthNRequest). Die URL des Single-Sign-On-Diensts hat folgende Form:
https://example.com/Vinyl/signin-SAMLIDP
Die URL setzt sich aus den folgenden Komponenten zusammen:
| Komponente | Beschreibung |
|---|---|
| https://example.com/Vinyl/ | Absolute URL des Anwendungsstammverzeichnisses von App Builder. |
| SAMLIDP | SAML-IdP-Sicherheitsanbieter-Schema. Der Wert ist case-sensitiv. Sonderzeichen müssen URL-codiert werden. |
Metadaten-Endpunkt
Der Metadaten-Endpunkt veröffentlicht ein Metadatendokument (Metadata). Die URL des Metadaten-Endpunkts hat folgende Form:
https://example.com/Vinyl/metadata-SAMLIDP
Die URL setzt sich aus den folgenden Komponenten zusammen:
| Komponente | Beschreibung |
|---|---|
| https://example.com/Vinyl/ | Absolute URL des Anwendungsstammverzeichnisses von App Builder. |
| SAMLIDP | SAML-IdP-Sicherheitsanbieter-Schema. Der Wert ist case-sensitiv. Sonderzeichen müssen URL-codiert werden. |
Bekannte Probleme und Einschränkungen
Der SAML-IdP-Sicherheitsanbieter von App Builder hat die folgenden Einschränkungen:
- Es kann nur eine einzelne Audience-Einschränkung angegeben werden.
- SAML-Antworten dürfen nicht verschlüsselt sein.
- SAML-Antworten dürfen nicht signiert sein.
- SAML-Assertions sind immer signiert.
- Das Artifact-Auflösungsprotokoll wird nicht unterstützt.
- Das Logout-Protokoll wird nicht unterstützt.