Zum Inhalt springen

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 einem vertrauenswürdigen Dienst die Anmeldung eines Benutzers bei App Builder. Dies wird durch die Generierung eines JSON Web Token (JWT) und dessen Weiterleitung an einen Endpoint über eine Client-Browser-Umleitung erreicht.

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:

  1. Authentifizierung eines JWT.
  2. Den Benutzer beim App Builder anmelden.

Beispiel:

https://example.com/App Builder/signin-{Provider}

Wobei {Provider} ist der Name des App Builder 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 Aussteller StringOrURI App Builder gleicht den Aussteller mit dem konfigurierten Aussteller des Sicherheitsanbieters ab und führt dabei einen Vergleich unter Berücksichtigung der Groß- und Kleinschreibung durch.
sub Betreff StringOrURI App Builder ordnet den Betreff einem App Builder Benutzerkonto zu.
aud Zielgruppe URI App Builder gleicht die Zielgruppe mit der konfigurierten Zielgruppe des Sicherheitsanbieters ab. Beispiel: https://example.com/App Builder
exp Ablaufzeit NumericDate App Builder überprüft, ob das Ablaufdatum vor dem aktuellen Datum liegt, und berücksichtigt dabei die Zeitabweichung.
nbf Nicht vor NumericDate App Builder überprüft, ob das aktuelle Datum und die aktuelle Uhrzeit größer sind als der „Nicht vor“-Wert, und berücksichtigt dabei die Zeitabweichung.
iat Ausgestellt am NumericDate 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 NumericDate App Builder verwendet die JWT-ID, um Replay-Angriffe zu verhindern.

Die registrierten JWT-Ansprüche sind in Abschnitt 4.1 beschrieben des JSON Web Token-Standards.

Das JWT kann zusätzliche Ansprüche enthalten. Wie bei allen App Builder Sicherheitsanbietern können die Ansprüche sein:

  • Wird verwendet, um Benutzerkonten bereitzustellen und die Mitgliedschaft in Sicherheitsgruppen zu ermöglichen
  • Zugeordnet zu Benutzerkontoeigenschaften wie Benutzername, Email-Adresse oder Telefonnummer.
  • 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 Stammverzeichnis der App Builder Anwendung. Ihr muss ein Schrägstrich vorangestellt sein.

Beispiel:

/app/Sales/Leads?LeadId=1234

App Builder validiert die URI, um vor Open-Redirect-Angriffen zu schützen.

Methoden

Post

Standardmäßig akzeptiert der Endpoint einen Formularbeitrag:

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 birgt zusätzliche Risiken, da Abfrage häufig in Webserver-Protokolldateien geschrieben werden. Dies kann durch die Gewährleistung einer kurzen Lebensdauer und der Nichtwiederholbarkeit von Sicherheitstoken verringert werden. URLs unterliegen Längenbeschränkungen, typischerweise im Bereich von 2.000 Zeichen. Dies kann durch die Begrenzung der Anzahl der Ansprüche gemildert werden.
  • Der return_to Parameter können doppelt URL-kodierte Werte enthalten. Solche Anfragen können durch Firewalls blockiert werden.

Single-Sign-On-Dienst

Der Single Sign-On-Dienst ist der Endpoint, zu dem App Builder Benutzer umleitet, wenn eine Abfrage erfolgt. Der Single Sign-On-Dienst ist verantwortlich für:

  1. Authentifizierung des Benutzers.
  2. Generieren eines JWT.
  3. 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. String, URI empfohlen. Wird zur Validierung des JWT verwendet. iss Anspruch. Groß- und Kleinschreibung beachten.

Endpoints

Typ Beschreibung
Single Sign-On-Dienst Ort, zu dem Benutzer weitergeleitet 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 zur Validierung der JWT-Signatur.

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 zur Validierung der iat Anspruch
Signaturalgorithmus RS256 JWT-Signaturalgorithmus RS256 ist der einzige derzeit unterstützte Algorithmus.