JWT SSO-Sicherheitsanbieter im Jitterbit App Builder
Der JWT SSO-Sicherheitsanbieter ist eine Implementierung eines benutzerdefinierten Single Sign-On (SSO)-Protokolls. Das Protokoll ermöglicht es einem vertrauenswürdigen Dienst, einen Benutzer bei App Builder Dies wird erreicht, indem ein JSON Web Token (JWT) generiert und das Token über eine Client-Browser-Umleitung an einen Endpoint übergeben wird.
Protokoll
Das JWT SSO-Protokoll nutzt die folgenden Standards:
Endpoints
Das JWT SSO-Protokoll definiert zwei Service-Endpoints.
- Authentifizierungsdienst - Gehostet von App Builder.
- Single Sign-On-Dienst - Gehostet vom vertrauenswürdigen Drittpartei.
Authentifizierungsdienst
Der Authentifizierungsdienst ist verantwortlich für:
- Authentifizierung eines JWT.
- Anmeldung des Benutzers bei App Builder.
Beispiel:
https://example.com/App Builder/signin-{Provider}
Wobei {Provider}
ist das App Builder Name des Sicherheitsanbieters. Siehe Konfiguration.
Parameter
Der Endpoint des Authentifizierungsdienstes definiert die folgenden Parameter:
jwt
- JSON Web Token. Erforderlich.return_to
- Relative URI. Optional.
JWT
Der jwt
Der Parameter enthält das JSON Web Token. JWTs sind URL sicher, daher ist keine zusätzliche Kodierung erforderlich.
JWTs müssen die folgenden Anforderungen erfüllen:
- Das JWT muss mit dem RS256-Algorithmus (RSA, SHA-256) signiert werden.
- Das JWT darf nicht verschlüsselt sein.
- Das JWT muss die folgenden registrierten Ansprüche enthalten.
Anspruch | Name | Art | Zweck |
---|---|---|---|
iss | Emittent | StringOrURI | App Builder gleicht den Aussteller mit dem konfigurierten Aussteller des Sicherheitsanbieters ab und führt dabei einen Vergleich unter Beachtung der Groß-/Kleinschreibung durch. |
sub | Betreff | StringOrURI | App Builder wird das Thema zuordnen an App Builder Benutzerkonto. |
aud | Zielgruppe | URI | App Builder gleicht die Zielgruppe mit der konfigurierten Zielgruppe des Sicherheitsanbieters ab. Beispiel: https://example.com/App Builder |
exp | Ablaufzeit | Numerisches Datum | App Builder überprüft, ob das Ablaufdatum vor dem aktuellen Datum liegt, und berücksichtigt dabei die Uhrzeitabweichung. |
nbf | Nicht vor | NumericDate | App Builder überprüft, ob das aktuelle Datum und die aktuelle Uhrzeit größer sind als der „Nicht davor“-Wert, und berücksichtigt dabei die Uhrzeitabweichung. |
iat | Ausgestellt am | Numerisches Datum | App Builder verwendet den Wert „Ausgestellt am“, um das Alter des JWT zu bestimmen. App Builder begrenzt das Zeitfenster, in dem ein Token akzeptiert wird, beispielsweise auf 5 Minuten. |
jti | JWT-ID | Numerisches Datum | App Builder verwendet die JWT-ID, um Replay-Angriffe zu verhindern. |
Die registrierten JWT-Ansprüche werden in Abschnitt 4.1 beschrieben des JSON Web Token-Standards.
Das JWT kann zusätzliche Ansprüche enthalten. Wie bei allen App Builder Sicherheitsanbieter, die Ansprüche können sein:
- Wird verwendet, um Benutzerkonten bereitzustellen und die Mitgliedschaft in Sicherheitsgruppen zu ermöglichen
- Wird den Eigenschaften des Benutzerkontos wie Benutzername, Email Adresse oder Telefonnummer zugeordnet.
- Zugriff über Geschäftsregeln mit mvSQL
claim()
Laufzeit.
Beispiel einer JWT Payload:
{
"jti": "918b6e73-400d-479c-baa1-8e12f5fd78f4",
"iss": "example.com",
"aud": "https://example.com/App Builder",
"sub": "Arthurd.Dent",
"iat": 1652473593,
"exp": 1652473893,
"groups": [
"Users",
"Employees",
"Sales"
]
}
Zurück zu
Der return_to
Der Parameter besteht aus einer URI. Die URI ist relativ zum App Builder Stammverzeichnis der Anwendung. Es muss mit einem Schrägstrich vorangestellt werden.
Beispiel:
/app/Sales/Leads?LeadId=1234
App Builder validiert die URI zum Schutz vor Open-Redirect-Angriffen.
Methoden
Post
Standardmäßig akzeptiert der Endpoint ein Formular-Posting:
POST /App Builder/signin-JWTSSO HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 31
jwt={jwt}&return_to={return_to}
Erhalten
Alternativ kann der Endpoint auch so konfiguriert werden, dass er akzeptiert GET
Anfragen:
GET /App Builder/signin-JWTSSO?jwt={jwt}&return_to={return_to} HTTP/1.1
Host: example.com
Bei Verwendung der GET
Methode wird das JWT-Sicherheitstoken in der URL Abfrage übergeben.
Beachten Sie vor der Verwendung Folgendes GET
:
GET
stellt ein zusätzliches Risiko dar, da Abfrage häufig in Protokolldateien von Webservern geschrieben werden. Dies kann gemildert werden, indem sichergestellt wird, dass Sicherheitstoken eine kurze Lebensdauer haben und nicht wiedergegeben werden können.- URLs unterliegen Längenbeschränkungen, die normalerweise bei etwa 2.000 Zeichen liegen. Dies kann durch die Begrenzung der Anzahl der Ansprüche gemildert werden.
- Der
return_to
Parameter können doppelt URL codierte Werte enthalten. Solche Anfragen können durch Firewalls blockiert werden.
Single-Sign-On-Dienst
Der Single Sign-On Service ist der Endpoint, der App Builder leitet Benutzer weiter, wenn eine Herausforderung ausgegeben wird. Der Single Sign-On-Dienst ist verantwortlich für:
- Authentifizierung des Benutzers.
- Generieren eines JWT.
- Weiterleitung des Benutzers zum Authentifizierungsdienst.
Der Single Sign-On Service-Endpoint ist optional.
Konfiguration
Einstellungen
- Name: Name des Sicherheitsanbieters. Der Name erscheint in der URL des Authentifizierungsdienstes. Er kann auch im Anmeldeformular erscheinen.
- Typ: JWT SSO
Token
- Zielgruppe: Zielgruppe. URI. Wird zur Validierung des JWT verwendet
aud
Anspruch. Beispiel:https://example.com/App Builder
. - Aussteller: Name des Ausstellers. Zeichenfolge, URI empfohlen. Wird zur Validierung des JWT verwendet
iss
Anspruch. Groß-/Kleinschreibung beachten.
Endpoints
Typ | Beschreibung |
---|---|
Single Sign-On Service | Ort, zu dem Benutzer umgeleitet werden, wenn eine Abfrage an den JWT SSO-Sicherheitsanbieter gesendet wird. Optionaler, absoluter URI. |
Zertifikate
Verwendung | Typ | Beschreibung |
---|---|---|
Signaturvalidierung | X.509-Zertifikat | Öffentlicher RSA-Schlüssel Wird zur Validierung der JWT-Signatur verwendet. |
Eigenschaften
Der OAuth-Sicherheitsanbieter unterstützt die folgenden zusätzlichen Parameter:
Parameter | Standard | Beschreibung |
---|---|---|
AllowHttpGet | False | Gibt an, dass der Endpoint HTTP zulassen soll GET Anfragen. |
ClockSkew | 5 | Anzahl der Minuten. Positive Ganzzahl. Wird bei der Validierung des JWT verwendet iat , nbf Und exp Ansprüche. |
MaxLifetime | 5 | Anzahl der Minuten. Positive Ganzzahl. Wird verwendet, um die iat Anspruch |
SigningAlgorithm | RS256 | JWT-Signaturalgorithmus RS256 ist der einzige derzeit unterstützte Algorithmus. |