Rollen & Berechtigungen
Benutzerrollen definieren Zugriffslevel und Fähigkeiten innerhalb von mindzieStudio. Jedem Benutzer wird eine einzelne Rolle zugewiesen, die seine Berechtigungen auf der gesamten Plattform bestimmt.
Wenn Sie einen roleName-Wert an die API senden, verwenden Sie die exakten Zeichenfolgen, die in der Spalte API role name unten angegeben sind.
Verfügbare Rollen
| Rolle (Anzeige) | API role name | Umfang | Beschreibung |
|---|---|---|---|
| Server Administrator | TenantAdmin |
System | Höchstes Zugriffslevel. Voller Zugriff auf alle Mandanten und den Server. |
| Administrator | Administrator |
Mandant | Volle administrative Befugnis innerhalb eines Mandanten. |
| IT Admin | ITAdmin |
Mandant | Integrationen, Verbindungen und globale API-Schlüssel. |
| Analyst | Analyst |
Projekt | Analysen, Dashboards und Untersuchungen erstellen und verwalten. |
| Developer | Developer |
Projekt | Integrationen entwickeln, Aktionen und Apps verwalten, Ausnahme-Details anzeigen. |
| User | User |
Nur Lesen | Dashboards und Analysen anzeigen; Inhalte nicht ändern. |
Hinweis zur Benennung. Die API-Rollenbezeichnung
TenantAdminist die Rolle mit dem höchsten Privileg in mindzieStudio — trotz des Namens umfasst sie serverweiten Zugriff (Verwaltung aller Mandanten, aller Benutzer, Serveradministration). Um Verwirrung zu vermeiden, wird sie auf dieser Seite auch als Server Administrator bezeichnet. Beim Zuweisen der Rolle über die API senden SieTenantAdmin.
Rollendetails
Server Administrator (TenantAdmin)
Das höchste Privilegienlevel in mindzieStudio.
Fähigkeiten:
- Zugriff und Verwaltung aller Mandanten und Projekte
- Mandanten erstellen, ändern und löschen
- Verwaltung aller Benutzer im System
- Zugriff auf den Bereich der Serveradministration (Server-Speicher, Sicherungen, Ausführungen)
- Rollen anderer übernehmen für Support und Tests
- Globale API-Schlüssel erstellen
- Alle Fähigkeiten aller anderen Rollen
Anwendungsfälle:
- Plattformbesitzer
- Vertrauenswürdige Betreiber, die die Bereitstellung verwalten
Administrator
Volle administrative Befugnis innerhalb eines Mandanten, ohne serverweiten Zugriff.
Fähigkeiten:
- Benutzer im Mandanten verwalten — erstellen, bearbeiten, deaktivieren, Passwörter zurücksetzen
- Rollen innerhalb des Mandanten zuweisen
- Analysevorlagen verwalten
- Alle Projekte, Dashboards, Datensätze, Untersuchungen und Apps im Mandanten verwalten
- Mandanten-API-Schlüssel erstellen
- Keine Mandanten erstellen oder löschen
- Kein Zugriff auf den Bereich der Serveradministration
Anwendungsfälle:
- Abteilungsleiter
- Kundenadministratoren, die ihren eigenen Mandanten verwalten
IT Admin (ITAdmin)
Technischer Konfigurationszugang mit Schwerpunkt auf Integrationen und Dateninfrastruktur.
Fähigkeiten:
- Integrationen, Verbindungen und Datenquellen konfigurieren
- Daten- und ETL-Prozesse verwalten
- Globale API-Schlüssel erstellen
- Begrenzte Autorisierungsrechte — erstellt keine Dashboards oder Analysen
Anwendungsfälle:
- IT-Personal, das Quellsysteme verbindet
- Betreiber, die Zugangsdaten und ETL verwalten
Analyst
Standard-Benutzerrolle für Prozess-Mining-Analysen.
Fähigkeiten:
- Untersuchungen und Notebooks erstellen und verwalten
- Datensätze hochladen und konfigurieren
- Dashboards und Berichte erstellen
- Notebooks und Blöcke ausführen
- Aktionen und Apps verwalten
- Analyseergebnisse exportieren
Anwendungsfälle:
- Prozessanalysten
- Data Scientists
- Business-Analysten
Developer
Zugriff auf Entwicklungstools und APIs.
Fähigkeiten:
- Nutzung von Entwicklungstools und Plattform-APIs
- Eigene Integrationen und Erweiterungen entwickeln
- Aktionen und Apps verwalten
- Ausnahme-Details zur Fehlerbehebung anzeigen
- Analysen und Dashboards erstellen und verwalten
Anwendungsfälle:
- Techniker, die Integrationen bauen
- Automatisierungs- und API-Nutzer
User
Nur-Lese-Zugriff zum Konsumieren von Dashboards und Analysen.
Fähigkeiten:
- Geteilte Dashboards anzeigen
- Veröffentliche Analysen anzeigen
- Benachrichtigungen ansehen
- Sichtbare Daten exportieren
- Keine inhaltlichen Änderungen möglich
Anwendungsfälle:
- Führungskräfte
- Stakeholder
- Externe Prüfer
Rollen-Hierarchie
Server Administrator (TenantAdmin)
|
+-- Administrator
|
+-- Analyst, Developer, IT Admin
|
+-- User
TenantAdmin hat den breitesten Zugriff (alle Mandanten, Serveradministration). Administrator hat volle Befugnisse innerhalb seines Mandanten. Die übrigen Rollen sind auf Projektebene oder nur lesend beschränkt.
Service-Konten
Service-Konten sind spezielle Benutzerkonten, die für API-Integrationen und automatisierte Workflows vorgesehen sind.
Anforderungen
- Nur die Rollen Server Administrator (
TenantAdmin) und Administrator sind berechtigt - Service-Konten müssen einen Heimat-Mandanten zugewiesen bekommen
- Service-Konten können sich über die API ohne Benutzer-Login authentifizieren
Konfiguration
Um einen Benutzer zu einem Service-Konto zu befördern:
{
"isServiceAccount": true,
"homeTenantId": "12345678-1234-1234-1234-123456789012"
}
Um ihn wieder zum normalen Benutzer herabzustufen:
{
"isServiceAccount": false
}
Die homeTenantId wird beim Herabstufen automatisch gelöscht.
Anwendungsfälle
- CI/CD-Pipeline-Integrationen
- Automatisierte Datenimport-Skripte
- Geplante Berichtserstellung
- ETL-Prozesse
- Überwachungs- und Alarmsysteme
Rollenzuweisung
Beim Erstellen von Benutzern
Geben Sie die Rolle in der Erstellungsanfrage an:
{
"email": "john.smith@example.com",
"displayName": "John Smith",
"roleName": "Analyst"
}
Beim Aktualisieren von Benutzern
Ändern Sie die Rolle mit einer Aktualisierungsanfrage:
{
"roleName": "TenantAdmin"
}
Senden Sie den API-Rollennamen exakt so, wie in der obigen Tabelle aufgeführt (TenantAdmin, Administrator, ITAdmin, Analyst, Developer oder User).
API-Schlüsseltypen und Rollen
| API-Schlüsseltyp | Berechtigte Erstellerrollen | Zugriffsbereich |
|---|---|---|
| Globaler API-Schlüssel | Server Administrator (TenantAdmin), IT Admin (ITAdmin) |
Alle Mandanten, alle Endpunkte |
| Mandanten-API-Schlüssel | Server Administrator (TenantAdmin), Administrator, Developer |
Nur einzelner Mandant |
Endpunkte für globale API-Schlüssel
Nur globale API-Schlüssel können auf Folgendes zugreifen:
/api/user- Globale Benutzerverwaltung/api/tenant- Mandantenverwaltung- Mandantenübergreifende Vorgänge
Endpunkte für Mandanten-API-Schlüssel
Mandanten-API-Schlüssel können auf Folgendes zugreifen:
/api/tenant/{tenantId}/user- Mandantenbenutzerverwaltung/api/{tenantId}/project- Projektvorgänge/api/{tenantId}/dataset- Datensatzvorgänge- Alle weiteren mandantenspezifischen Endpunkte
Best Practices
Prinzip der minimalen Rechte
Weisen Sie jedem Benutzer die jeweils minimal erforderliche Rolle für seine Aufgaben zu.
Führungskraft, die Dashboards ansieht -> User
Analyst, der Untersuchungen durchführt -> Analyst
Teamleiter, der einen Mandanten verwaltet -> Administrator
Plattformbetreiber, der alle Mandanten verwaltet -> Server Administrator (TenantAdmin)
Sicherheit von Service-Konten
- Erstellen Sie dedizierte Service-Konten für jede Integration
- Verwenden Sie beschreibende Anzeigenamen (z. B. "CI/CD Pipeline Service")
- Rotieren Sie API-Schlüssel regelmäßig
- Überwachen Sie Aktivitäten von Service-Konten
Rollenwechsel
- Bei Beförderung sicherstellen, dass der Benutzer die neuen Verantwortlichkeiten versteht
- Bei Herabstufung sicherstellen, dass der Benutzer seine Arbeit abschließen kann
- Änderungen dokumentieren für Audit-Zwecke
Deaktivieren vs. Löschen
- Deaktivieren von Benutzern bevorzugen, um Audit-Trails zu erhalten
- Deaktivierte Benutzer können sich nicht anmelden, ihre Historie bleibt erhalten
- Löschen nur bei zwingender Einhaltung von Datenschutzanforderungen
Implementierungsbeispiele
Python
import requests
BASE_URL = 'https://your-mindzie-instance.com'
class RoleManager:
def __init__(self, global_api_key):
self.headers = {
'Authorization': f'Bearer {global_api_key}',
'Content-Type': 'application/json'
}
def get_users_by_role(self, role_name):
"""Alle Benutzer mit einer bestimmten Rolle abrufen."""
url = f'{BASE_URL}/api/user'
params = {'role': role_name, 'pageSize': 1000}
response = requests.get(url, headers=self.headers, params=params)
response.raise_for_status()
return response.json()
def promote_to_service_account(self, user_id, home_tenant_id):
"""Einen Benutzer zum Service-Konto befördern."""
url = f'{BASE_URL}/api/user/{user_id}'
payload = {
'isServiceAccount': True,
'homeTenantId': home_tenant_id
}
response = requests.put(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def demote_from_service_account(self, user_id):
"""Ein Service-Konto wieder zum regulären Benutzer herabstufen."""
url = f'{BASE_URL}/api/user/{user_id}'
payload = {'isServiceAccount': False}
response = requests.put(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def change_role(self, user_id, new_role):
"""Die Rolle eines Benutzers ändern. API-Rollennamen verwenden: TenantAdmin, Administrator, ITAdmin, Analyst, Developer, User."""
url = f'{BASE_URL}/api/user/{user_id}'
payload = {'roleName': new_role}
response = requests.put(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def disable_user(self, user_id):
"""Einen Benutzer deaktivieren."""
url = f'{BASE_URL}/api/user/{user_id}'
payload = {'disabled': True}
response = requests.put(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
# Nutzung
manager = RoleManager('your-global-api-key')
# Alle Server Administratoren (TenantAdmin-Rolle) auflisten
server_admins = manager.get_users_by_role('TenantAdmin')
print(f"Das System hat {server_admins['totalCount']} Server-Administratoren")
# Benutzer zum Service-Konto befördern
manager.promote_to_service_account(
user_id='a1b2c3d4-e5f6-7890-abcd-ef1234567890',
home_tenant_id='12345678-1234-1234-1234-123456789012'
)
# Einen Analysten zum Server Administrator befördern
manager.change_role(
user_id='a1b2c3d4-e5f6-7890-abcd-ef1234567890',
new_role='TenantAdmin'
)
# Einen Benutzer deaktivieren statt löschen
manager.disable_user('departing-user-id')
JavaScript
class RoleManager {
constructor(globalApiKey) {
this.headers = {
'Authorization': `Bearer ${globalApiKey}`,
'Content-Type': 'application/json'
};
}
async getUsersByRole(roleName) {
const url = `${BASE_URL}/api/user?role=${roleName}&pageSize=1000`;
const response = await fetch(url, { headers: this.headers });
return await response.json();
}
async promoteToServiceAccount(userId, homeTenantId) {
const url = `${BASE_URL}/api/user/${userId}`;
const response = await fetch(url, {
method: 'PUT',
headers: this.headers,
body: JSON.stringify({
isServiceAccount: true,
homeTenantId
})
});
return await response.json();
}
async changeRole(userId, newRole) {
// API-Rollennamen verwenden: TenantAdmin, Administrator, ITAdmin, Analyst, Developer, User
const url = `${BASE_URL}/api/user/${userId}`;
const response = await fetch(url, {
method: 'PUT',
headers: this.headers,
body: JSON.stringify({ roleName: newRole })
});
return await response.json();
}
}
// Nutzung
const manager = new RoleManager('your-global-api-key');
// Alle Analysten abrufen
const analysts = await manager.getUsersByRole('Analyst');
console.log(`${analysts.totalCount} Analysten im System`);
// Zum Server Administrator befördern
await manager.changeRole('user-id', 'TenantAdmin');