Zum Inhalt springen

API-Schlüssel-Sicherheitsanbieter in Jitterbit App Builder

Der API-Schlüssel-Sicherheitsanbieter ermöglicht es Administratoren, App Builder REST-APIs mit einem von App Builder generierten API-Schlüsselcode zu sichern. Der Verbraucher übergibt den API-Schlüssel an App Builder beim Ausführen von REST-API-Anfragen. Da jeder API-Schlüssel mit einem einzelnen Benutzer verknüpft ist, bietet dies sowohl Authentifizierung als auch Autorisierung.

Definition und Anwendungsfälle

Die API-Schlüssel von App Builder bestehen aus einer 128-Bit-kryptografisch zufälligen Zahl. Die Schlüssel sind base64url-codiert. Unten finden Sie ein Beispiel für einen API-Schlüssel:

DLOo9sPS5slJEMHpXBFt3g

API-Schlüssel bieten folgende Vorteile gegenüber der Standard-Authentifizierung mit Benutzername und Passwort:

  • Sie haben höhere Entropie als Benutzername-Passwort-Kombinationen.
  • Sie können einen Passwort-Reset überstehen.
  • Sie lassen sich leicht widerrufen.
  • Sie können rotiert werden.
  • Sie sind schneller. Passwörter müssen gehasht werden, was absichtlich langsam ist.

Zu den Nachteilen oder Schwächen von API-Schlüsseln gehören die Verwaltung ihrer Verteilung und das Risiko von Lecks. Einige der Anwendungsfälle, bei denen API-Schlüssel die am besten geeignete Authentifizierungsmethode darstellen, sind:

  • Dienststelle-Konten
  • Kommunikation zwischen Anwendungen
  • Server-zu-Server-Kommunikation
  • Schreibgeschützter Zugriff
  • Nicht sensible Informationen

API-Schlüssel-Sicherheitsanbieter hinzufügen

Um einen neuen API-Schlüssel-Sicherheitsanbieter hinzuzufügen, führen Sie diese Schritte aus:

  1. Gehen Sie zu IDE > Security Providers. Die Seite Security wird geöffnet.

  2. Klicken Sie auf + Security Provider. Die Seite Provider wird angezeigt:

    Provider-Seite

  3. Füllen Sie im Bereich Settings diese Felder aus:

    1. Name: Geben Sie einen Namen ein, um Ihren API-Schlüssel-Sicherheitsanbieter zu identifizieren.

    2. Type: Wählen Sie im Dropdown-Menü API Key als Typ des Sicherheitsanbieters aus, den Sie erstellen. Dies ändert die übrigen Felder, die im Dialog angezeigt werden.

    3. Priority: Geben Sie eine Zahl ein, um die Reihenfolge festzulegen, in der Sicherheitsanbieter auf dem Anmeldeformular angezeigt werden.

    4. Enabled: Aktivieren Sie dieses Kontrollkästchen, um den neuen Sicherheitsanbieter zu aktivieren.

    5. Identifier: Dieses Feld wird automatisch von App Builder generiert.

  4. Füllen Sie im Bereich Keys diese Felder aus:

    1. Default Expiry: Geben Sie die Lebensdauer neuer Schlüssel in Minuten ein. (Das Ändern dieses Feldes wirkt sich nicht auf vorhandene Schlüssel aus.)

    2. Max Expiry: Geben Sie die maximale Lebensdauer neuer Schlüssel in Minuten ein. (Das Ändern dieses Feldes wirkt sich nicht auf vorhandene Schlüssel aus.)

    3. Length: Geben Sie die Länge (in Bytes) neuer Schlüssel ein. (Das Ändern dieses Feldes wirkt sich nicht auf vorhandene Schlüssel aus.)

  5. Klicken Sie auf Save.

Nachdem Sie einen neuen API-Schlüssel-Sicherheitsanbieter gespeichert haben, werden Sie zur Seite Security zurückgeleitet, auf der das Bedienfeld Security Providers den eben erstellten anzeigt. Durch Klicken auf das Symbol am Ende seiner Zeile können Sie die Konfiguration fortsetzen.

API-Schlüssel-Sicherheitsanbieter konfigurieren

Um Ihren API-Schlüssel-Sicherheitsanbieter zu konfigurieren, gehen Sie zu IDE > Security Providers. Suchen Sie ihn im Bedienfeld Security Providers und klicken Sie auf das Symbol am Ende seiner Zeile. Die Seite Provider wird angezeigt, auf der Sie weitere Konfigurationen hinzufügen können. Das Bedienfeld Provider auf der linken Seite zeigt die gleichen Einstellungen und Schlüssel an, die bei der Erstellung des Sicherheitsanbieters angezeigt werden. Das Bedienfeld Properties auf der rechten Seite ermöglicht es Ihnen, einige zusätzliche Parameter festzulegen, die unten beschrieben werden.

Um eine neue Eigenschaft hinzuzufügen, klicken Sie auf die Schaltfläche + Property. Daraufhin wird das Dialogfeld Properties angezeigt, das die Felder Parameter und Value enthält. Folgende Parameter sind verfügbar:

Eigenschaften-Dialog

Hinweis

Keiner dieser Parameter ist erforderlich. Sie sollten sie nur hinzufügen, wenn es notwendig ist, die Art und Weise zu ändern, wie Ihr API-Schlüssel von der Standardkonfiguration aus übergeben wird. Weitere Informationen finden Sie unter API-Schlüssel übergeben.

  • AllowApiKeyInQueryString: Verwenden Sie diesen Parameter, um zu ermöglichen, dass der API-Schlüssel in der Abfragezeichenfolge statt im HTTP-Header übergeben wird (siehe Abschnitt API-Schlüssel übergeben). Der Standardwert ist False.

  • AllowInsecureHttp: Verwenden Sie diesen Parameter, um zu ermöglichen, dass der API-Schlüssel über eine unsichere HTTP-Anfrage statt über eine sichere HTTPS-Anfrage übergeben wird (siehe Abschnitt API-Schlüssel übergeben). Der Standardwert ist False.

  • HttpHeaderName: Verwenden Sie diesen Parameter, um den Namen des HTTP-Headers zu ändern, der den API-Schlüssel vom Standard X-API-Key übergeben wird.

  • QueryStringParameterName: Wenn Sie auch die Option AllowApiKeyInQueryString verwendet haben, um den API-Schlüssel über einen der Abfragezeichenfolgen-Parameter zu übergeben, können Sie diese Option verwenden, um den Parameternamen vom Standardnamen apiKey zu ändern (siehe Abschnitt API-Schlüssel übergeben).

Klicken Sie auf Speichern und schließen Sie den Dialog Eigenschaften. Der neue Parameter, den Sie hinzugefügt haben, wird in der Tabelle Eigenschaften aufgelistet.

API-Schlüssel generieren

Wenn Sie einen konfigurierten API-Schlüssel-Sicherheitsanbieter haben, können Sie API-Schlüssel generieren, die Benutzern zugeordnet sind, indem Sie diese Schritte befolgen:

  1. Gehen Sie zu IDE > Runtime > Benutzerverwaltung.

  2. Das Panel Benutzer listet alle Benutzer auf. Suchen Sie den Benutzer, für den Sie einen API-Schlüssel generieren möchten, und klicken Sie auf das Symbol am Ende seiner Zeile.

  3. Klicken Sie im Dialog Benutzer auf Mehr > Schlüssel. Der Dialog Schlüssel wird geöffnet.

  4. Klicken Sie auf Erstellen. Der Dialog Schlüssel generieren wird geöffnet.

  5. Wählen Sie im Menü Anbieter den API-Schlüssel-Sicherheitsanbieter aus, den Sie erstellt haben.

  6. (Optional) Geben Sie eine Beschreibung für diesen Schlüssel an und geben Sie eine benutzerdefinierte Ablaufzeit im Feld Läuft ab in ein.

  7. Klicken Sie auf Speichern. Der API-Schlüssel wird erstellt.

API-Schlüssel übergeben

In den meisten Szenarien empfiehlt Jitterbit, dass der Client den API-Schlüssel über einen benutzerdefinierten Header in einer sicheren HTTPS-Verbindung übergibt, um das Risiko einer Exposition zu begrenzen. Das folgende Beispiel veranschaulicht dies:

GET /Vinyl/rest/v1/sales/customers HTTP/1.1
Host: example.com:443
Accept: application/json
X-API-Key: ABCd0eFG1hiJKLMnOPQr2s

Dies ist das Standardverhalten, das App Builder automatisch auswählt. Sie können auch den Parameter HttpHeaderName beim Konfigurieren des API-Schlüssels verwenden, um den Namen des HTTP-Headers zu ändern, der den API-Schlüssel vom Standard X-API-Key übergeben wird.

Die folgenden Beispiele sind einige Ausnahmen von dieser Empfehlung:

  1. In einigen Szenarien können HTTPS-Verbindungen vorzeitig beendet werden. Um dieses Problem zu beheben, können Sie App Builder zwingen, API-Schlüssel zu akzeptieren, die über HTTP-Verbindungen gesendet werden, indem Sie den Parameter AllowInsecureHttp bei der API-Schlüssel-Konfiguration auf True setzen.

  2. Wenn Sie keinen Zugriff auf die HTTP-Request-Header haben, können Sie den API-Schlüssel auch über die Abfragezeichenfolgen-Parameter senden. Um diese Option zu aktivieren, setzen Sie AllowApiKeyInQueryString in den API-Schlüssel-Konfigurationen auf True. Das folgende Beispiel veranschaulicht, wie der API-Schlüssel in diesem Szenario übergeben wird:

    GET /Vinyl/rest/v1/sales/customers?apiKey=ABCd0eFG1hiJKLMnOPQr2s HTTP/1.1
    HOST: example.com:443
    Accept: application/json
    

    Hinweis

    Im obigen Beispiel wurde der Schlüssel unter dem Namen apiKey gesendet. Sie können dies ändern, indem Sie zur API-Schlüssel-Konfiguration gehen und den Parameter QueryStringParameterName hinzufügen, um einen anderen Namen zu wählen.