Single Sign-On (SSO / OIDC)
OpenID Connect configureren voor federatieve authenticatie
Overzicht
Anzen ondersteunt Single Sign-On via OpenID Connect (OIDC). Hiermee kunnen uw gebruikers authenticeren met een externe identiteitsprovider (IdP) zoals Microsoft Entra ID (Azure AD), Okta, Keycloak, Google Workspace of elke OIDC-compatibele provider.
SSO is beschikbaar op de Professional- en Enterprise-abonnementen. Na configuratie kunnen gebruikers inloggen via SSO vanuit zowel de Beheerinterface als het Serviceportaal. Configuratie wordt per tenant uitgevoerd door een superadmin via de beheerinterface onder Instellingen → SSO / OIDC.
Authenticatiestroom
Anzen gebruikt de Authorization Code-stroom (server-side):
- Gebruiker klikt op “Inloggen met SSO” op de inlogpagina.
- Anzen stuurt de browser van de gebruiker door naar het autorisatie-endpoint van uw IdP.
- De gebruiker authenticeert bij de IdP (wachtwoord, MFA, etc.).
- De IdP stuurt terug naar Anzen met een autorisatiecode.
- Anzen wisselt de code in voor tokens met de
client_idenclient_secret(server-side, vertrouwelijke client). - Anzen leest de identiteit van de gebruiker uit het ID-token / userinfo-endpoint en maakt of updatet het lokale gebruikersaccount.
IdP-configuratie
Bij het registreren van Anzen als client/applicatie in uw identiteitsprovider, gebruik de volgende instellingen:
| Instelling | Waarde |
|---|---|
| Applicatietype | Webapplicatie (vertrouwelijke client) |
| Root-URL / Home-URL | https://<uw-workspace>.anzenplatform.com |
| Redirect-URI’s / Callback-URL’s | https://<uw-workspace>.anzenplatform.com/management/oidc/callbackhttps://<uw-workspace>.anzenplatform.com/oidc/callback |
| Post-logout redirect-URI’s | https://<uw-workspace>.anzenplatform.com/management/loginhttps://<uw-workspace>.anzenplatform.com/login |
| Grant type / Auth flow | Authorization Code |
| Clientauthenticatie | Client secret (verzonden als POST body) |
| PKCE | Niet vereist (server-side vertrouwelijke client) |
| Scopes | openid email profile |
Vervang <uw-workspace> door uw werkelijke workspaceslug (bijv. acme).
Belangrijk: Twee redirect-URI’s zijn vereist omdat Anzen twee frontends heeft die SSO ondersteunen - de Beheerinterface (op /management/) en het Serviceportaal (op /). Beide moeten worden geregistreerd in uw identiteitsprovider.
Anzen-configuratie
In de Anzen-beheerinterface onder Instellingen → SSO / OIDC, vul in:
| Veld | Beschrijving |
|---|---|
| Providernaam | Weergavenaam op de inlogknop (bijv. “Microsoft”, “Okta”, “Keycloak”) |
| Client ID | De OAuth2 client ID van uw IdP |
| Client secret | Het OAuth2 client secret van uw IdP |
| Discovery-URL | Het OIDC discovery-endpoint, doorgaans eindigend op /.well-known/openid-configuration |
| Ingeschakeld | Schakelaar om SSO-inloggen voor uw workspace in/uit te schakelen |
Groepskoppeling
Anzen kan gebruikers automatisch aan groepen toewijzen op basis van hun IdP-claims. Dit wordt geconfigureerd in de SSO-instellingen onder Groepskoppeling.
Configuratie
| Veld | Beschrijving |
|---|---|
| Groepsclaim | De claim in het IdP-token die groeps- of rolnamen bevat. Voorbeelden: groups (Azure AD, Okta), realm_access.roles (Keycloak). Ondersteunt geneste paden met puntnotatie. |
| Standaardgroepen | Anzen-groepen die aan elke OIDC-gebruiker worden toegewezen bij inloggen, ongeacht hun IdP-groepen. |
| IdP-groepskoppelingen | Koppelt specifieke IdP-groeps-/rolnamen aan een of meer Anzen-groepen. Bijvoorbeeld, koppel de IdP-rol “admin” aan de Anzen-groepen “Beheerders” en “Auditors”. |
Hoe het werkt
- Bij elke SSO-inlog leest Anzen de groepsclaim uit het IdP-token (ID-token of userinfo).
- Standaardgroepen worden altijd aan de gebruiker toegewezen.
- Elke IdP-groepsnaam wordt vergeleken met de geconfigureerde koppelingen.
- Overeenkomende Anzen-groepen worden toegevoegd aan het groepslidmaatschap van de gebruiker.
- Groepssynchronisatie is additief - handmatig toegewezen groepen worden nooit verwijderd.
Veelgebruikte groepsclaims per provider
| Provider | Groepsclaim |
|---|---|
| Keycloak | realm_access.roles of groups |
| Microsoft Entra ID | groups (vereist “Group claims” in tokenconfiguratie) |
| Okta | groups (vereist groups claim in authorization server) |
| Google Workspace | Niet beschikbaar via standaard OIDC (gebruik standaardgroepen) |
| Auth0 | https://your-namespace/roles (aangepaste claim via Auth0 Actions) |
Voorbeelden van discovery-URL’s
| Provider | Discovery-URL |
|---|---|
| Microsoft Entra ID | https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration |
| Okta | https://<uw-domein>.okta.com/.well-known/openid-configuration |
| Keycloak | https://<host>/realms/<realm>/.well-known/openid-configuration |
| Google Workspace | https://accounts.google.com/.well-known/openid-configuration |
| Auth0 | https://<uw-domein>.auth0.com/.well-known/openid-configuration |
Gebruikersprovisioning
Wanneer een gebruiker voor het eerst authenticeert via SSO, maakt Anzen automatisch een lokaal gebruikersaccount aan met het e-mailadres en de naam uit de claims van de IdP. De gebruiker heeft geen lokaal wachtwoord nodig - ze kunnen alleen inloggen via SSO.
Automatisch aangemaakte gebruikers tellen mee voor de gebruikerslimiet van uw abonnement. Op het Free-abonnement wordt SSO-gebruikersprovisioning geblokkeerd zodra de limiet van 10 gebruikers is bereikt.
Beveiligingsnotities
- Het client secret wordt nooit via de API blootgesteld - alleen een gemaskeerde versie wordt getoond.
- CSRF-bescherming wordt afgedwongen via een willekeurige
state-parameter bij elk autorisatieverzoek. - Tokenuitwisseling vindt server-side plaats - het client secret wordt nooit naar de browser gestuurd.
- PKCE wordt niet gebruikt omdat Anzen als een vertrouwelijke (server-side) client fungeert. Als uw IdP PKCE vereist, schakel die vereiste uit voor deze client.
- Lokale wachtwoordinloggen blijft beschikbaar naast SSO. Gebruikers die zijn aangemaakt via SSO hebben geen lokaal wachtwoord en kunnen alleen inloggen via SSO.
Probleemoplossing
- Discovery-URL-test mislukt: Controleer of de URL eindigt op
/.well-known/openid-configurationen bereikbaar is vanaf de Anzen-server. - Redirect-mismatch: Beide redirect-URI’s moeten zijn geregistreerd in uw IdP:
/management/oidc/callbackvoor de Beheerinterface en/oidc/callbackvoor het Serviceportaal. - Ontbrekende e-mailclaim: Zorg dat de
email-scope is verleend en dat de IdP deemail-claim opneemt in het ID-token of userinfo-response. - Gebruikerslimiet bereikt: Op het Free-abonnement mislukt SSO-inloggen als er al 10 gebruikers zijn. Upgrade naar Professional voor onbeperkte gebruikers.
Hulp nodig?
Als u het probleem niet zelf kunt oplossen, staat ons supportteam voor u klaar. Neem contact op met support.