Client-Authentifizierung im Jitterbit App Builder
App Builder kann als OpenID Connect (OIDC) Autorisierungsserver fungieren. Der Autorisierungsserver ermöglicht es Client-Anwendungen, einschließlich anderer Instanzen von App Builder, Benutzer zu authentifizieren. Der OIDC-Anmeldeprozess erzeugt ein Zugriffstoken, das der Client-Anwendung den Zugriff auf geschützte Ressourcen im Namen des Benutzers ermöglicht. Geschützte Ressourcen umfassen von App Builder gehostete REST- und Webhook-APIs sowie App Builder Connector-Datenquellen.
Protokollunterstützung
Das OIDC-Protokoll ist durch den OpenID Connect Core 1.0 Standard definiert. OIDC ist eine Identitätsschicht, die auf dem OAuth 2.0 Autorisierungsrahmen basiert, der durch RFC-6749 definiert ist. Gemeinsam beschreiben diese Standards:
- Flows - Ein Flow ist ein Prozess, durch den der Client Identitäts- und Zugriffstoken abruft. Aus diesem Grund werden Flows auch als Grants bezeichnet.
- Endpoints - Jeder Flow umfasst eine oder mehrere HTTP-Anfragen an bekannte URLs.
- Scopes - Client-Anwendungen können ein oder mehrere Scopes anfordern. Scopes bestimmen, welche Tokens ausgegeben werden (Identität, Erneuerung), was in diesen Tokens enthalten ist (Claims) und auf welche APIs mit diesen Tokens zugegriffen werden kann.
- Claims - Wie im Standard beschrieben, ist das Identitätstoken grundsätzlich ein JSON Web Token (JWT). JWTs basieren auf Claims. Der angeforderte Scope bestimmt, welche Claims im Identitätstoken enthalten sind.
Unterstützte Flows
Der Autorisierungsserver von App Builder unterstützt die folgenden grundlegenden OAuth 2.0 Flows:
- Authorization Code. Der Authorization Code Flow ermöglicht es dem Client, ein Zugriffstoken zu erwerben, das dem Client den Zugriff auf geschützte Ressourcen im Namen des Benutzers ermöglicht. Der Authorization Code Flow ist ein interaktiver Flow: Ein Benutzer muss anwesend sein, um den Authorization Code Flow zu initiieren.
- Client Credentials. Der Client Credentials Flow ermöglicht es der Client-Anwendung, ein Zugriffstoken im eigenen Namen zu erwerben. Dies ist ein Server-zu-Server-Flow, der typischerweise als Dienstkonto fungiert.
- Refresh Token. Der Refresh Token Flow ermöglicht es dem Client, ein neues Zugriffstoken anzufordern, sobald das aktuelle Token abgelaufen ist. Dies wird manchmal als "Offline-Zugriff" bezeichnet. Der Refresh Token Flow kann in Kombination mit entweder dem Authorization Code oder Client Credentials Flow verwendet werden. Der offline_access Scope aktiviert den Refresh Token Flow (siehe unten).
Wie oben erwähnt, basiert OIDC auf dem OAuth 2.0-Autorisierungsrahmen. OIDC nutzt die OAuth 2.0-Flows und verwendet den scope-Parameter, um in OIDC-spezifische Funktionen einzutreten. Der Autorisierungsserver des App Builders unterstützt die folgenden OIDC-Flows:
- Authorization Code. Wenn der openid-Scope angegeben ist, ermöglicht der Authorization Code-Flow dem Client, einen Benutzer zu authentifizieren, indem ein zusätzliches Identitätstoken zurückgegeben wird. Zusätzliche Scopes bestimmen, welche Ansprüche im Token enthalten sind.
- Refresh Token. Der Refresh Token-Flow funktioniert in OIDC genauso wie in OAuth 2.0.
Der Autorisierungsserver unterstützt weder die OIDC Implicit- noch die Hybrid-Flows. Der OAuth 2.0 Client Credentials-Flow ist kein OIDC-Flow.
Der Authorization Code-Flow kann mit oder ohne die Proof Key for Code Exchange (PKCE)-Erweiterung verwendet werden, wie in RFC-7636 definiert.
Supported endpoints
Der Autorisierungsserver des App Builders veröffentlicht die folgenden Endpunkte:
Endpoint | Standard | Beschreibung |
---|---|---|
/connect/authorize | RFC-6749 | Gibt einen Autorisierungscode aus. |
/connect/token | RFC-6749 | Gibt ein Zugriffstoken aus. |
/connect/introspect | RFC-7662 | Zugriffstoken-Introspektion. |
/connect/userinfo | OIDC Core | Identitätstoken-Introspektion. |
/.well-known/openid-configuration | OIDC Discovery | OpenID Connect-Anbieter-Konfiguration. |
Supported scopes
Der Autorisierungsserver des App Builders unterstützt die folgenden Scopes:
Scope | Beschreibung |
---|---|
openid | Gibt ein OIDC-Identitätstoken aus. |
profile | Beinhaltet Benutzerprofilansprüche im Identitätstoken. |
Beinhaltet E-Mail-Adressansprüche im Identitätstoken. | |
phone | Beinhaltet Telefonnummernansprüche im Identitätstoken. |
offline_access | Gibt ein Refresh-Token für die Verwendung im Refresh Token-Flow aus. * Nicht verfügbar für öffentliche Clients |
api | Autorisiert den Zugriff auf von App Builder gehostete REST-, Webhook- und App Builder Connector-APIs. |
Unterstützte Ansprüche
Wie oben erwähnt, ist das Identitätstoken ein ansprungsbasiertes JWT-Token. Der Client kann bestimmen, welche Ansprüche im Identitätstoken enthalten sind, indem er Scopes angibt.
Scope | Ansprüche |
---|---|
openid | sub |
profile | name, nickname, locale und zoneinfo |
email und email_verified | |
phone | phone_number und phone_number_verified |
Für eine Beschreibung jedes dieser Ansprüche siehe Abschnitt 5.1 Standardansprüche des OIDC-Standards. Jeder Standardanspruch, der oben nicht ausdrücklich aufgeführt ist, wird nicht unterstützt.
Konfiguration
Um den Autorisierungsserver zu nutzen, muss der App Builder-Administrator zunächst:
- Den Autorisierungsserver aktivieren.
- Eine Client-Anwendung registrieren.
- Die Client-Anwendung konfigurieren.
Autorisierungsserver aktivieren
Um den Autorisierungsserver zu aktivieren, melden Sie sich zunächst als Administrator im App Builder an:
- Klicken Sie auf den IDE-Link.
- Klicken Sie auf die Schaltfläche Sicherheitsanbieter.
- Suchen Sie im Panel Benutzerauthentifizierung den Sicherheitsanbieter Authorization Server und klicken Sie auf das Details-Symbol (Chevron).
- Klicken Sie auf die Schaltfläche Bearbeiten.
- Aktivieren Sie die Option Aktiviert.
- Klicken Sie auf die Schaltfläche Speichern.
Client-Anwendung registrieren
Jede Client-Anwendung, die Benutzer authentifizieren oder auf geschützte Ressourcen zugreifen möchte, muss registriert werden. Um eine Client-Anwendung zu registrieren, melden Sie sich zunächst als Administrator im App Builder an und folgen Sie dann diesen Schritten:
- Klicken Sie auf den IDE-Link.
- Klicken Sie auf die Schaltfläche Benutzermanagement.
- Klicken Sie auf die Schaltfläche Clients.
- Klicken Sie auf die Schaltfläche +Client, um eine neue Client-Anwendung zu registrieren.
-
Geben Sie Folgendes an:
- Name: Ein beschreibender, freundlicher Name für die Client-Anwendung.
- Beschreibung: Eine optionale Beschreibung.
- Benutzer: Wählen Sie das Dienstbenutzerkonto aus. Erforderlich für den Client-Credentials-Flow. Andernfalls leer lassen.
- Authentifizierungsanbieter: Wählen Sie einen Anbieter aus oder lassen Sie es leer.
- Aktiviert: Aktivieren oder deaktivieren Sie die Client-Anwendung.
-
Klicken Sie auf die Schaltfläche Speichern.
-
(Optional) Klicken Sie auf Mehr, dann Erweitert. Der Dialog Erweiterte Einstellungen öffnet sich. Er enthält zwei Registerkarten:
-
Eigenschaften: Stellen Sie die folgenden Einstellungen nach Bedarf ein:
-
PKCE erforderlich: Wenn ausgewählt, muss der Client die PKCE-Erweiterung verwenden. Dies gilt nur für den Authorization Code Flow und ist für öffentliche Clients erforderlich.
-
Öffentlich: Wenn ausgewählt, ist der Client öffentlich und Geheimnisse können nicht sicher gespeichert werden. Wenn nicht ausgewählt, ist der Client vertraulich und kann Geheimnisse sicher speichern.
-
-
Token-Lebensdauer: Geben Sie Werte für die folgenden Felder nach Bedarf ein:
-
Zugriffstoken: Ablaufzeit des Zugriffstokens in Minuten. Standard: 60.
-
Aktualisierungstoken: Ablaufzeit des Aktualisierungstokens in Minuten. Standard: 20160 (14 Tage).
-
Identitätstoken: Ablaufzeit des Identitätstokens in Minuten. Standard: 20.
-
Autorisierungscode: Ablaufzeit des Autorisierungscodes in Minuten. Standard: 5.
-
-
Generieren eines Client-Geheimnisses
Die Client-Anwendung muss ihre eigenen Anmeldeinformationen bereitstellen, wenn sie ein Zugriffstoken anfordert. Die Client-Anmeldeinformationen bestehen aus der Client-ID und einem Client-Geheimnis. Client-Geheimnisse können nur für vertrauliche Clients generiert werden. Das Geheimnisse-Panel wird für öffentliche Clients ausgeblendet.
Um ein Client-Geheimnis zu generieren:
- Klicken Sie im Panel Geheimnisse auf die Schaltfläche +Geheimnis.
-
Geben Sie Folgendes an:
- Beschreibung: Optionale Beschreibung des Client-Geheimnisses.
- Läuft ab am: Wenn das Geheimnis ablaufen soll, legen Sie das Ablaufdatum und die Uhrzeit fest. Andernfalls lassen Sie dieses Feld leer.
-
Klicken Sie auf die Schaltfläche Speichern.
- Kopieren Sie die Client-ID und das Client-Geheimnis.
WARNUNG: Dies ist das einzige Mal, dass das Geheimnis sichtbar ist.
Registrieren der Client-Umleitungs-URI
Wie oben erwähnt, ist der Authorization Code Flow ein interaktiver Flow. Während dieses Flows wird der Benutzer zur Autorisierungsendstelle umgeleitet. Nachdem der Benutzer sich authentifiziert hat, wird er zurück zur Client-Anwendung umgeleitet.
Die Callback-URL der Client-Anwendung wird als "Redirect-URI" bezeichnet. Jede Redirect-URI muss registriert werden. Client-Redirect-URIs müssen die folgenden Einschränkungen einhalten:
- Die Client-Redirect-URL muss eine absolute URL sein.
- Die Client-Redirect-URL sollte das HTTPS-Protokoll verwenden. Die Client-Redirect-URL kann jedoch das HTTP-Protokoll verwenden, wenn sie auf localhost umleitet.
- Die Client-Redirect-URL kann eine Abfragezeichenfolge enthalten.
- Die Client-Redirect-URL darf keinen Fragment enthalten.
Um eine Client-Redirect-URI zu registrieren:
- Klicken Sie im Redirects-Panel auf die Schaltfläche +URL.
- Geben Sie die URL ein.
- Klicken Sie auf die Schaltfläche Speichern.
Konfigurieren der Client-Anwendung
Jede standardkonforme OIDC- oder OAuth 2.0-Client-Anwendung, die entweder den Authorization Code- oder Client Credentials-Flow unterstützt, kann den Autorisierungsserver von App Builder nutzen. Dazu gehört auch App Builder selbst: Es ist möglich, eine zweite Instanz von App Builder als Client zu konfigurieren.
Um den App Builder-Client zu konfigurieren, benötigen Sie:
- Die Root-URL des App Builder-Autorisierungsservers, z.B.
https://example.com/Vinyl
. - Client-ID und Geheimnis (siehe oben)
Beginnen Sie, indem Sie sich als Administrator in die Client-Instanz von App Builder einloggen:
- Klicken Sie auf den Link IDE.
- Klicken Sie auf die Schaltfläche Sicherheitsanbieter.
- Klicken Sie im Benutzerauthentifizierung-Panel auf die Schaltfläche +Benutzerauthentifizierung.
-
Geben Sie Folgendes ein:
- Name: Name des Sicherheitsanbieters, z.B.
App Builder
. - Typ: App Builder / OpenID Connect
- Im Anmeldeformular anzeigen: Aktivieren Sie diese Option, um die Anmeldemöglichkeit im Anmeldeformular anzuzeigen.
- Benutzerbereitstellung: Aktivieren Sie diese Option, um die Benutzerbereitstellung zu aktivieren.
- Name: Name des Sicherheitsanbieters, z.B.
-
Klicken Sie auf die Schaltfläche Speichern.
- Klicken Sie im Endpoints-Panel auf die Schaltfläche +Endpoint.
-
Geben Sie Folgendes ein:
- Endpoint-Typ: OpenID Connect Issuer
- URL: Die Root-URL des App Builder-Autorisierungsservers.
-
Klicken Sie auf die Schaltfläche Speichern.
- Klicken Sie im Anmeldeinformationen-Panel auf die Schaltfläche +Anmeldeinformation.
-
Geben Sie Folgendes ein:
- Typ: Client
- Benutzername: Die Client-ID (siehe oben).
- Passwort: Das Client-Geheimnis (siehe oben).
-
Klicken Sie auf die Speichern-Schaltfläche.
- Klicken Sie im Provider-Panel auf die Bearbeiten-Schaltfläche.
- Aktivieren Sie die Option Aktiviert.
- Klicken Sie auf die Speichern-Schaltfläche.
Sobald dies abgeschlossen ist, können sich Benutzer in die Client App Builder-Instanz über den App Builder-Authentifizierungsserver anmelden.
Bekannte Einschränkungen
Der App Builder-Authentifizierungsserver unterstützt Folgendes nicht
- Benutzerzustimmung.
- OIDC implizite oder hybride Flows