Ein Bankmitarbeiter kann sein eigenes Überweisungslimit nicht eigenständig erhöhen.
Es gibt etwas, das ich bei der Abwicklung von Formalitäten bei der Bank als ziemlich interessant empfunden habe.
Ein Mitarbeiter kann den ganzen Tag über Transaktionen für Kunden bearbeiten.
Die Dokumente können überprüft werden.
Man kann mehrere Schritte im Prozess genehmigen.
Aber wenn das eigene Konto der betreffenden Person das Überweisungslimit erhöhen muss, kann sie das nicht selbst ändern.
Das muss über eine andere Person laufen.
Am Anfang fand ich das ziemlich unpraktisch.
Wenn das System bereits weiß, dass diese Person ein Mitarbeiter der Bank ist, warum sollte man es dann nicht einfach erlauben?
Wenn man später darüber nachdenkt, merkt man vielleicht: Was die Bank schützt, ist nicht etwa eine Obergrenze.
Sie schützen die Grenze zwischen den Ausführenden und denjenigen, die die Gesetze schreiben, damit sie die Ausführung durchführen können.
Das hat mich beim Lesen darüber, wie @NewtonProtocol Authorization aufgebaut wird, ziemlich nachdenklich gemacht.
Worauf ich geachtet habe, ist nicht, ob ein Agent die Aktion ausführen darf.
Es ist eine Frage, die früher auftaucht.
Wer entscheidet, was erlaubt ist?
Das ist ein sehr großer Unterschied.
In vielen Systemen verbringen wir häufig viel Zeit damit, die Ausführenden zu überprüfen.
Ist die Aktion zulässig?
Ist Permission richtig?
Liegt die Ausführung innerhalb der Grenzen?
Aber Newton scheint sich noch für eine tiefere Ebene zu interessieren.
Wer darf genau diese Grenzen ändern?
Wenn die durchsetzende Person zugleich diejenige ist, die die von ihr kontrollierte Policy ändern kann, dann werden alle nachgelagerten Prüfungen sehr fragil.
Damals lag das Problem nicht mehr in der Ausführung.
Das Problem liegt darin, dass die Spieler das Gesetz des Spiels auch selbst ändern können.
Deshalb finde ich, dass die Trennung von Personen, die Policies schreiben, und Personen, die Policies durchsetzen, nicht nur eine Frage der Berechtigungen ist.
Es ist eine architektonische Entscheidung.
Eine Entscheidung, die die Bedeutung der Policy erhält, selbst wenn die Ausführung vollständig automatisiert ist.
Selbstwiderlegung.
Aber die Trennung von Rechten hat immer auch ihren Preis.
Zurück zur Bank.
Manchmal müssen Kunden die Limits dringend erhöhen.
Die Mitarbeiter wissen ganz genau, dass die Akte vollständig ist.
Zu wissen, dass die Transaktion völlig korrekt und gültig ist.
Aber sie müssen trotzdem auf eine Bestätigung durch eine andere Person warten, weil das System nicht zulässt, dass sie ihre eigenen Grenzen selbst ändern.
Dieses Erlebnis ist mit Sicherheit langsamer.
Manchmal lässt es die Nutzer sogar empfinden, der Prozess sei zu unflexibel.
Aber wenn man diese Grenze einfach aufhebt, nur damit alles schneller geht, dann verliert das gesamte Kontrollmechanismus seine Bedeutung.
Die Ausführenden sind nicht mehr durch die Policy begrenzt.
Sie können die Richtlinie vorher ändern und dann die Aktion ausführen.
Damals wurde nicht eine einzelne Transaktion beschädigt.
Sondern Vertrauen in das System selbst.
Was ich von @NewtonProtocol klarer sehen möchte, ist nicht, wie viele Arten von Policies es gibt.
Sondern wie das System den Abstand zwischen den Personen wahrt, die die Policy definieren, und denjenigen, die nur innerhalb dieser Policy handeln dürfen.
Für mich ist eine Authorization-Layer nur dann wirklich vertrauenswürdig, wenn die Person, die die Rechte hat, nicht gleichzeitig die Möglichkeit hat, die Regeln so umzuschreiben, dass ihre eigene Handlung nachträglich legitimiert wird.
Wenn das Newton Protocol diese Grenze klar und transparent beibehält, dann liegt sein Wert nicht darin, dass das System mehr prüft.
Und das liegt daran, dass niemand stillschweigend Gesetze ändern und dann selbst von genau dieser Änderung profitieren kann.

