WĂ€hrend meiner Arbeit als Architekt in IdM-Implementierungsprojekten habe ich Dutzende Implementierungen von Berechtigungsmechanismen sowohl in internen Lösungen von Unternehmen als auch in kommerziellen Produkten analysiert und kann sagen, dass sie bei relativ komplexen Anforderungen fast ĂŒberall nicht richtig oder zumindest nicht optimal ausgefĂŒhrt werden. Der Grund ist meiner Meinung nach die geringe Aufmerksamkeit des Kunden und der Entwickler fĂŒr diesen Aspekt in der Anfangsphase und die unzureichende EinschĂ€tzung der Auswirkungen von Anforderungen. Dies bestĂ€tigt indirekt den weit verbreiteten Missbrauch des Begriffs: Wenn ich den Ausdruck "Zwei-Faktor-Autorisierung" sehe, bekomme ich Schmerzen direkt unter meinem RĂŒcken. Aus GrĂŒnden des Interesses haben wir die ersten 100 Artikel zu HabrĂ© in den Suchergebnissen nach "Autorisierung" analysiert, das Ergebnis war enttĂ€uschend, es gab viel Schmerz:

In mehr als 80% der FĂ€lle wird der Begriff falsch verwendet, stattdessen sollte das Wort âAuthentifizierungâ verwendet werden. Als nĂ€chstes werde ich versuchen zu erklĂ€ren, was es ist und warum es Ă€uĂerst wichtig ist, diesem Thema besondere Aufmerksamkeit zu widmen.
Was ist das
So zitieren Sie Wikipedia:
Aus der Sicht eines Informationssystems ist dies der Entscheidungsprozess fĂŒr die Bereitstellung des Zugangs zum Subjekt, um die Operation auf der Grundlage von Kenntnissen ĂŒber das Subjekt durchzufĂŒhren. Zu diesem Zeitpunkt sollte das Subjekt in der Regel bereits
identifiziert (wir mĂŒssen wissen, wer es ist) und
authentifiziert sein (seine IdentitÀt wird bestÀtigt).
Die Implementierung von Berechtigungen bei der Entwicklung eines auf den Unternehmenssektor ausgerichteten Unternehmensinformationssystems oder -produkts ist eine sehr schwierige und verantwortungsvolle Aufgabe, der in der Entwurfsphase und in der ersten Entwicklungsphase hĂ€ufig nicht genĂŒgend Aufmerksamkeit geschenkt wird, was in Zukunft zu einer âKrĂŒckenâ -Implementierung fĂŒhrt.
Ausgabe
Lassen Sie uns sehen, welche Berechtigungsanforderungen erfĂŒllt sind und warum es Ă€uĂerst wichtig ist, sie beim Entwurf eines Systems zunĂ€chst zu berĂŒcksichtigen und nicht fĂŒr die Zukunft zu verschieben. In einem Unternehmensinformationssystem gibt es normalerweise zwei Quellen fĂŒr Berechtigungsanforderungen: GeschĂ€fts- und Informationssicherheit. Im allgemeinen Fall möchte ein Unternehmen Geheimnisse geheim halten und den Benutzern Berechtigungen gemÀà ihrer Funktion im GeschĂ€ftsprozess erteilen, und die Sicherheit möchte sicherstellen, dass die Berechtigungen fĂŒr jeden Benutzer mindestens ausreichen, und den Zugriff ĂŒberwachen.
Nehmen wir zum Beispiel ein hypothetisches System fĂŒr die Aushandlung groĂer UnternehmensvertrĂ€ge, ein typisches blutiges Unternehmen. Die folgenden
Anforderungen an die GeschÀftserlaubnis werden höchstwahrscheinlich auftreten:
- Ein Benutzer, der nicht mit einem bestimmten Vertrag verbunden ist, sollte ihn nicht im System sehen
- Der Autor des Vertrags sollte es in allen Phasen sehen.
- Ein Benutzer mit einer Note von mindestens 10 hat das Recht, einen Vertrag zu erstellen.
- Der Besucher muss den Vertrag sehen, beginnend mit dem Eingang auf der BĂŒhne und weiter.
- Abteilungsleiter sollten die VertrÀge ihrer Einheiten in der Hierarchie sehen.
- Der Vertragsautor und der Referatsleiter haben das Recht, den Vertrag in jedem Stadium der Genehmigung zu widerrufen.
- Die GeschĂ€ftsfĂŒhrung und das Sekretariat der Hauptverwaltung sollten die Unterlagen aller Zweigstellen einsehen.
- Der Benutzer, der den Vertrag erstellt hat, sollte nicht berechtigt sein, diesen zu billigen.
Aus SicherheitsgrĂŒnden könnten wir folgende Anforderungen stellen :
- Wissen, wer Zugriff auf einen bestimmten Vertrag hat.
- Wissen, wer zu einem bestimmten Zeitpunkt Zugang zu einem bestimmten Vertrag hatte.
- Dem Benutzer den Zugriff auf zuvor verfĂŒgbare Dokumente zu verweigern, wenn er seine Arbeitsaufgaben Ă€ndert.
Ich denke die Entwickler hatten schon Angst :). Ein zusĂ€tzlicher Schmerz ist die hohe VariabilitĂ€t dieser Anforderungen. Ăbrigens sind nach den Statistiken einer groĂen 1C-Franchise zusĂ€tzliche Autorisierungsanforderungen eine der hĂ€ufigsten Aufgaben fĂŒr das Anpassen typischer Konfigurationen.
Deshalb zeigen wir auf, warum diese Anforderungen problematisch sind:
- Sie sind nicht stabil. Die Wahrscheinlichkeit ihrer VerÀnderung, auch kurzfristig, betrÀgt 1.
- Sie sind Querschnittsthemen. Ihre Implementierung wirkt sich auf alle Ebenen aus, vom Datenbankdesign bis zur BenutzeroberflÀche.
- Sie liegen in der Ebene des Themenbereichs. Dies fĂŒhrt zu einer starken KonnektivitĂ€t des Autorisierungsmechanismus mit einer Schicht von GeschĂ€ftslogik.
- Sie wirken sich auf die Leistung aus.
Lösungen
Die entwickelten Zugangskontrollmodelle helfen uns, dieses Problem zu lösen:
MAC ist ein Zugangsberechtigungsmodell. Der Zugriff des Subjekts auf das Objekt wird durch seine Zugriffsebene bestimmt: Die Zugriffsebene des Subjekts sollte nicht niedriger sein als die Geheimhaltungsstufe des Objekts.
DAC - Direktzugriffskontrolle. Der Zugriff des Subjekts auf das Objekt wird durch das Vorhandensein des Subjekts in der Zugriffsliste
(ACL) des Objekts bestimmt.
RBAC ist ein Vorbild fĂŒr die Zugriffskontrolle. Der Zugriff des Subjekts auf das Objekt wird durch das Vorhandensein der Rolle des Subjekts bestimmt, die die dem angeforderten Zugriff entsprechenden Befugnisse enthĂ€lt.
ABAC ist ein Attributmodell der Zugriffskontrolle. Der Zugriff des Subjekts auf das Objekt wird dynamisch basierend auf einer Analyse der Richtlinien bestimmt, die die Werte der Attribute des Subjekts, Objekts und der Umgebung berĂŒcksichtigen. Dies beinhaltet auch
PBAC, RAdAC, CBAC mit einigen Nuancen (
schicke Rezension von CUSTIS ).
Es wird dringend empfohlen, sie in ihrer ursprĂŒnglichen Form zu verwenden, ohne das Rad neu zu erfinden. In komplexen Informationssystemen wird hĂ€ufig eine Kombination von Modellen verwendet. Beispielsweise ist die Kombination ACL + RBAC beliebt, wenn eine Rolle in einer Zugriffsliste enthalten ist. Der richtige Einsatz von Fertigmodellen ist jedoch auch keine leichte Aufgabe. Nicht jeder kann das richtige Modell auswĂ€hlen, es von der GeschĂ€ftslogik trennen und eine akzeptable Leistung des Autorisierungsmechanismus erzielen.
Um die oben im Abschnitt âProblemeâ genannten Anforderungen zu implementieren, wĂŒrde ich auf den ersten Blick die Kombination PBAC + ACL wĂ€hlen. Die Anforderungen könnten wie folgt umgesetzt werden:
Die aufgefĂŒhrten IS-Anforderungen werden problemlos mithilfe von ACLs implementiert, die GeschĂ€ftsanforderungen 5 und 7 werden jedoch mithilfe von PBAC implementiert. Um die Anforderungen von IS 1 und 2 zu implementieren, mĂŒssen Sie ihnen ein Journal oder einen Ă€hnlichen Mechanismus hinzufĂŒgen, da dynamische Regeln bei aller Schönheit schlecht geprĂŒft werden:
Total
Autorisierung ist ein unverdient vernachlĂ€ssigtes Thema, sowohl in Veröffentlichungen als auch direkt im Entwicklungsprozess. Die Zwei-Faktor-Authentifizierung per SMS wird vom Kind auf die Site geschraubt. Das korrekte Implementieren von Berechtigungen im Unternehmenssystem ohne KrĂŒcken ist eine schwierige Aufgabe, der sich Lords und Architekten entziehen, und viele gĂ€ngige kommerzielle Produkte (z. B. Atlassian Jira) stehen aufgrund der KomplexitĂ€t der Anforderungen auf KrĂŒcken.
Wir planen eine Reihe von Artikeln zu Berechtigungsmodellen und zum Thema insgesamt. Wir freuen uns ĂŒber Fragen und Anregungen zu Themen, die berĂŒcksichtigt werden mĂŒssen.