Simplifier Makers ClubSimplifier Makers Club
  • Docs
  • Wissensdatenbank
  • F.A.Q
  • Forum
  • Kurse
  • Marktplatz
  • Lizenzen
  • Login
  • Werde Mitglied im Club
  • Deutsch
  • Englisch
  • Try for free
  • Docs
  • Wissensdatenbank
  • F.A.Q
  • Forum
  • Kurse
  • Marktplatz
  • Lizenzen
  • Login
  • Werde Mitglied im Club
  • Deutsch
  • Englisch
  • Try for free
home/Wissensdatenbank/Integration/REST: Verwenden Sie ein CSRF-Token und ein Cookie, um Anfragen zu autorisieren

REST: Verwenden Sie ein CSRF-Token und ein Cookie, um Anfragen zu autorisieren

Written by Jennifer Häfner
Juli 24, 2024

In diesem Artikel zeigen wir Ihnen, wie Sie ein CSRF-Token und ein Cookie aus den Antwortheadern eines REST-Aufrufs abrufen und beide Werte als Eingabeparameter in einem anderen REST-Aufruf verwenden können, um Anfragen zu autorisieren.

Voraussetzungen

Sie benötigen einen konfigurierten REST-Konnektor für eine REST-API, die mit CSRF-Token/Cookies arbeitet, um unbefugten Zugriff zu verhindern.

Was ist ein CSRF-Token?

CSRF steht für „Cross-Site Request Forgery“ und ist eine Art von bösartigem Angriff auf webbasierte Anwendungen. Bei CSRF-Angriffen werden bösartige Befehle unwissentlich von vertrauenswürdigen Benutzern übermittelt. Wenn sich ein Benutzer erfolgreich bei einer Anwendung angemeldet hat, ist dieser Benutzer berechtigt, Befehle an das Backend zu senden (z. B. zum Erstellen/Aktualisieren von Daten). Bei CSRF-Angriffen werden diese Befehle im Hintergrund gesendet, ohne dass der Benutzer davon weiß. Da die Benutzerautorisierung und die Parameter dieser Befehle von einer vertrauenswürdigen Quelle stammen, wird der Befehl als gültig behandelt und daher ausgeführt.

Um CSRF-Angriffe zu verhindern, können Webanwendungen, die JavaScript verwenden, die so genannte „Cookie-to-Header-Token“-Technik einsetzen. Bei dieser Technik wird von der Anwendung ein Cookie erzeugt, das ein zufälliges Token für die Sitzung enthält. Dieses zufällige Token wird dann zu den Header-Parametern (CSRF-Token-Header) jeder Anfrage an den Server hinzugefügt, und der Server kann die Anfrage validieren.

Lesen Sie mehr über dieses Thema in diesem Artikel.

Die Cookie-to-Header-Token-Technik in Simplifier

Im folgenden Abschnitt zeigen wir Ihnen, wie Sie eine REST-API integrieren, die die “Cookie-to-Header-Token”-Technik in Simplifier verwendet.

Schritt 1: Rufen Sie das CSRF-Token und das Cookie ab

Zunächst müssen wir über die REST-API ein CSRF-Token und ein Cookie vom Server anfordern. Die genauen Parameter, die für diese Anforderung erforderlich sind, hängen von der von Ihnen verwendeten REST-API ab.

In unserem Beispiel haben wir einen REST-Konnektor namens „Test“. Dieser Konnektor hat einen Aufruf namens „getToken“. Mit diesem Aufruf werden ein CSRF-Token und ein Cookie vom Server angefordert. Das CSRF-Token und das Cookie werden als Antwort-Header gesendet. Um diese Antwort-Header in das Ergebnis einzubeziehen, wechseln wir in die erweiterte Ansicht der Detailansicht des Verbindungsaufrufs und fügen einen zusätzlichen Eingabeparameter hinzu:„configuration/http/verbosity/headers“. Wir setzen den Wert auf„Verbose“ (In den meisten Fällen sollte„Normal“ ausreichend sein. Verwenden Sie „Verbose“ nur, wenn die unten erläuterten Token-Informationen im „Normal“-Modus nicht angezeigt werden). Mit dieser zusätzlichen Konfiguration enthält das Ergebnis des Konnektoraufrufs auch die Antwort-Header. Weitere Informationen über zusätzliche Konnektorparameter finden Sie in unserer Dokumentation.

Wir werden diesen Konnektoraufruf in einem serverseitigen Geschäftsobjekt verwenden und das Ergebnis speichern.

Dann extrahieren wir die Werte für das CSRF-Token und den Cookie aus dem Ergebnisobjekt. In unserem Beispiel sieht das so aus (überprüfen Sie jedoch immer, wie Ihr Ergebnisobjekt strukturiert ist):

var oResult = Simplifier.Connector.Test.getToken().result;
var myToken = oResult.Headers["x-csrf-token"].value;
var aCookies = oResult.Headers.filter(function(oHeader) {
    return oHeader.name === "Set-Cookie";
});

Wichtig: Rufen Sie das CSRF-Token und das Cookie immer aus der gleichen ‘getToken’-Anfrage ab! Wenn Sie zwei separate Anfragen verwenden, stimmen das Token und das Cookie nicht überein, sodass Ihre folgenden Anfragen nicht autorisiert werden können.

Als nächstes müssen wir den relevanten Teil (CSRF-Teil) aus dem Cookie extrahieren, da er in der Regel auch andere Informationen enthält. In unserem Beispiel erreichen wir dies durch die Verwendung der JavaScript-Funktion “map”. Um zu überprüfen, ob wir den richtigen Teil extrahiert haben, können wir die Simplifier Log API verwenden und den Wert des Cookies protokollieren. Der Protokolleintrag ist im Abschnitt Protokolle und Überwachung unter dem Reiter “Protokolle” sichtbar.

 

var sCookie = aCookies.map(function(oCookie) {
    return oCookie.value.split(";")[0];
}).join("; ");

Simplifier.Log.info("cookie " + sCookie, sCookie);

Schritt 2: Verwenden Sie das CSRF-Token und das Cookie in einem anderen Aufruf

Nachdem wir nun das CSRF-Token und das Cookie extrahiert haben, können wir beide Werte zur Autorisierung anderer Anfragen verwenden.

In unserem Beispiel verwenden wir sie als Kopfparameter für den Konnektoraufruf „PatchCorporateAccountCollection“.

In unserer serverseitigen Business-Objekt-Funktion rufen wir diesen Konnektoraufruf mit den jeweils abgerufenen Werten des CSRF-Tokens und des Cookies auf:

 

var patchRequest = Simplifier.Connector.Test.PatchCorporateAccountCollection({
    path: "CorporateAccountCollection('" + input.objectid + "')",
    postBody: {
        "ERP_ID_KUT": input.ERP_KUT_ID
    },
    token: myToken,
    cookie: sCookie // cookie can look like this: "sap-login-XSRF_LP8=20220804073501-9ymw9yQLYRRTWVtpZ1QfYA%3d%3d;"
});

output = patchRequest;

Die Werte des CSRF-Tokens und des Cookies werden nun vom Server validiert.
Wenn die Validierung erfolgreich ist, wird die Anforderung ausgeführt.

Wie bereits erwähnt, überprüfen Sie immer die Beschreibung der REST-API, die Sie verwenden.

Das in diesem Artikel gezeigte Beispiel ist eine Anleitung, wie Sie mit CSRF-Token und Cookies als Anforderungsautorisierung arbeiten.

Tags:VerbinderWortfüllesetzen-cookiex-csrf-fODataKopfballAntwortKeksZeichenCSRFÜberwachungAPISkriptRUHEPAUSEAnTextBENUTZEROBERFLÄCHE

Was this article helpful?

Yes  No
Related Articles
  • Feinabstimmung und Ausführung benutzerdefinierter AI-Modelle in Simplifier
  • Verwendung der Simplifier Teams App
  • So integrieren Sie SAP ERP (über SAP RFC)
  • Erstellen eines ChatBot-Clients für ChatGPT
  • Verwenden von Datendiensten und ODataV4-REST
  • Erstellen eines ODataV2-Connectors
Leave A Comment Antworten abbrechen

Du musst angemeldet sein, um einen Kommentar abzugeben.

Integration
  • REST: Verwenden Sie ein CSRF-Token und ein Cookie, um Anfragen zu autorisieren
  • Einrichtung des Identitätsanbieters
  • Dynamische where-Klausel und wiederholbare Anweisung
  • So erstellen Sie einen REST-Connector
  • Erstellen eines ODataV2-Connectors
  • Verwenden von Datendiensten und ODataV4-REST
  • Erstellen eines ChatBot-Clients für ChatGPT
  • So integrieren Sie SAP ERP (über SAP RFC)
  • Verwendung der Simplifier Teams App
  • Feinabstimmung und Ausführung benutzerdefinierter AI-Modelle in Simplifier
Knowledgebase Categories
  • Erste Schritte 4
  • Mobiler Client 2
  • Layout & Design 4
  • Widgets 8
  • Integration 10
  • Datenbank Handling 1
  • Anleitungen 27
  • Best Practices 4
  • Cloud Services 6
  • Plugins 6

  So erstellen Sie einen REST-Connector

Dynamische where-Klausel und wiederholbare Anweisung  

Link einfügen/ändern

Gib die Ziel-URL ein

Oder verlinke auf bestehende Inhalte

    Es wurde kein Suchbegriff angegeben. Es werden die aktuellen Inhalte angezeigt. Verwende zur Auswahl eines Elements die Suche oder die Hoch-/Runter-Pfeiltasten.