Transaktionstoken

Transaktions-Token sind spezielle, zeitlich begrenzte OAuth 2.0 Token, die eine sichere Autorisierung für die Kommunikation zwischen Diensten innerhalb einer Vertrauensdomäne gewährleisten sollen. Basierend auf dem IETF-Spezifikationsentwurf ( draft-ietf-oauth-transaction-tokens ) handelt es sich bei diesen Tokens um signierte JWTs, die unveränderliche Kontext- und Autorisierungsinformationen für bestimmte Transaktionen enthalten.

Hinweis: Das Transaktionstoken ist eine auf Anfrage verfügbare Funktion, VDEV-186514: Securing AI Agents. Um diese Funktion anzufordern, wenden Sie sich bitte an Ihren Vertriebsmitarbeiter bei IBM oder an Ihren Ansprechpartner bei IBM und teilen Sie ihm mit, dass Sie diese Funktion nutzen möchten. Sie können auch ein Support-Ticket mit der Funktionsnummer erstellen, sofern Sie die entsprechende Berechtigung haben. IBM® Verify Mit Probeabonnements können keine Support-Tickets erstellt werden.

Über Transaktions-Token

In modernen Microservice-Architekturen löst eine einzelne externe Anfrage häufig interne Arbeitsabläufe aus, an denen mehrere Dienste beteiligt sind. Transaktions-Token bewältigen die Sicherheitsherausforderungen in diesen Szenarien, indem sie Folgendes bieten:
  • tctx Unveränderlicher Transaktionskontext : Der Anspruch (Transaktionskontext) enthält transaktionsspezifische Informationen, die während der gesamten Aufrufkette nicht verändert werden können, wodurch eine Manipulation der Parameter verhindert wird.
  • Lückenlose Rückverfolgbarkeit : Jedes Transaktionstoken enthält eine eindeutige Transaktionskennung (txn Claim), die eine lückenlose Rückverfolgung über alle an der Bearbeitung einer Anfrage beteiligten Dienste hinweg ermöglicht.
  • Workload-Autorisierung : Der req_wl Claim „(anfordernder Workload)“ enthält eine Kette aller Workloads, die die Transaktion bearbeitet haben, und ermöglicht so präzise Autorisierungsentscheidungen auf der Grundlage des Aufrufpfads.
  • Kontexterhaltung : Wenn ein Transaktionstoken bei nachfolgenden Tokenaustauschen (Ersatztoken) als Subjekt-Token verwendet wird, bleiben der Transaktionskontext und die Kennung erhalten, wodurch die Konsistenz über den gesamten Workflow hinweg gewährleistet wird.

Konfigurieren des Transaktionstokens in IBM Verify

Transaktionstoken können über den Standard- OAuth -Abllauf „ 2.0 “ () angefordert und entweder mithilfe eines STS-Clients oder einer „ OpenID Connect“-Anwendung konfiguriert werden.
Für STS-Kunden
  1. Rufen Sie die Admin-Konsole auf und wählen Sie „Anwendungen “ > „STS-Clients “. Klicken Sie auf „STS-Client hinzufügen “.
  2. Wählen Sie im Schritt „Einstellungen für den Token-Austausch“ im Dropdown-Menü „Angeforderter Tokendie Option „Transaktionstoken“ aus.
    Hinweis: Transaktionstoken können je nach Anwendungsfall auch als Subjekt- oder Akteurstoken konfiguriert werden.
  3. Im Schritt „Einstellungen für das angeforderte Token“ finden Sie eine Option zur Konfiguration des Transaktionskontexts. Dieses Feld akzeptiert einen CELx-Ausdruck, dessen Ausgabe direkt auf den tctx Anspruch im resultierenden Transaktionstoken abgebildet wird. Der Ausdruck muss zu einem gültigen JSON-Objekt ausgewertet werden. Beispiel:
    {
      "amount": "100.00",
      "currency": "USD",
      "merchant_id": "requestContext.subject_token.email"
    }
    Hinweis: Das Feld „Transaktionskontext“ ist nur sichtbar, wenn das Feld „Angefordertes Token“ auf „Transaktionstoken“ gesetzt ist. Dieses Feld ist für andere Token-Typen nicht relevant.
  4. Konfigurieren Sie die übrigen erforderlichen Eigenschaften und klicken Sie auf „Speichern“, um den STS-Client anzulegen.
Für Bewerbungen
  1. Rufen Sie die Admin-Konsole auf und wählen Sie „Anwendungen “ > „Anwendungen “. Klicken Sie auf „Anwendung hinzufügen“ und wählen Sie eine der Anwendungen im Zusammenhang mit „ OpenID Connect“ aus.
  2. Wechseln Sie auf die Registerkarte „Anmeldung“ und navigieren Sie zum Abschnitt „Token-Austausch “. Wählen Sie im Dropdown-Menü unter „Angefordertes Token“ die Option „Transaktionstoken“ aus.
    Hinweis: Transaktionstoken können je nach Anwendungsfall auch als Subjekt- oder Akteurstoken konfiguriert werden.
  3. Konfigurieren Sie den Transaktionskontext als CELx-Ausdruck, dessen Auswertungsergebnis ein gültiges JSON-Objekt ist. Dies wird direkt dem tctx Anspruch im resultierenden Transaktionstoken zugeordnet.
    Hinweis: Das Feld „Transaktionskontext“ ist nur sichtbar, wenn das Feld „Angefordertes Token“ auf „Transaktionstoken“ gesetzt ist. Dieses Feld ist für andere Token-Typen nicht relevant.
  4. Konfigurieren Sie die übrigen erforderlichen Eigenschaften und klicken Sie auf „Speichern“, um die Anwendung zu erstellen.

Zuordnung des Transaktionskontexts

Ein charakteristisches Merkmal von Transaktionstoken ist der tctx Claim „(Transaktionskontext)“ – ein unveränderlicher Claim, der den Kontext der gerade durchgeführten Transaktion definiert. Wird ein Transaktionstoken in einem nachfolgenden Token-Austauschablauf als Subjekt-Token verwendet, behält das daraus resultierende Token denselben tctx Anspruch bei, wodurch eine lückenlose Rückverfolgbarkeit über den gesamten Lebenszyklus der Transaktion hinweg gewährleistet ist.

Logik zur Generierung des Transaktionskontexts

IBM Verify bestimmt den tctx Anspruch auf ein Transaktionstoken anhand der folgenden Prioritätsregeln:
  1. Definition des CELx-Ausdrucks : Wenn ein CELx-Ausdruck im Transaktionskontext konfiguriert ist (wie in Schritt 4 beschrieben), wird der Ausdruck ausgewertet und sein Ergebnis als Anspruch tctx verwendet.
  2. Angaben zur Anfrage : Wenn keine CELx-Ausdrucksform konfiguriert ist und die Anfrage zum Tokenaustausch einen request_details Parameter enthält, wird der Wert von request_details als Claim tctx verwendet.
  3. Kein Kontext verfügbar : Wenn weder ein CELx-Ausdruck noch request_details angegeben wird, wird der tctx Claim aus dem Transaktions-Token weggelassen.

Beispiele für die CELx-Ausgabe

Die folgenden Beispiele veranschaulichen CELx-Ausdrücke zur Zuordnung von Transaktionskontexten für gängige Szenarien:
Szenario 1: Definition eines vollständigen Transaktionskontexts
In diesem Beispiel wird eine vollständige JSON-Nutzlast für den tctx-Claim definiert. Die Token-Angaben zu Subjekt und Akteur sind in CELx unter den Bezeichnungen „ requestContext.subjectToken “ bzw. „ requestContext.actorToken “ verfügbar:
{
  "amount": "100.00",
  "currency": "USD",
  "merchant_id": "requestContext.subject_token.email"
}
Szenario 2: Ergänzung der Anfragedetails durch Laufzeittwerte
Der request_details Parameter aus der Token-Austausch-Anfrage ist in CELx-Ausdrücken als requestContext.tctx. verfügbar. Sie können diesen Kontext erweitern, indem Sie zur Laufzeit berechnete Werte hinzufügen:
requestContext.tctx.put("requestingUserName", user.userName)
Eine vollständige Dokumentation zur CELx-Syntax finden Sie im Leitfaden zu den Attributfunktionen.