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 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:

  1. Authentifizierung eines JWT.
  2. 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:

  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. 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.