Rollen & Rechten
Gebruikersrollen definiëren toegangs- en bevoegdheidsniveaus binnen mindzieStudio. Elke gebruiker krijgt een enkele rol toegewezen die hun rechten op het platform bepaalt.
Wanneer je een roleName waarde naar de API stuurt, gebruik dan precies de strings zoals weergegeven in de kolom API rolnaam hieronder.
Beschikbare Rollen
| Rol (weergave) | API rolnaam | Scope | Beschrijving |
|---|---|---|---|
| Server Administrator | TenantAdmin |
Systeem | Hoogste toegangsniveau. Volledige toegang over alle tenants en de server. |
| Administrator | Administrator |
Tenant | Volledige administratieve bevoegdheid binnen een tenant. |
| IT Admin | ITAdmin |
Tenant | Integraties, verbindingen en globale API-sleutels. |
| Analyst | Analyst |
Project | Aanmaken en beheren van analyses, dashboards en onderzoeken. |
| Developer | Developer |
Project | Bouwen van integraties, beheren van acties en apps, bekijken van foutdetails. |
| User | User |
Alleen-lezen | Dashboards en analyses bekijken; kan inhoud niet aanpassen. |
Opmerking over benaming. De API rolnaam
TenantAdminis de rol met de hoogste privilege binnen mindzieStudio — ondanks de naam heeft deze rol server-brede toegang (beheer van alle tenants, beheer van alle gebruikers, serverbeheer). Voor de duidelijkheid verwijst deze pagina ook naar deze rol als Server Administrator. Bij het toewijzen van de rol via de API, gebruikTenantAdmin.
Rol Details
Server Administrator (TenantAdmin)
Het hoogste privilege niveau binnen mindzieStudio.
Mogelijkheden:
- Toegang en beheer van alle tenants en projecten
- Aanmaken, wijzigen en verwijderen van tenants
- Beheren van alle gebruikers binnen het systeem
- Openen van het Server Administrationgebied (servergeheugen, back-ups, uitvoering)
- Rollen imiteren voor ondersteuning en testen
- Aanmaken van Global API keys
- Alle mogelijkheden van elke andere rol
Use cases:
- Platformeigenaren
- Betrouwbare operators die de deployment onderhouden
Administrator
Volledige administratieve bevoegdheid binnen een tenant, zonder server-brede toegang.
Mogelijkheden:
- Beheren van gebruikers binnen de tenant — aanmaken, wijzigen, deactiveren, wachtwoorden resetten
- Toewijzen van rollen binnen de tenant
- Beheren van analysestemplates
- Beheren van alle projecten, dashboards, datasets, onderzoeken en apps binnen de tenant
- Aanmaken van Tenant API keys
- Kan geen tenants aanmaken of verwijderen
- Kan niet bij het Server Administrationgebied
Use cases:
- Afdelingshoofden
- Klantbeheerders die hun eigen tenant beheren
IT Admin (ITAdmin)
Technische configuratietoegang gericht op integraties en datainfrastructuur.
Mogelijkheden:
- Configureren van integraties, verbindingen en datasources
- Beheren van data en ETL-processen
- Aanmaken van Global API keys
- Beperkte mogelijkheden om inhoud te maken — bouwt geen dashboards of analyses
Use cases:
- IT-medewerkers die bronsystemen koppelen
- Operators die credentials en ETL beheren
Analyst
Standaard gebruikersrol voor process mining analyse.
Mogelijkheden:
- Aanmaken en beheren van onderzoeken en notitieboeken
- Uploaden en configureren van datasets
- Aanmaken van dashboards en rapporten
- Uitvoeren van notitieboeken en blokken
- Beheren van acties en apps
- Exporteren van analyseresultaten
Use cases:
- Process analisten
- Datawetenschappers
- Business analisten
Developer
Toegang tot ontwikkeltools en API’s.
Mogelijkheden:
- Gebruik van ontwikkeltools en platform API’s
- Bouwen van maatwerkintegraties en uitbreidingen
- Beheren van acties en apps
- Bekijken van foutdetails voor debugging
- Aanmaken en beheren van analyses en dashboards
Use cases:
- Engineers die integraties bouwen
- Automatisering en API-consumenten
User
Alleen-lezen toegang voor het bekijken van dashboards en analyses.
Mogelijkheden:
- Bekijken van gedeelde dashboards
- Bekijken van gepubliceerde analyses
- Bekijken van meldingen
- Exporteren van zichtbare data
- Kan geen inhoud aanpassen
Use cases:
- Executives
- Stakeholders
- Externe beoordelaars
Rolschema
Server Administrator (TenantAdmin)
|
+-- Administrator
|
+-- Analyst, Developer, IT Admin
|
+-- User
TenantAdmin heeft de breedste toegang (alle tenants, serverbeheer). Administrator heeft volledige autoriteit binnen zijn tenant. De overige rollen zijn beperkt tot projectniveau of alleen-lezen werk.
Service Accounts
Service-accounts zijn speciale gebruikersaccounts bedoeld voor API-integraties en geautomatiseerde workflows.
Vereisten
- Alleen Server Administrator (
TenantAdmin) en Administrator rollen komen in aanmerking - Service-accounts moeten een home tenant toegewezen krijgen
- Service-accounts kunnen authenticeren via de API zonder gebruikersinlog
Configuratie
Om een gebruiker te promoveren tot service-account:
{
"isServiceAccount": true,
"homeTenantId": "12345678-1234-1234-1234-123456789012"
}
Om te degraderen naar een reguliere gebruiker:
{
"isServiceAccount": false
}
De homeTenantId wordt automatisch gewist bij degraderen.
Use Cases
- CI/CD-pijplijn integraties
- Geautomatiseerde data-import scripts
- Geplande rapportagegeneratie
- ETL-processen
- Monitoring- en alarmsystemen
Roltoewijzing
Bij het aanmaken van gebruikers
Specificeer de rol in het aanmaakverzoek:
{
"email": "john.smith@example.com",
"displayName": "John Smith",
"roleName": "Analyst"
}
Bij het bijwerken van gebruikers
Wijzig de rol met een updateverzoek:
{
"roleName": "TenantAdmin"
}
Stuur de API rolnaam exact zoals vermeld in de bovenstaande tabel (TenantAdmin, Administrator, ITAdmin, Analyst, Developer of User).
API Sleuteltypes en Rollen
| API Sleuteltype | Geschikte Maken Rollen | Toegangscope |
|---|---|---|
| Global API Key | Server Administrator (TenantAdmin), IT Admin (ITAdmin) |
Alle tenants, alle endpoints |
| Tenant API Key | Server Administrator (TenantAdmin), Administrator, Developer |
Enkel één tenant |
Global API Key Endpoints
Alleen Global API keys kunnen toegang krijgen tot:
/api/user- Globaal gebruikersbeheer/api/tenant- Tenantbeheer- Cross-tenant operaties
Tenant API Key Endpoints
Tenant API keys hebben toegang tot:
/api/tenant/{tenantId}/user- Tenant gebruikersbeheer/api/{tenantId}/project- Project operaties/api/{tenantId}/dataset- Dataset operaties- Alle andere tenant-gescopeerde endpoints
Best Practices
Least Privilege
Ken de minimale benodigde rol toe voor elke functie van de gebruiker.
Executive die dashboards bekijkt -> User
Analist die onderzoeken uitvoert -> Analyst
Teamleider die een tenant beheert -> Administrator
Platformoperator alle tenants beheer -> Server Administrator (TenantAdmin)
Beveiliging Service Accounts
- Maak aparte service-accounts voor elke integratie
- Gebruik duidelijke weergavenamen (bijv. "CI/CD Pipeline Service")
- Roteer regelmatig API-sleutels
- Monitor activiteit van service-accounts
Rolveranderingen
- Controleer bij promotie of gebruikers hun nieuwe verantwoordelijkheden begrijpen
- Zorg bij degradatie dat gebruikers nog hun werk kunnen doen
- Documenteer rolwijzigingen voor audits
Uitschakelen vs Verwijderen
- Geef de voorkeur aan het uitschakelen van gebruikers om audit-trails te behouden
- Uitgeschakelde gebruikers kunnen niet inloggen maar hun historie blijft behouden
- Verwijder alleen indien vereist voor privacy
Implementatie Voorbeelden
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):
"""Haal alle gebruikers op met een specifieke rol."""
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):
"""Promoveer een gebruiker naar service-account."""
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):
"""Degradeer een service-account terug naar een reguliere gebruiker."""
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):
"""Wijzig de rol van een gebruiker. Gebruik API rolnamen: 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):
"""Schakel een gebruikersaccount uit."""
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()
# Gebruik
manager = RoleManager('your-global-api-key')
# Lijst alle server administrators (TenantAdmin rol)
server_admins = manager.get_users_by_role('TenantAdmin')
print(f"Er zijn {server_admins['totalCount']} server administrators in het systeem")
# Promote gebruiker naar service-account
manager.promote_to_service_account(
user_id='a1b2c3d4-e5f6-7890-abcd-ef1234567890',
home_tenant_id='12345678-1234-1234-1234-123456789012'
)
# Promote een Analyst naar Server Administrator
manager.change_role(
user_id='a1b2c3d4-e5f6-7890-abcd-ef1234567890',
new_role='TenantAdmin'
)
# Schakel een gebruiker uit in plaats van verwijderen
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) {
// Gebruik API rolnamen: 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();
}
}
// Gebruik
const manager = new RoleManager('your-global-api-key');
// Haal alle analysts op
const analysts = await manager.getUsersByRole('Analyst');
console.log(`${analysts.totalCount} analysts in het systeem`);
// Promote naar Server Administrator
await manager.changeRole('user-id', 'TenantAdmin');