Zum Inhalt springen

3-beinige OAuth 2.0-Komponente des Jitterbit Connector SDK

Übersicht

Die 3-beinige OAuth 2.0 (3LO) Komponente ist erforderlich, um 3LO in einem Connector zu unterstützen. Sie ermöglicht die Verwendung von 3LO-Authentifizierung mit Anwendungen (Cloud und privat), die in Harmony registriert sind. Weitere Informationen zu 3LO finden Sie unter Connector 3-beinige OAuth 2.0.

Die 3LO-Komponente ist für die Konfiguration des Connector-Endpunkts konzipiert und muss nur zum endpoint in der adapter.json hinzugefügt werden. Wenn sie implementiert ist, erscheint die 3LO-Komponente so, wenn die zugehörigen Elemente sichtbar sind:

3LO Auth Komponente

Wichtig

Bei Verwendung eines privaten Agents erfordern 3LO-fähige Connectoren die Agenten-Version 10.83 / 11.21 oder höher.

Komponentenmerkmale

Die 3LO-Komponente umfasst Definitionen für Authentifizierungstypen und einen Anmelde-Button:

  • Dropdown für Authentifizierungstyp: Benutzer wählen aus einer Liste von vom Entwickler definierten Authentifizierungstypen. Mindestens eine enumValues-Definition mit 1 als realValue ist erforderlich. 1 wird immer die 3LO-Authentifizierung darstellen.

    3LO Typ Dropdown

  • Dropdown für OAuth-Anwendung: Benutzer wählen aus einer Liste von zugehörigen Cloud-Anwendungen und Privaten Anwendungen, die von Studio generiert wurden. Dieses UI-Element wird in Studio angezeigt, wenn eine private Anwendung mit dem 3LO-fähigen Connector verknüpft ist. So sieht das Dropdown aus, wenn es sichtbar und erweitert ist:

    3LO App Dropdown

    Wichtig

    Private Anwendungen können im Management Console App Registrierungen Seite frei definiert und geändert werden. Jitterbit-Partner können möglicherweise Cloud-Anwendungen konfigurieren, indem sie direkt mit Jitterbit zusammenarbeiten.

  • Login-Button: Benutzer klicken, um sich bei einem Drittanbieter-OAuth-Anbieter zu authentifizieren.

    3LO Login-Button

Komponenten-JSON

Die 3LO-Komponente wird implementiert, indem zwei Eigenschaften zum endpoint in der adapter.json hinzugefügt werden. Beide sind erforderlich, damit 3LO wie erwartet mit einem Connector funktioniert.

3LO Aktivierung und erforderlicher Authentifizierungstyp
{
    "name": "3lo_auth_type", // Required
    "displayName": "{{To Be Replaced}}", // Authentication Type dropdown name
    "enumValues": [
        {
            "enumValue": "3LO",
            "realValue": "1" // Required
        }
    ]
}
3LO Login-Button
{
    "name": "oauth_login", // Required
    "displayName": "Log in with {{To Be Replaced}}", // Login button name
    "widgetHint": "component:oauth-login", // Required
}

Tipp

Wenn 3LO der einzige geplante Authentifizierungstyp für den Connector ist, können Sie das Dropdown im UI mit hidden ausblenden, solange defaultValue 1 ist:

{
    "name": "3lo_auth_type",
    "hidden": true,
    "displayName": "Authentication Type",
    "enumValues": [
        {
            "enumValue": "3LO",
            "realValue": "1"
        }
    ],
    "defaultValue": "1"
}

Um zusätzliche Authentifizierungstypen über 3LO hinaus zu definieren, geben Sie diese als zusätzliche enumValues-Definitionen an, beginnend mit 2 für realValue:

{
    "name": "3lo_auth_type",
    "displayName": "Authentication Type",
    "enumValues": [
        {
            "enumValue": "Token-based Auth",
            "realValue": "2"
        },
        {
            "enumValue": "3LO",
            "realValue": "1"
        }
    ],
    "defaultValue": "2"
}

Wichtig

Damit ein 3LO-fähiger Connector wie erwartet funktioniert, muss eine Anwendung (cloud oder privat) mit dem 3LO-fähigen Connector verknüpft sein.

Private Anwendungen können im Management Console-Bereich App-Registrierungen frei definiert und geändert werden. Jitterbit-Partner können möglicherweise Cloud-Anwendungen konfigurieren, indem sie direkt mit Jitterbit zusammenarbeiten.

Komponentenwerte

Während der Connector-Konfiguration und zur Laufzeit wird der Agent automatisch access_token als Teil der props (Eigenschaften) Parameter in die Connector SDK-Methoden injizieren.

Zum Beispiel wird die access_token-Eigenschaft im ConnectionFactory Teil von props in der Methode createConnection sein:

@Override
public Connection createConnection(Map<String, String> props) {
  // The props parameter contains "access_token" as a key-value pair.
}

Ausnahmebehandlung

3LO-fähige Connectoren müssen eine ConnectionException auslösen, wenn der HTTP-Aufruf mit access_token einen nicht autorisierten Statuscode (HttpStatusCode 401) zurückgibt.

Die Ausnahme führt dazu, dass der Agent den Wert von access_token aktualisiert und einen Wiederholungsprozess zwischen dem Agenten und dem Connector ausführt. Zum Beispiel:

Wichtig

Connectoren sollten den Prozess zur Aktualisierung des access_token nicht manuell handhaben, da dies bereits vom Agenten übernommen wird.

public void exampleMethod() throws Connection.ConnectionException {
  try {
    // Method implementation...
  } catch (Exception ex) {
    throw new Connection.ConnectionException(Param1, Param2, Param3);
  }
}

App-Registrierungskonfiguration

Nachdem der 3LO-fähige Connector bereitgestellt wurde, wird er eine Connector-Dropdown-Option in der Management-Konsole App-Registrierungen sein.

Voraussetzungen

Bevor Sie eine Anwendung mit dem 3LO-fähigen Connector konfigurieren, erfüllen Sie bitte diese Voraussetzungen:

  • Wenn Sie einen privaten Agenten verwenden, installieren Sie den 3LO-fähigen Connector auf dem Agenten.
  • Erstellen Sie die OAuth-Anwendung beim entsprechenden Drittanbieter-OAuth-Anbieter. Dies liefert die notwendigen Informationen für die nächsten Schritte, wie die Werte für Client-ID und Client Secret. Wenn Sie beispielsweise einen Jira-Connector entwickeln, müssten Sie zuerst eine zugehörige OAuth-App im Atlassian-Portal erstellen.

Konfiguration

Verweisen Sie auf unsere Dokumentation auf der Seite der Management-Konsole App-Registrierungen, um die relevanten Informationen für eine neue private Anwendung bereitzustellen, einschließlich aller relevanten Erweiterte Optionen basierend auf den Anforderungen oder Einstellungen des gewählten Drittanbieteranbieters.