Zum Hauptinhalt springen
Version: 5.6

Verbindung mit Bearer Token

Dieses Beispiel zeigt, wie ein Bearer Token zuerst über einen REST-Aufruf abgeholt und anschließend in einer zweiten Verbindung für weitere REST-Aufrufe verwendet wird.

Token abholen

Erstellen Sie zunächst die für die Token-Anforderung benötigten Eingabewerte. Welche Parameter erforderlich sind, hängt vom Zielsystem ab. Typisch sind zum Beispiel client_id, client_secret, scope, username, password oder grant_type.

Viele OAuth-2-Token-Endpunkte erwarten hierfür eine POST-Anfrage. Häufig wird dabei das Format application/x-www-form-urlencoded oder application/json verwendet. In unserem Beispiel verwenden wir application/json.

Gehen Sie dazu wie folgt vor: JSON schreiben für Bearer Token

  1. Klicken Sie auf die Schaltfläche Edit, um die vorgegebene JSON-Struktur für die Token-Abfrage einfügen zu können. Klicken Sie danach erneut auf Edit, um den Inhalt zu übernehmen. In unserem Beispiel sieht die Token-Abfragestruktur wie folgt aus:
{
"grant_type": "client_credentials",
"client_id": "my-client",
"client_secret": "my-secret",
"scope": "api.read"
}
  1. Füllen Sie nun in der Werte-Spalte Value die korrekten Werte für client_id und client_secret ein.

Projektieren Sie anschließend eine Verbindung mit einem REST-Client-Transferobjekt:

Beispielkonfiguration des REST-Client-Transferobjekts für die Token-Abfrage

  1. Wählen Sie die passende REST-Client-Anbindung aus.
  2. Stellen Sie in der REST-Anbindung die Authentifizierung auf Keine, wenn der Token über die Anfrage selbst angefordert wird und keine HTTP-Authentifizierung gefordert ist.
  3. Tragen Sie den benötigten URL-Endpunkt ein.
  4. Wählen Sie als HTTP-Methode POST.
  5. Wählen Sie im Reiter Request das vom Token-Endpunkt erwartete Format. In unserem Beispiel ist Body type = raw und das Format application/json.
  6. Übergeben Sie die erforderlichen Werte durch Verbinden des JSON-Parameters des JSON Schreiben-Transferobjekts an den Request Body.

Nun benötigen wir noch das JSON-Lesen-Transferobjekt:

JSON-Lesen-Transferobjekt für Bearer Token

Erstellen Sie danach eine Variable (typenlos), in der die Antwort des Token-Endpunkts zunächst vollständig abgelegt wird. Verbinden Sie dafür den Body-Parameter der Antwort mit dieser Variablen.

Lesen Sie aus dieser Antwort anschließend mit einem JSON-Lesen-Transferobjekt mindestens den Wert access_token aus. Wenn das Zielsystem zusätzlich Werte wie token_type, expires_in oder refresh_token zurückgibt, können Sie diese ebenfalls auslesen und weiterverwenden.

Wenn das Token regelmäßig erneuert werden soll, binden Sie einen Zeit-Trigger ein und stellen das Intervall so ein, dass die Anforderung vor dem Ablauf des Tokens erneut ausgeführt wird.

Am Ende sieht unsere Beispielverbindung wie folgt aus:

Verbindung für Bearer Token

Token übergeben

In einer zweiten Verbindung reichen Sie das zuvor ausgelesene Token an einen weiteren REST-Aufruf weiter.

  1. Ziehen Sie die Variable mit der gespeicherten Token-Antwort in die Arbeitsfläche.
  2. Fügen Sie ein JSON-Lesen-Transferobjekt hinzu und lesen Sie daraus mindestens den Wert access_token aus.
  3. Lesen Sie bei Bedarf zusätzlich token_type aus. Wenn das Zielsystem keinen Typ zurückgibt, verwenden Sie in der Regel Bearer.
  4. Erstellen Sie ein Formel- und Taschenrechner-Transferobjekt und wählen Sie über Weitere die Funktion CONCATENATE. Setzen Sie den Header-Wert aus token_type, einem Leerzeichen und access_token zusammen. Wenn der Typ nicht dynamisch geliefert wird, können Sie stattdessen den festen Präfix Bearer mit dem access_token verknüpfen.

Formel- und Taschenrechner-Transferobjekt für Bearer Token

Verbinden Sie die Ausgabewerte des JSON-Lesen-Transferobjekts mit den Eingaben des Formel- und Taschenrechner-Transferobjekts.

Projektieren Sie danach ein weiteres REST-Client-Transferobjekt:

  1. Wählen Sie als Methode zum Beispiel GET, um Ihre eigentlichen Daten abzufragen.
  2. Wählen Sie für die Anfrage das Format application/json.
  3. Legen Sie einen Anfrageparameter vom Typ HTTP-Header an.
  4. Tragen Sie als Header-Namen Authorization ein.
  5. Verbinden Sie den Ausgabewert des Formel- und Taschenrechner-Transferobjekts mit diesem Anfrageparameter.
  6. Verbinden Sie anschließend den Body-Parameter der Antwort mit dem gewünschten Zielobjekt.
  7. Wenn der Aufruf zyklisch erfolgen soll, binden Sie einen Zeit-Trigger ein.

Verbindung für die Weitergabe des Bearer Token

Beispielprojekt zum Import

Das vollständige Beispielprojekt steht als rest_bearer_token_and_production_data_example.rpe bereit.

Die Projektdatei enthält die gezeigte Bearer-Token-Projektierung sowie zusätzlich die beiden REST-Trigger-Verbindungen aus dem Beispiel Bereitstellung simulierter Produktionsdaten über REST-Trigger.

Importieren Sie diese Projektdatei in den OPC Router, um das Beispiel vollständig nachzuvollziehen und direkt zu testen.