Erhalte einen benötigten Zugang und begrenze einzelne erlaubte Aktionen.
Anmeldung beantwortet, ob eine Identität akzeptiert wird. Eine Fähigkeitsregel beantwortet, welche Aktion danach erlaubt ist. Teste beides getrennt: Anmeldung, benötigte Aktion und ausdrücklich verbotene Aktion. Unser Simulator besitzt nur die Fähigkeiten lesen und weiterleiten. Ein gültiges Login soll lesen erlauben und weiterleiten ablehnen. Vor einer Änderung werden die Regeln validiert, ein zweiter Zugangsweg und die Rücknahme geplant. Bei realen Systemen muss die Grenze das gesamte Kontomodell umfassen: Wer beliebige Programme starten darf, kann eine einzelne eingeschränkte Programmfunktion möglicherweise auf anderem Weg nachbilden.
Ein Beispiel
Fiktives Lesekonto: login=True, lesen=True, weiterleiten=False. Drei unabhängige Prüfungen erwarten erfolgreiche Anmeldung, erlaubtes Lesen und abgelehnte Weiterleitung. Ein zweites Übungskonto mit ungültiger Anmeldung erhält auch bei gesetztem lesen=True keinen Zugriff. So wird das Zusammenspiel der beiden Regeln sichtbar.
Python 3.11 · Lehrbeispiel
def allowed(login_ok, capability, rules):
return login_ok and rules.get(capability, False)
rules = {"lesen": True, "weiterleiten": False}
print(allowed(True, "lesen", rules))
print(allowed(True, "weiterleiten", rules))
print(allowed(False, "lesen", rules))
Erwartete Ausgabe
True
False
False