Was gebaut ist
Die Anmeldung beantwortet, wer jemand ist. Die Rechte beantworten, was diese Person tun darf. Das geplante System trennt beides: Die Identität kommt aus dem Verzeichnis der Organisation, Rollen, Handlungen und Markierungen liegen im System. So wirkt ein Wechsel im Verzeichnis sofort, und niemand pflegt Rechte an zwei Stellen.
Im System · AXON · FORGE
- Eine Verzeichnis außerhalb, ein Objekt innerhalb von einer Grenze.
- Der Weg nach innen führt durch jede Grenze.
Das Verzeichnis führt die Identität
Das System speichert keine Kennwörter von Personen. Die Anmeldung läuft beim Identitätsdienst der Organisation, über OpenID Connect oder über SAML 2.0. Bei OpenID Connect wird der Autorisierungscode-Fluss mit PKCE (RFC 7636) verwendet; das System erhält ein ID-Token und prüft Signatur anhand der veröffentlichten Schlüssel des Dienstes, den Aussteller (iss), den Empfänger (aud), die Gültigkeit (exp) und den Wert nonce, den es selbst mitgegeben hat.
Wie stark die Anmeldung ist, bestimmt das Verzeichnis: ein zweiter Faktor, ein Schlüssel nach WebAuthn, ein Gerät der Organisation. Das System fragt nach dem erreichten Niveau, wie es NIST SP 800-63B beschreibt, und macht bestimmte Handlungen davon abhängig. Es verlangt kein eigenes Kennwort als Ersatz.
Personen und Gruppen kommen per SCIM
Personen und Gruppen werden vom Verzeichnis ins System übertragen, über SCIM 2.0 (RFC 7643 und RFC 7644): anlegen, ändern, deaktivieren. Das System legt keine Personen von Hand an, und es kennt nur Personen, die das Verzeichnis gemeldet hat.
Deaktiviert das Verzeichnis eine Person, endet ihr Zugang beim nächsten Abgleich. Das gilt auch für alles, was in ihrem Auftrag läuft: Ein Agent, der für sie handelt, verliert die Delegation, weil der Tausch des Tokens nach RFC 8693 nicht mehr möglich ist. Offene Aufträge werden angehalten und an eine Vertretung übergeben oder abgebrochen, je nach Regel des Auftrags.
Gruppen sind Eingaben, Rechte sind Regeln
Eine Gruppe im Verzeichnis gibt kein Recht. Eine Abbildung ordnet Gruppen Rollen des Systems zu. Sie ist ein Datensatz mit Version, von einer eigenen Rolle gepflegt und vor dem Einsatz gegen Testfälle geprüft. Eine Gruppe ohne Abbildung bringt nichts mit; wer im Verzeichnis Administrator ist, ist es im System nicht von selbst.
Die Rechte selbst, also Handlungen, Markierungen und Zweck, liegen im System und werden dort bei jedem Zugriff geprüft. Wer das Verzeichnis pflegt, kann deshalb Zugang entziehen, aber nicht allein neue Rechte an Daten vergeben oder Freigaben erteilen. Beide Seiten brauchen einander.
Agenten haben eine eigene Identität
Ein Agent meldet sich nie mit dem Konto einer Person an. Er ist eine Dienstidentität mit eigener Rolle, eigenem Schlüssel und kurzlebigen Token (RFC 9068 beschreibt ein Profil für solche Zugangstoken). Handelt er für eine Person, nennt das getauschte Token beide: die Person als Subjekt und den Agenten als Handelnden.
Die Einzelheiten der Rechteprüfung beschreibt die technische Seite zu den Rechten in AXON. Für die Anmeldung gilt: Was ein Agent darf, ist nie mehr als das, was die Person darf, die ihn beauftragt.
Sitzung, erneute Anmeldung, Ausfall
Sitzungen sind begrenzt. Für Handlungen mit Wirkung nach außen und für Freigaben verlangt das System eine frische Anmeldung, wie es die Aufforderung zur stärkeren Authentifizierung nach RFC 9470 vorsieht, statt sich auf eine Sitzung vom Morgen zu stützen. Meldet das Verzeichnis eine Abmeldung, etwa über OpenID Connect Back-Channel Logout, endet auch die Sitzung im System.
Fällt das Verzeichnis aus, laufen bestehende Sitzungen bis zu ihrem Ablauf weiter, und niemand kann sich neu anmelden. Notfallkonten außerhalb des Verzeichnisses sind nur dort vorgesehen, wo die Organisation sie will, getrennt aufbewahrt und mit einer Meldung bei jeder Nutzung. In einem abgeschotteten Netz steht das Verzeichnis im Netz selbst und bindet auf demselben Weg an.
Schema
anmeldung:
verfahren: openid_connect # oder saml
aussteller: <verzeichnis>
empfaenger: <system>
zugangsniveau_mindestens: <niveau>
personen_und_gruppen: scim
gruppen_abbildung:
<gruppe-im-verzeichnis>: <rolle-im-system>
nicht_zugeordnet: kein_recht
freigabe:
frische_anmeldung: jaGrenze
- Grenze
- Dieses Verfahren ist geplant. Die Prüfbank für Freigabe und Protokoll im Browser kennt weder eine Anmeldung noch ein Benutzerkonto, und Rollen und Rechte je Handlung sind nicht gebaut. Welche Verfahren eine Installation anbindet, wird mit dem Verzeichnis der Organisation festgelegt.
Fragen
- Reicht Single Sign-On als Rechteprüfung?
- Nein. Single Sign-On belegt, wer jemand ist. Ob die Person eine bestimmte Handlung an diesen Daten zu diesem Zweck ausführen darf, prüft das System bei jedem Zugriff nach seinen eigenen Regeln.
- Was geschieht mit laufenden Aufträgen, wenn jemand das Haus verlässt?
- Mit der Deaktivierung im Verzeichnis verliert jeder Agent, der für die Person handelt, seine Delegation. Offene Aufträge halten an und gehen an eine Vertretung oder enden.
Quellen
- OpenID Connect Core 1.0Norm der OpenID Foundation. Anmeldung, ID-Token und die Prüfung seiner Angaben.
- RFC 7644: SCIM 2.0, ProtokollIETF. Anlegen, Ändern und Deaktivieren von Personen und Gruppen; das Schema steht in RFC 7643.
- RFC 8693: OAuth 2.0 Token ExchangeIETF. Tausch von Token für die Delegation an einen Agenten.
- NIST SP 800-63B: Authentication and Authenticator ManagementNIST. Vertrauensniveaus der Authentifizierung und ihre Anforderungen.