Bisher haben wir uns mit einer statischen Sicht auf die Berechtigungshierarchie befasst, die dazu führt, dass ein Mitarbeiter Berechtigungen auf eine Ressource hat. Diese statische Sicht beinhaltet nur die Aussage, dass der Mitarbeiter aufgrund seiner Berechtigungsstruktur potenziell Zugriff hat. Ob er den Zugriff tatsächlich genutzt hat, ob also die Berechtigungsstruktur wirksam ist, entscheidet sich zur Laufzeit. Hier tritt ein wesentlicher Unterschied zweier Systeme zutage:
- Das Berechtigungsmanagement-System, bestehend aus IAM-System, Active-Directory, den Gruppen-in-Gruppen-Verschachtelungen und den Access Control Lists auf den Ressourcen, legt die potenziellen Berechtigungen fest (statische Sicht)
- Das Zugriffskontrollsystem prüft zur Laufzeit, ob ein konkreter Zugriffsversuch zulässig ist oder nicht. Erst durch diese Instanz wird eine Berechtigung wirksam.
Auch im IT-System „Windows“ ist es wichtig, zwischen der Datenhaltung und der Zugriffskontrolle zu unterscheiden: das Active Directory ist eine Windows-Komponente, aber es ist nicht das Zugriffskontrollsystem. Vielmehr hält es die Berechtigungsdaten vor, die das Windows-Zugriffskontrollsystem zur Ausübung der Zugriffskontrolle benötigt. Wenn ich also im Active Directory manuell oder über ein IAM-System Berechtigungsstrukturen verwalten kann, sagt mir das noch nicht viel über deren Wirksamkeit. Folgende Fallstricke könnte es zwischen den Ebenen 5 und 8 in unserem Modell geben:
- Eine Gruppe ist nicht unmittelbar oder (über Verschachtelungen) in der ACL einer Ressource genutzt. Ergebnis: Gruppenmitgliedschaft des Accounts ohne jegliche Wirkung
- Überlappung mehrere Gruppen in den Einzelrechten der ACLs. Ergebnis: der Entzug einer Gruppenmitgliedschaft entzieht dem Account nicht die potenzielle Berechtigung auf die Ressource, da es für sie noch einen anderen Pfad in der Berechtigungshierarchie gibt
Darüber hinaus gibt es noch einen vor allem bei Entzügen problematischen Effekt, der sich aus einem Caching-Mechanismus in Windows ergibt, der gerne vergessen wird: das Access Token.
Das Access Token wird beim Login eines Accounts an einer Windows-Arbeitsstation vom Login-Manager ermittelt und fortan bei jeder Authentifikations- oder Autorisierungsanfrage eines anderen Windows-Rechners (bspw. eines File-Servers) vorgezeigt. Im Access Token stehen alle Berechtigungen des Accounts zum Zeitpunkt des Entstehens des Tokens, die sich aus dem Active Directory ermitteln lassen, darunter alle direkten Gruppenmitgliedschaften. Insbesondere stehen im Access Token nicht
- Mittelbare Gruppenmitgliedschaften, die sich durch Gruppen-Verschachtelungen innerhalb des Active Directories ergeben
- Mittelbare Gruppenmitgliedschaften in Server-lokalen Gruppen
- Berechtigungen in ACLs mittelbarer oder unmittelbarer Art auf den (allen) Windows-Servern und -Arbeitsstationen der Domäne
Ändern sich also Berechtigungsstrukturen im Active Directory, bspw. durch Hinzufügen von Gruppenmitgliedschaften zum Account, durch Entzug von Gruppenmitgliedschaften oder durch Änderungen an der Gruppenverschachtelung, so hat dies erst zeitverzögerte Auswirkungen auf das Access Token: erst beim nächsten Login wird es neu berechnet.
Wenden wir uns der zweiten der beiden Eingangsfragen zu: Was sind aktuell seine (Herrn Meiers) wirksamen Berechtigungen? Die aktuell wirksamen Berechtigungen eines Windows-Accounts stehen entweder direkt im Access Token oder werden von ihm abgeleitet, z.B. in dem ein File-Server das Access Token liest und sein Zugriffskontrollsystem dem Account nachfolgend einen Zugriff auf eine Ressource gewährt oder verwehrt. Kann ich das im IAM-System sehen? Antwort: nein.