Jira, Atlassians führendes Projektmanagement-Tool, basiert auf einem komplexen, aber elegant strukturierten Berechtigungsmodell. Diese Architektur ermöglicht eine granulare Zugriffskontrolle und unterstützt die Anforderungen großer Unternehmen mit komplexen Organisationsstrukturen. In diesem Artikel werden wir die Datenbankstruktur und Beziehungen des Jira-Berechtigungsmodells im Detail analysieren.
Die oben dargestellte Entity-Relationship-Diagramm (ER-Diagramm) zeigt die wesentlichen Entitäten und deren Beziehungen im Jira-Berechtigungsmodell. Lassen Sie uns jeden Bestandteil und seine Rolle genauer betrachten.
Die PROJECT-Entität steht im Zentrum der Jira-Instanz.
Jedes Projekt in Jira ist eine eigenständige Arbeitsumgebung mit
folgenden Hauptattributen:
Jedes Projekt ist mit genau einem Berechtigungsschema
(PERMISSION_SCHEME) verknüpft, das die Zugriffsrechte für
das Projekt definiert.
Ein PERMISSION_SCHEME ist eine Sammlung von
Berechtigungszuweisungen, die als Ganzes auf ein oder mehrere Projekte
angewendet werden kann. Es hat folgende Attribute:
Ein Berechtigungsschema kann theoretisch auf mehrere Projekte angewendet werden, wodurch die Verwaltung von Berechtigungen über mehrere Projekte hinweg vereinfacht wird. In der Praxis ist die Beziehung jedoch oft 1:1, da viele Organisationen projektspezifische Anpassungen benötigen.
Die PERMISSION_MAPPING-Entität ist das Bindeglied
zwischen Berechtigungen und deren Empfängern. Sie definiert, wer welche
Berechtigung erhält. Jedes Mapping hat ein:
Diese Entität verbindet drei zentrale Konzepte:
Die PERMISSION-Entität repräsentiert eine konkrete
Berechtigung in Jira, wie “Issues erstellen” oder “Projekt verwalten”.
Sie enthält:
Jira enthält eine vordefinierte Menge an Berechtigungen, die nicht erweiterbar ist. Diese Berechtigungen decken alle Aspekte der Arbeit mit Jira ab, von grundlegenden Aktionen wie dem Anzeigen von Issues bis hin zu administrativen Funktionen wie der Projektkonfiguration.
GRANTEE ist eine abstrakte Entität, die als Interface
für verschiedene Empfängertypen von Berechtigungen dient. Ein Grantee
kann sein:
USER)GROUP)PROJECT_ROLE)APPLICATION_ROLE)CUSTOM_FIELD_VALUE)Diese flexible Struktur ermöglicht eine präzise Zugriffskontrolle, die sich an die Organisationsstruktur und Arbeitsabläufe anpassen lässt.
Die USER-Entität repräsentiert einen individuellen
Jira-Benutzer mit dem Attribut:
Die Zuweisung von Berechtigungen direkt an einzelne Benutzer wird in der Regel vermieden, da dies die Verwaltung erschwert. Dennoch ist diese Möglichkeit vorhanden für Spezialfälle oder temporäre Zuweisungen.
Die GROUP-Entität steht für eine Benutzergruppe in Jira
mit dem Attribut:
Gruppen sind ein zentrales Konzept in Jira und werden häufig verwendet, um Berechtigungen für Teams, Abteilungen oder andere organisatorische Einheiten zu verwalten. Jira bietet einige Standardgruppen wie “jira-administrators” und “jira-software-users”, ermöglicht aber auch die Erstellung benutzerdefinierter Gruppen.
Die PROJECT_ROLE-Entität repräsentiert eine Rolle
innerhalb eines Projekts:
Projektrollen sind besonders wertvoll, da sie projektspezifisch besetzt werden können. Die gleiche Rolle kann in verschiedenen Projekten mit unterschiedlichen Benutzern oder Gruppen besetzt sein, was eine flexible und skalierbare Berechtigungsverwaltung ermöglicht.
Die APPLICATION_ROLE-Entität bezieht sich auf Rollen auf
Anwendungsebene:
Anwendungsrollen sind spezifisch für bestimmte Jira-Anwendungen wie Jira Software, Jira Service Management oder Jira Core. Sie steuern den Zugriff auf anwendungsspezifische Funktionen und werden in der Regel automatisch verwaltet.
Die CUSTOM_FIELD_VALUE-Entität ermöglicht eine bedingte
Berechtigungsvergabe basierend auf benutzerdefinierten Feldwerten:
Diese fortgeschrittene Funktion erlaubt es, Berechtigungen basierend auf Metadaten zu vergeben. Beispielsweise könnten Berechtigungen basierend auf der Projektklassifizierung (“intern”, “extern”) oder dem Projekttyp (“Entwicklung”, “Marketing”) vergeben werden.
Die Beziehungen zwischen den Entitäten definieren die Struktur und Funktionsweise des Jira-Berechtigungsmodells:
Jedes Projekt verwendet genau ein Berechtigungsschema. Änderungen am Schema wirken sich sofort auf alle verknüpften Projekte aus.
Ein Berechtigungsschema definiert mehrere Berechtigungszuordnungen. Diese 1:n-Beziehung ermöglicht es, in einem Schema mehrere Berechtigungen an verschiedene Empfänger zu vergeben.
Mehrere Berechtigungszuordnungen können auf die gleiche Berechtigung verweisen. Dies ist notwendig, um die gleiche Berechtigung verschiedenen Empfängern zu gewähren.
Mehrere Berechtigungszuordnungen können auf den gleichen Empfänger verweisen. Dies ermöglicht es, einem Empfänger mehrere verschiedene Berechtigungen zu gewähren.
Ein GRANTEE kann jeweils genau einer der implementierenden Entitäten entsprechen: USER, GROUP, PROJECT_ROLE, APPLICATION_ROLE oder CUSTOM_FIELD_VALUE. Diese 1:1-Beziehungen definieren, welche Art von Empfänger die Berechtigung erhält.
Wenn ein Benutzer in Jira eine Aktion ausführen möchte, berechnet das System in Echtzeit, ob die erforderliche Berechtigung vorliegt. Dabei werden mehrere Faktoren berücksichtigt:
Diese mehrschichtige Prüfung erfolgt für jede Aktion und macht das Jira-Berechtigungssystem sowohl flexibel als auch leistungsfähig.
Bei der Auswertung von Berechtigungen gilt das Prinzip “erlauben über verbieten”. Das bedeutet:
Diese Hierarchie vereinfacht die Verwaltung und verhindert versehentliche Ausschlüsse.