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 TenantAdmin is 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, gebruik TenantAdmin.


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');