# Single Sign-On (SSO) configureren

> Met Single Sign-On bereiken mensen Tidal Control met de bestaande login van je organisatie via OIDC. Instellen voor Microsoft Entra ID en andere providers.

Source: https://tidalcontrol.com/nl/docs/getting-started/sso-setup

Met Single Sign-On bereiken mensen Tidal Control met de bestaande login van je organisatie, via OIDC. Je configureert een applicatie in je identity provider, geeft de credentials aan Tidal, en wij maken de koppeling aan onze kant af. Dit artikel behandelt alle vijf ondersteunde providers.

## Ondersteunde identity providers

Tidal Control ondersteunt SSO via het OIDC (OpenID Connect) protocol met:

- **Microsoft Azure/Entra ID** - Voor Microsoft 365 organisaties
- **Google Workspace** - Voor Google-gebaseerde organisaties  
- **Okta** - Enterprise identity management platform
- **Auth0** - Flexibele authenticatie service
- **OneLogin** - Cloud-based identity provider
- **Andere OIDC providers** - Elk systeem dat OIDC ondersteunt

## Voorbereiding

Voordat je iets in je identity provider aanraakt, verzamel je de redirect-gegevens uit Tidal en controleer je of je de rechten hebt om een applicatie te registreren.

### Benodigde informatie

Een deel hiervan komt van Tidal, een deel van je identity provider zodra je hem daar hebt geconfigureerd.

**Van Tidal Control nodig:**
- **Tenant naam** - Te vinden in je login URL: `https://portal.tidalcontrol.com/{TENANT_NAAM}/`
- **Redirect URI** - Wordt automatisch: `https://auth.tidalcontrol.com/realms/{TENANT_NAAM}/broker/oidc/endpoint`

**Van jouw identity provider nodig (na configuratie):**
- **Client ID** - Unieke identifier voor de Tidal applicatie
- **Client Secret** - Geheime sleutel voor authenticatie
- **Tenant/Domain ID** - Jouw organisatie identifier (naam verschilt per provider)

### Benodigde rechten

Je hebt beheerrechten nodig in je identity provider om:
- Nieuwe applicatie registraties aan te maken
- Client secrets te genereren
- Gebruikersgroepen toe te wijzen

## Microsoft Azure/Entra ID

In Entra ID registreer je een applicatie en houd je drie waarden over: de tenant ID, de client ID en een client secret.

### Tenant ID vinden

De snelste weg is via het Azure Portal zelf; het OpenID-endpoint werkt ook als je geen portaltoegang hebt.

**Via Azure Portal:**
1. **Log in** op [Azure Portal](https://portal.azure.com)
2. **Navigeer** naar "Microsoft Entra ID" (voorheen Azure Active Directory)
3. **Kopieer Tenant ID** van de overzichtspagina

**Via OpenID endpoint:**
1. **Open browser** naar: `https://login.microsoftonline.com/{JOUW_DOMEIN}/v2.0/.well-known/openid-configuration`
2. **Zoek "issuer" veld** in JSON response - dit bevat je Tenant ID

### App registratie aanmaken

1. **Ga naar "App registrations"** in Entra ID menu
2. **Klik "New registration"** bovenaan

3. **Configureer basisinformatie:**
   - **Name:** `Tidal Control - SSO`
   - **Supported account types:** "Accounts in this organizational directory only (Single tenant)"
   - **Redirect URI:** 
     - Platform: `Web`
     - URI: `https://auth.tidalcontrol.com/realms/{TENANT_NAAM}/broker/oidc/endpoint`

4. **Klik "Register"** om app aan te maken

### Client secret genereren

1. **Open je nieuwe app registratie**
2. **Kopieer deze waarden** van overzichtspagina:
   - Application (client) ID
   - Directory (tenant) ID

3. **Ga naar "Certificates & secrets"** in linkermenu
4. **Klik "New client secret"**
5. **Configureer secret:**
   - **Description:** `Tidal Control SSO`
   - **Expires:** Kies vervaldatum (bijvoorbeeld 24 maanden)
6. **Klik "Add"**
7. **Kopieer secret value** onmiddellijk (wordt maar één keer getoond!)

> **warning:**

**Belangrijk:** Bewaar het client secret veilig. Je kunt deze waarde later niet meer ophalen. Moet je een nieuwe aanmaken als je hem kwijt bent.

### API permissions configureren (optioneel)

Voor basis SSO zijn geen extra permissions nodig. Voor geavanceerde integratie:

1. **Ga naar "API permissions"**
2. **Klik "Add a permission"**
3. **Selecteer "Microsoft Graph"**
4. **Kies "Delegated permissions"**
5. **Selecteer minimaal:**
   - `openid` - Voor authenticatie
   - `profile` - Voor gebruikersgegevens
   - `email` - Voor email adres

## Google Workspace

Google vereist een ingesteld consentscherm voordat je de OAuth-client zelf kunt aanmaken.

### OAuth 2.0 Client aanmaken

1. **Ga naar** [Google Cloud Console](https://console.cloud.google.com)
2. **Selecteer project** of maak nieuwe aan
3. **Navigeer** naar "APIs & Services" → "Credentials"

### OAuth consent screen configureren

1. **Klik "Configure consent screen"** indien nog niet gedaan
2. **Kies "Internal"** voor alleen je organisatie gebruikers
3. **Vul app informatie in:**
   - **App name:** `Tidal Control`
   - **User support email:** Je support email
   - **Authorized domains:** `tidalcontrol.com`
4. **Voeg scopes toe:**
   - `openid`
   - `email` 
   - `profile`
5. **Save and continue**

### Client ID aanmaken

1. **Klik "Create credentials"** → "OAuth client ID"
2. **Configureer client:**
   - **Application type:** `Web application`
   - **Name:** `Tidal Control SSO`
   - **Authorized redirect URIs:** `https://auth.tidalcontrol.com/realms/{TENANT_NAAM}/broker/oidc/endpoint`
3. **Klik "Create"**
4. **Kopieer credentials:**
   - Client ID
   - Client secret

## Okta

Okta geeft je drie waarden om te kopiëren, niet twee: client ID, client secret, en je Okta-domein.

### Nieuwe applicatie toevoegen

1. **Log in** op je Okta Admin Console
2. **Ga naar** "Applications" → "Applications"
3. **Klik "Create App Integration"**

### OIDC configureren

1. **Selecteer integratie type:**
   - **Sign-in method:** `OIDC - OpenID Connect`
   - **Application type:** `Web Application`
2. **Klik "Next"**

3. **Configureer applicatie settings:**
   - **App name:** `Tidal Control`
   - **Sign-in redirect URIs:** `https://auth.tidalcontrol.com/realms/{TENANT_NAAM}/broker/oidc/endpoint`
   - **Sign-out redirect URIs:** `https://portal.tidalcontrol.com/{TENANT_NAAM}/`

4. **Assignments configureren:**
   - **Controlled access:** Kies welke groepen toegang krijgen
   - Of selecteer "Allow everyone in your organization to access"

5. **Klik "Save"**

### Credentials ophalen

1. **Open je nieuwe applicatie**
2. **Ga naar "General" tab**
3. **Kopieer uit "Client Credentials" sectie:**
   - Client ID
   - Client secret
4. **Kopieer Okta domain** van je account URL (bijvoorbeeld: `dev-12345.okta.com`)

## Auth0

Auth0 geeft je ook een domeinwaarde, en laat je vanuit hetzelfde dashboard beheren wie toegang krijgt.

### Applicatie aanmaken

1. **Log in** op [Auth0 Dashboard](https://manage.auth0.com)
2. **Ga naar** "Applications" → "Applications"
3. **Klik "Create Application"**

### Applicatie configureren

1. **Configureer basis settings:**
   - **Name:** `Tidal Control`
   - **Application type:** `Regular Web Applications`
2. **Klik "Create"**

3. **Ga naar "Settings" tab**
4. **Configureer URLs:**
   - **Allowed Callback URLs:** `https://auth.tidalcontrol.com/realms/{TENANT_NAAM}/broker/oidc/endpoint`
   - **Allowed Logout URLs:** `https://portal.tidalcontrol.com/{TENANT_NAAM}/`
   - **Allowed Web Origins:** `https://portal.tidalcontrol.com`

5. **Kopieer credentials:**
   - Domain (bijvoorbeeld: `your-tenant.auth0.com`)
   - Client ID
   - Client Secret

6. **Klik "Save Changes"**

### Gebruikers toewijzen

1. **Ga naar** "User Management" → "Users"
2. **Voeg gebruikers toe** die toegang moeten krijgen
3. **Of configureer** "Connections" voor automatische user provisioning

## OneLogin

De setup van OneLogin start vanuit een vooraf ingerichte catalogus-app in plaats van een lege applicatie.

### App toevoegen vanuit catalog

1. **Log in** op OneLogin Admin Portal
2. **Ga naar** "Applications" → "Applications"
3. **Klik "Add App"**
4. **Zoek** "OpenID Connect" in catalog
5. **Selecteer** "OpenId Connect (OIDC)" app

### OIDC app configureren

1. **Configureer display naam:**
   - **Display Name:** `Tidal Control`
   - **Klik "Save"**

2. **Ga naar "Configuration" tab**
3. **Vul redirect URI in:**
   - **Redirect URI:** `https://auth.tidalcontrol.com/realms/{TENANT_NAAM}/broker/oidc/endpoint`
   - **Klik "Save"**

4. **Ga naar "SSO" tab**
5. **Kopieer credentials:**
   - Client ID
   - Client Secret
   - Issuer URL (gebruik als Domain/Tenant ID)

### Gebruikers toegang geven

1. **Ga naar "Users" tab** in de app
2. **Klik "Add users"**
3. **Selecteer gebruikers** of groepen
4. **Klik "Save"**

## Configuratie naar Tidal sturen

Tidal maakt de koppeling aan onze kant af, dus de laatste stap is het veilig overdragen van de credentials en wachten op activatie.

### Veilig delen van credentials

Na configuratie in je identity provider, stuur de volgende gegevens **veilig** naar Tidal Control:

**Verzamel deze informatie:**
```
Identity Provider: [Azure/Google/Okta/Auth0/OneLogin]
Tenant/Domain: [Je organisatie domein/tenant ID]
Client ID: [Applicatie/Client ID]
Client Secret: [Geheime sleutel]
```

**Veilige verzendmethoden:**
- **Versleuteld ZIP bestand** met wachtwoord (stuur wachtwoord apart)
- **Wachtwoordmanager** met veilige deling functie (1Password, Bitwarden)
- **Beveiligde berichtendienst** (Signal, encrypted email)
- **Tijdelijke secret sharing** service (bijvoorbeeld PrivateBin met vervaldatum)

> **danger:**

**Nooit doen:**
- Client secrets via gewone email sturen
- Credentials in chat applicaties plaatsen
- Screenshots maken van secrets
- Secrets in tickets of documentatie opslaan

### Contact met Tidal Support

**Email naar:** support@tidalcontrol.com

**Onderwerp:** SSO Configuratie voor [TENANT_NAAM]

**Email inhoud:**
```
Beste Tidal Support,

Wij willen graag SSO activeren voor onze Tidal omgeving.

Tenant naam: [TENANT_NAAM]
Identity Provider: [PROVIDER_NAAM]

De configuratie details stuur ik via [METHODE].

Met vriendelijke groet,
[Naam]
```

### Activatie tijdlijn

Tidal configureert de koppeling binnen één werkdag, en daarna test je hem voordat hij live gaat voor iedereen.

**Na ontvangst credentials:**
1. **Tidal configureert** SSO koppeling (binnen 1 werkdag)
2. **Test account** wordt aangemaakt voor verificatie
3. **Je test de koppeling** met test gebruiker
4. **Na succesvolle test** wordt SSO geactiveerd voor alle gebruikers
5. **Bestaande gebruikers** kunnen inloggen met SSO

## SSO gebruiken na activatie

Zodra SSO live is, loggen gebruikers in via je identity provider in plaats van met een Tidal-wachtwoord.

### Eerste keer inloggen

Het account van een nieuwe gebruiker wordt automatisch aangemaakt bij de eerste keer inloggen via SSO.

**Voor nieuwe gebruikers:**
1. **Ga naar** `https://portal.tidalcontrol.com/{TENANT_NAAM}/`
2. **Klik "Sign in with SSO"** knop
3. **Log in** met je organisatie account
4. **Account wordt automatisch aangemaakt** in Tidal

**Voor bestaande gebruikers:**
1. **Gebruik dezelfde email** als in Tidal account
2. **SSO koppelt automatisch** aan bestaand account
3. **Toegangsrechten blijven behouden**

## Multi-factor authenticatie (MFA)

Met SSO ingericht configureer je MFA in je identity provider en niet in Tidal, zodat één beleid alle applicaties dekt.

### MFA via identity provider

**Best practice:** Configureer MFA in je identity provider, niet in Tidal:
- **Centrale MFA policy** voor alle applicaties
- **Conditional access** op basis van locatie/device
- **Compliance rapportage** vanuit één systeem

**MFA configuratie per provider:**
- **Azure:** Conditional Access Policies
- **Google:** 2-Step Verification enforcement
- **Okta:** Authentication Policies
- **Auth0:** Multi-factor Authentication rules
- **OneLogin:** Authentication Factors policies

## Gebruikerssynchronisatie (optioneel)

SSO regelt authenticatie maar niet het aanmaken van accounts. SCIM-provisioning houdt de gebruikerslijst automatisch bij.

### Automatische provisioning

Voor grote organisaties kan automatische gebruikerssynchronisatie via SCIM:
- **Automatisch aanmaken** nieuwe gebruikers
- **Rol toewijzing** op basis van groepen
- **Deactivatie** bij vertrek medewerker

**SCIM ondersteuning** verschilt per provider:
- Azure/Entra ID ✅
- Okta ✅
- OneLogin ✅
- Google Workspace ⚠️ (via third-party)
- Auth0 ⚠️ (custom implementation)

Contact support@tidalcontrol.com voor SCIM configuratie.

## Waarom SSO gebruiken?

Single Sign-On biedt belangrijke voordelen voor compliance organisaties:

- **Centrale toegangscontrole** - Beheer alle gebruikerstoegang vanuit één systeem
- **Automatische deactivatie** - Wanneer medewerkers vertrekken, wordt toegang overal ingetrokken
- **Gebruikersgemak** - Teams hoeven geen apart wachtwoord voor Tidal te onthouden
- **Security policies afdwingen** - Multi-factor authenticatie (MFA) en wachtwoordbeleid via je identity provider

## Troubleshooting

Drie storingen verklaren bijna elk SSO-probleem: een redirect-loop, een access denied na een geslaagde login, en een verlopen client secret.

### Login redirect loop

**Symptomen:** Browser blijft redirecten tussen Tidal en identity provider

**Oplossingen:**
1. **Controleer redirect URI** - Moet exact overeenkomen
2. **Clear browser cookies** voor beide domeinen
3. **Test incognito/private** browsing mode
4. **Verifieer tenant naam** in URI configuratie

### "Access Denied" na succesvolle authenticatie

Dit betekent bijna altijd dat de gebruiker of zijn groep niet daadwerkelijk is toegewezen aan de applicatie in je identity provider.

**Mogelijke oorzaken:**
- Gebruiker niet toegewezen aan applicatie in identity provider
- Groep membership niet correct geconfigureerd
- Email adres komt niet overeen met Tidal account

**Verificatie stappen:**
1. **Check user assignment** in identity provider
2. **Vergelijk email adressen** tussen systemen
3. **Test met nieuwe test gebruiker**

### Client secret verlopen

**Symptomen:** SSO stopt plotseling met werken voor alle gebruikers

**Oplossing:**
1. **Genereer nieuw secret** in identity provider
2. **Stuur naar Tidal Support** via veilige methode
3. **Tijdelijke workaround:** Gebruikers kunnen wachtwoord reset aanvragen

Voor verdere ondersteuning, email support@tidalcontrol.com met:
- Tenant naam
- Identity provider type
- Exacte foutmelding
- Browser console errors (F12)
