Zum Inhalt springen

Vertrag03 von 04

Welche Felder braucht eine Freigabe?

Freigabe: Bindung und Verbrauch

Thema
KALKÜL
Lesezeit
1 Min.
Erstfassung
Stand
Bauplan
Auf dieser Seite
  1. 01Ein geplanter Vertrag, kein erreichbarer Endpunkt
  2. 02Die Entscheidung an den Inhalt binden
  3. 03Verbrauch muss atomar sein
  4. 04Was der Prototyp tatsächlich zeigt
  5. 05Schema
  6. 06Felder
  7. 07Fehlerfälle
  8. 08Grenze und Regel
  9. 09Verwandte Seiten

Eine Freigabe bindet eine Entscheidung an eine konkrete beabsichtigte Handlung und einen begrenzten Geltungsbereich. Diese Referenz ist ein geplanter öffentlicher Vertrag; sie ist nicht das Tokenformat des vorhandenen Browser-Prototyps.

Ein geplanter Vertrag, kein erreichbarer Endpunkt

Die Felder beschreiben eine prüfbare Entwurfsrichtung. Es gibt hier keinen zugesagten HTTP-Endpunkt, keine SDK-Methode und keine Kompatibilitätsgarantie. Vor einer Implementierung müssen Authentifizierung, Grenzwerte, Serialisierung und Fehlertransport festgelegt und getestet werden.

Die Entscheidung an den Inhalt binden

Eine Freigabe für einen Vorschlag darf nicht für einen nachträglich geänderten Vorschlag gelten. Deshalb muss der Vertrag die entscheidungsrelevanten Werte eindeutig festhalten. Was nicht in die Bindung eingeht, ist durch diesen Mechanismus nicht geschützt.

Verbrauch muss atomar sein

Zwei gleichzeitige Aufrufe dürfen dieselbe Einmalkennung nicht beide erfolgreich verbrauchen. Im geplanten Betrieb braucht es dafür eine konsistente Verbrauchsstelle. Ein Flag im Browser reicht nicht für konkurrierende Prozesse oder einen Neustart.

Was der Prototyp tatsächlich zeigt

Begriff · HMAC

Ein Message Authentication Code auf Basis einer Hashfunktion und eines gemeinsamen Schlüssels. Wer den Schlüssel hat, kann gültige Werte erzeugen.

Eine Freigabe an eine Sache binden

Die Browser-Vorführung verwendet HMAC-SHA256 für ein einmaliges, an eine Sache gebundenes Ja. Der Zustand liegt im Speicher des aktuellen Browserfensters. Ein MAC mit gemeinsamem Schlüssel ist keine öffentlich prüfbare digitale Signatur. Produktive Identitätsprüfung und Schlüsselverwaltung sind damit nicht nachgewiesen.

Schema

{
  "id": "<freigabe-kennung>",
  "actionRef": "<handlung-kennung>",
  "actionDigest": "<pruefwert-der-handlung>",
  "approvedBy": "<identitaet>",
  "issuedAt": "<zeitpunkt>",
  "expiresAt": "<zeitpunkt>",
  "nonce": "<einmalkennung>",
  "state": "issued",
  "policyVersion": "<regelfassung>"
}
Schema 1JSON · Schema mit Platzhaltern

Felder

FeldTypPflichtBedeutung
idstringjaEindeutige Freigabekennung.
actionRefstringjaGenau der vorbereitete Handlungsversuch.
actionDigeststringjaPrüfwert der kanonisch serialisierten entscheidungsrelevanten Eingabe. Das Verfahren wird vor Implementierung festgelegt.
approvedBystringjaVerifizierte entscheidende Identität. Kein frei gesetzter Anzeigename.
issuedAtstring (date-time)jaAusstellungszeitpunkt.
expiresAtstring (date-time)jaSpätester zulässiger Verbrauch.
noncestringjaEindeutige Einmalkennung. Der Verbrauch muss atomar erfasst werden.
stateenumjaissued, consumed, expired oder revoked.
policyVersionstringjaFassung der Regel zum Zeitpunkt der Entscheidung.

Fehlerfälle

KennungBedeutung
APPROVAL_EXPIREDDie Geltungsdauer ist überschritten.
APPROVAL_ALREADY_CONSUMEDDie Einmalkennung wurde bereits verwendet.
APPROVAL_BINDING_MISMATCHZiel, Eingabe oder handelnde Identität stimmen nicht mit der Entscheidung überein.
APPROVAL_REVOKEDDie Entscheidung wurde vor Ausführung widerrufen.

Grenze

Grenze
Dieser Schnittstellenvertrag ist geplant. Ein lokaler Kontrollprototyp belegt weder eine veröffentlichte API noch organisationsweiten Betrieb.

Verwandte Seiten