Zum Inhalt springen

3-beinige OAuth 2.0-Komponente

Übersicht

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

Die 3LO-Komponente ist für die Konfiguration von Connector-Endpoint vorgesehen und muss dem endpoint in der Datei adapter.json nur. Wenn die 3LO-Komponente implementiert ist, wird sie folgendermaßen angezeigt, wenn die zugehörigen Elemente sichtbar sind:

3LO Auth-Komponente

Wichtig

Bei Verwendung eines privaten Agenten erfordern 3LO-fähige Konnektoren Agentenversion 10.83 / 11.21 oder höher.

Komponentenfunktionen

Die 3LO-Komponente enthält Definitionen für Authentifizierungstypen und eine Anmeldeschaltfläche:

  • Dropdown-Liste „Authentifizierungstyp“: Benutzer wählen aus einer Liste von vom Entwickler definierten Authentifizierungstypen aus. Mindestens ein enumValues Definition mit 1 als seine realValue ist erforderlich. 1stellt immer eine 3LO-Authentifizierung dar.

    3LO-Typ-Dropdown

  • Dropdown-Menü für OAuth-Anwendungen: Benutzer wählen aus einer Liste verknüpfter Cloud-Anwendungen und privater Anwendungen aus, die von Integration Studio generiert wurden. Dieses UI-Element wird in Integration Studio angezeigt, wenn dem 3LO-fähigen Connector eine private Anwendung zugeordnet ist. Dies ist das Dropdown-Menü, wenn es sichtbar und erweitert ist:

    3LO App Dropdown

    Wichtig

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

  • Anmelden-Schaltfläche: Benutzer klicken, um sich bei einem OAuth-Anbieter eines Drittpartei zu authentifizieren.

    3LO-Anmeldeschaltfläche

Komponenten-JSON

Die 3LO-Komponente wird implementiert, indem zwei Eigenschaften zur endpoint in der Datei adapter.json. Beides ist erforderlich, damit 3LO wie erwartet mit einem Connector funktioniert.

3LO Enablement and Required Authentication Type
{
    "name": "3lo_auth_type", // Required
    "displayName": "{{Wird ersetzt}}", // Authentication Type dropdown name
    "enumValues": [
        {
            "enumValue": "3LO",
            "realValue": "1" // Required
        }
    ]
}
3LO Login Button
{
    "name": "oauth_login", // Required
    "displayName": "Log in with {{Wird ersetzt}}", // Login button name
    "widgetHint": "component:oauth-login", // Required
}

Tipp

Wenn 3LO der einzige für den Connector geplante Authentifizierungstyp ist, können Sie das Dropdown-Menü in der Benutzeroberfläche ausblenden mit hidden solange defaultValue Ist 1:

{
    "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 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) muss mit dem 3LO-fähigen Connector verknüpft sein.

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

Komponentenwerte

Während der Connector-Konfiguration und zur Laufzeit fügt der Agent automatisch access_token als Teil der props(Eigenschaften)-Parameter zu Connector-SDK-Methoden.

Beispielsweise in der ConnectionFactory, Die access_token Eigentum wird Teil von props im createConnection Methode:

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

Ausnahmebehandlung

3LO-fähige Anschlüsse müssen ein ConnectionException Ausnahme, wenn der HTTP-Aufruf mit access_token gibt einen Nicht autorisierten Statuscode zurück (HttpStatusCode 401).

Die Ausnahme führt dazu, dass der Agent die access_token Wert und führen Sie einen Wiederholungsprozess zwischen dem Agenten und dem Connector aus. Beispiel:

Wichtig

Konnektoren sollten nicht manuell die access_token Aktualisierungsprozess, da dieser bereits vom Agenten übernommen wird.

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

Konfiguration der App-Registrierung

Nachdem der 3LO-fähige Connector bereitgestellt wurde, wird er zu einer Connector-Dropdown-Option in der Management Console App-Registrierungen.

Voraussetzungen

Bevor Sie eine Anwendung mit dem 3LO-fähigen Connector konfigurieren, müssen die folgenden Voraussetzungen erfüllt sein:

  • Wenn Sie einen Privater Agent verwenden, installieren Sie den 3LO-fähigen Connector auf dem Agenten.
  • Erstellen Sie die OAuth-Anwendung beim entsprechenden Drittpartei-OAuth-Anbieter. Dadurch erhalten Sie die für die nächsten Schritte erforderlichen Informationen, z. B. die Werte Client-ID und Client Secret. Wenn Sie beispielsweise einen Jira Connector entwickeln, müssen Sie zuerst eine zugehörige OAuth-App im Atlassian-Portal erstellen.

Konfiguration

Weitere Informationen finden Sie in unserer Dokumentation zur Management Console App-Registrierungen Seite, um dort die relevanten Informationen für eine neue private Anwendung bereitzustellen, einschließlich aller relevanten Erweiterten Optionen basierend auf den Anforderungen oder Einstellungen des ausgewählten Drittpartei.