Benutzer-Berechtigungssystem
Grundsätzlich werden Berechtigungen jeweils den Benutzergruppen (=Rollen) zugewiesen, teilweise nur für bestimmte Kontexte.
Beispielsweise, wenngleich Sie alle in der DDS vorhandenen Datenpunkte durchsuchen und finden können, ist ein Abruf der Daten, auch für die Vorschau, von der Vertraulichkeit des Datenpunktes abhängig.
TIP
Sie können die für DDS relevanten und aktiven Rollen durch Klick auf "Profil" (rechts oben) auslesen.
Vertraulichkeitsstufen
Derzeit kennen wir folgende Vertraulichkeiten
- Öffentlich
- Intern (I) - Default
- Vertraulich (V)
- Streng Vertraulich (SV)
Streng vertrauliche Daten können z.B. nicht in eine Staging-DB exportiert werden.
Rollendefinition
Benutzerrollen sind definiert über diese Eigenschaften:
- Active Directory Name: Der Name dieser Gruppe im an die DDS angekoppelten Active Directory System, welche die Gruppenzuordnungen enthalten. Dieser muss übereinstimmen mit dem Gruppennamen im AD, damit die Zuweisung zu Usern funktioniert.
- DDS-Name: Der Bezeichner der Gruppe im DDS. Wird unter anderem im ausklappbaren Profil angezeigt.
- Zugriffsrechte: Liste aller Rechte, die dieser Rolle zugewiesen sind.
Fehlende Rechte
Falls Ihnen Rechte auf z.B. ihre Abteilungsdaten fehlen, lassen Sie bitte von Ihrer Administration die korrekte Zuteilung zu den für DDS relevanten Berechtigungsgruppen prüfen.
Technisches
Auch wenn andere Installationen möglich sind, werden die Rollen der Benutzer in der Regel von Ihrer IT technisch im Active Directory gepflegt und über einen Trusted OAuth2-Provider (MS Federal Services) abgerufen.
Damit ist auch das Single-Sign-On über die Windows-Anmeldung möglich, welche nur mehr einen Klick auf den korrekten OAuth2-Provider erfordert.
Viele OpenAPI-Operationen haben ihre jeweils eigene Authorisierung, welche erst durch die Zuweisung zu den Rollen zusammengefasst werden. Zusätzliche Authorisierungen / Berechtigungen (z.B. das Ändern der Vertraulichkeit) sind aber auch vorhanden.
Die verfügbaren Rechte werden automatisiert gepflegt, die Gruppen und ihre Zuweisungen können in der dafür existierenden Benutzeroberfläche modifiziert werden.
Benutzer werden beim erstmaligen Zugriff (Authentifizierung) angelegt.
Überlappende Rechte
Es ist möglich, einer Rolle für dasselbe Recht, aber unterschiedlichem Gültigkeitsbereich verschiedene Berechtigungslevels zu spezifizieren. Wenn zwei Rechte denselben Bereich abdecken, gilt das Recht mit der höchsten Vertraulichkeitsstufe.
Beispiel: Eine Rolle soll für alle Datenquellen Werte exportieren dürfen, aber nur Werte von Vertraulichkeit 'Intern' oder darunter. Für Datenquelle 'EWDB' soll die Rolle auch 'vertrauliche' Werte spezifizieren können. Das würde in der Praxis so aussehen:

Erklärung aller existierenden Rechte
Stand Version 3.7.3 existieren die folgenden Berechtigungen in der DDS:
| Kontext | Recht | Beschreibung | Datenquellensensitiv? |
|---|---|---|---|
| /all | READ | Sysadmin-Recht, "darf alles lesen". Wird vereinzeln benutzt für sicherheitskritische Elemente, die nicht lösbar sind über die anderen Rechte. | |
| WRITE | Sysadmin-Recht, "darf alles bearbeiten". | ||
| /CVE-Report | READ | Abfrage der CVE-Reports. | |
| /datapoint | READ | Abfrage von Datenpunkten in der Suche sowie Ansehen ihrer Metadaten. | |
| WRITE | Überschreiben von Datenpunkt-Metadaten (sowie der Metadaten ihrer Varietäten) | Ja | |
| /datapoint/confidentiality | WRITE | Überschreiben der Vertraulichkeitsstufe eines Datenpunktes. | Ja |
| /datapoint/data | READ | Abfragen von Datenwerten von Datenpunkten. Umfasst sowohl Preview als auch Job-Export. | Ja |
| /datasource | READ | Ansehen von Datenquellen-Details. | |
| WRITE | Überschreiben von Datenquellen-Details, Löschen von (virtuellen) Datenquellen. | ||
| /export-target | READ | Abfragen der Exportziel-Liste inkl. ihrer Eigenschaften | |
| WRITE | Anlegen und Modifizieren von Exportzielen | ||
| /info/login | READ | Abfrage der eigenen Login-Daten. | |
| /role | READ | Abfragen der Liste aller Benutzerrechte. | |
| WRITE | Vergeben und Entfernen von Benutzerrechten an/von Benutzerrollen. | ||
| /schema | READ | Wird momentan nicht benutzt. | |
| /tags | READ | Abfragen der Schlagwortliste. | |
| WRITE | Anlegen von Schlagwörtern. Modifizieren und Löschen der eigenen Schlagwörter. | ||
| /tags/all | WRITE | Modifieren und Löschen ALLER Schlagwörter | |
| /template | READ | Abfragen von Vorlagen, sowohl in der Vorlagenliste als auch Vorlagendetails. 'Benutzerspezifische' Vorlagen anderer Benutzer werden nicht angezeigt. | |
| WRITE | Anlegen von Vorlagen. Modifizieren und Löschen eigener Vorlagen. Löschen funktioniert nur, solange sie nicht benutzt werden. | ||
| /template/all | READ | Abfragen ALLER Vorlagen, inklusive benutzerspezifischer Vorlagen anderer Benutzer. | |
| WRITE | Modifizieren und Löschen ALLER Vorlagen. Löschen nur, solange sie nicht benutzt werden. | ||
| /template/job | READ | Abfragen der Export-Jobs, sowohl der Liste als auch Detailansicht. | |
| WRITE | Anlegen von Export-Jobs. Modifizieren und Löschen eigener Export-Jobs. | ||
| /template/job/activation | WRITE | Aktivieren und Deaktivieren eigener Export-Jobs. | |
| /template/job/activation/all | WRITE | Aktivieren und Deaktivieren ALLER Export-Jobs. | |
| /template/job/all | READ | Abfragen ALLER Export-Jobs. INFO: Momentan redundant, da es keine privaten Jobs gibt. | |
| WRITE | Modifizieren und Löschen ALLER Export-Jobs. | ||
| /template/job/health | WRITE | Setzen des 'HealthCheck' Flags für Export-Jobs, d.h. ob sie im Admin-HealthCheck auftauchen oder nicht. | |
| /template/module | READ | Abfragen von Bausteinen. Private Bausteine anderer Benutzer werden nicht in der Liste angezeigt. | |
| WRITE | Anlegen von Bausteinen. Modifizieren und Löschen eigener Bausteine. Löschen funktioniert nur, solange sie nicht in einer Vorlage benutzt werden. | ||
| /template/module/all | READ | Abfragen ALLER Bausteine, inklusive privater Bausteine anderer Benutzer. | |
| WRITE | Modifizieren und Löschen ALLER Bausteine. Löschen funktioniert nur, solange sie nicht in einer Vorlage benutzt ewrden. | ||
| /unit | READ | Abfragen der Einheitenliste sowie der Einheiten-Mappings in den einzelnen Datenquellen. | |
| WRITE | Anlegen von neuen Einheitenmappings. |