Vereenvoudig SAML-authenticatie-integratie voor ontwikkelaars
Leer wat SAML is, hoe je SSO implementeert, en snelle stappen om SAML-authenticatie te integreren als Identity Provider (IdP) of Service Provider (SP).
Single Sign-On (SSO) is essentieel voor moderne apps, en SAML maakt veilige, gebruiksvriendelijke authenticatie mogelijk tussen verschillende bedrijfsidentiteitssystemen. Deze gids vereenvoudigt SAML voor ontwikkelaars en ontwerpers met duidelijke stappen en praktische voorbeelden om het efficiënt te implementeren.
Wat zijn SAML-authenticatie en SAML-apps?
Security Assertion Markup Language (SAML) is een op XML gebaseerde standaard die wordt gebruikt voor het uitwisselen van authenticatie- en autorisatiegegevens tussen twee belangrijke partijen: de Identity Provider (IdP) en de Service Provider (SP). Het is een veelgebruikte oplossing voor Single Sign-On (SSO) binnen organisaties, waardoor enterprise-gebruikers zich slechts één keer hoeven aan te melden om toegang te krijgen tot meerdere applicaties.
Identity Provider (IdP) beheert en verifieert gebruikersgegevens, zoals gebruikersnamen en wachtwoorden. Wanneer een gebruiker een beveiligde dienst probeert te openen, bevestigt de IdP hun identiteit en stuurt deze bevestiging door naar de dienst.
- Voorbeeld: Stel je werkt voor een groot bedrijf dat Microsoft Azure AD gebruikt om werknemersaccounts te beheren. Als je wilt inloggen op Salesforce, fungeert Azure AD als de IdP. Het controleert je gegevens en informeert Salesforce dat je bevoegd bent om het te gebruiken.
Service Provider (SP) is de applicatie of dienst die gebruikers daadwerkelijk willen openen. Het vertrouwt op de IdP voor het uitvoeren van de authenticatie.
- Voorbeeld: In het bovenstaande scenario is Salesforce de SP. Salesforce vertrouwt op Microsoft Azure AD (de IdP) om je identiteit te bevestigen. Zodra Azure AD je heeft geverifieerd, krijg je toegang tot Salesforce.
Wanneer men spreekt over een “SAML-app”, bedoelt men meestal de SP.
Met het SAML-protocol kun je jouw dienst instellen als een IdP om applicatie-integraties te ondersteunen (zoals Azure AD / Google Workspace), of als een SP (zoals Salesforce / Slack) om SSO voor gebruikers mogelijk te maken.
Een SAML-assertie is het hart van het SAML-protocol. Het is een digitaal "briefje" dat door de IdP wordt gemaakt en naar een SP wordt gestuurd met de boodschap: "Ik heb de identiteit van deze gebruiker bevestigd." Hierna leggen we uit hoe het proces werkt voor zowel IdP als SP.
Als SAML Identity Provider optreden
Wanneer jouw dienst fungeert als de IdP, maak je SAML-authenticatie mogelijk over meerdere applicaties. Dit stelt gebruikers in staat om toegang te krijgen tot verschillende diensten via één enkele enterprise-identiteit.
Hier is een typische SAML SSO-werkstroom voor een IdP:
- De gebruiker probeert toegang te krijgen tot een applicatie (SP), zoals Salesforce.
- De applicatie leidt de gebruiker door naar je IdP voor authenticatie.
- De gebruiker voert zijn gegevens in op de aanmeldpagina van jouw IdP.
- De IdP controleert de gegevens.
- Als de gegevens kloppen, stuurt de IdP een SAML-assertie terug naar de SP.
- De SP verwerkt de assertie, bevestigt de geldigheid en geeft de gebruiker toegang.
Als SAML Service Provider optreden
Als jouw dienst de SP is, integreer je met verschillende identity providers om SSO-mogelijkheden voor gebruikers te bieden. Dit stelt enterprise-gebruikers uit verschillende organisaties of tenants in staat om veilig en efficiënt toegang te krijgen tot jouw applicatie.
Hier is een workflow voor SP-geïnitieerde SSO:
- De gebruiker probeert in te loggen op jouw applicatie.
- Jouw applicatie genereert een SAML-verzoek en leidt de gebruiker door naar de aanmeldpagina van de IdP.
- De gebruiker logt in bij de IdP (of slaat deze stap over als hij/zij al ingelogd is).
- De IdP verifieert de identiteit van de gebruiker en, zodra deze is bevestigd, verpakt de IdP de gebruikersgegevens in een SAML-assertie.
- De IdP stuurt de assertie terug naar jouw applicatie.
- Jouw dienst controleert de assertie. Als deze geldig is, krijgt de gebruiker toegang tot de applicatie.
Belangrijke parameters in SAML SSO
Voor een succesvolle SAML SSO-integratie moeten zowel IdP ’s als SP’s specifieke parameters delen. Hier volgt een overzicht van de belangrijkste onderdelen:
Parameters vanuit de IdP
- IdP Entity ID: Een unieke identifier voor de IdP in SAML-communicatie, vergelijkbaar met een digitaal naamplaatje.
- SSO-URL: Het login-eindpunt (URL) waar de SP gebruikers naar doorstuurt voor authenticatie.
- X.509-certificaat: Een publieke sleutel om de SAML-assertie te ondertekenen, waardoor deze veilig is. Dit is het “zegel” dat de authenticiteit bevestigt.
Tip: Als je IdP een SAML Metadata-URL biedt, wordt alles eenvoudiger. Deze URL bevat alle benodigde informatie (zoals certificaten, SSO-URL’s en IdP Entity ID) op één plek. Dit minimaliseert de kans op fouten door handmatig kopiëren en plakken, en voorkomt het gedoe van handmatig certificaatbestanden bijwerken.
Parameters vanuit de SP
- SP Entity ID: De unieke identifier van de SP, vergelijkbaar met de IdP Entity ID.
- Assertion Consumer Service (ACS) URL: Dit is het SP-eindpunt waar de SP de SAML-assertie van de IdP verwacht te ontvangen.
- RelayState (Optioneel): Wordt gebruikt om gegevens mee te geven tijdens het SAML-proces, zoals de URL die de gebruiker oorspronkelijk probeerde te bezoeken.
SAML-attribuutmapping en encryptie
- NameID-formaat: Bepaalt het formaat van de gebruikersidentifier (bijv. e-mailadres of gebruikersnaam).
- SAML-attributen: Dit zijn extra gebruikersgegevens zoals rollen, e-mail of afdeling, die de IdP naar de SP stuurt.
- Voorbeeld: Als de door de IdP ondertekende SAML-assertie
email
([email protected]),role
(admin), endepartment
(engineering) bevat. De SP kanrole
gebruiken om beheerdersrechten toe te wijzen ofdepartment
om de gebruiker bij het juiste team in te delen. Om deze essentiële gebruikersgegevens op te halen, moeten de IdP en SP overeenstemmen over de attributenmapping. Bijvoorbeeld, de IdP definieert “department” als team, terwijl de SP het verwacht als group. Correcte mapping zorgt voor soepele communicatie.
- Voorbeeld: Als de door de IdP ondertekende SAML-assertie
- Versleutelde asserties (Optioneel): Om gevoelige authenticatiegegevens te beschermen, kunnen SAML-asserties versleuteld worden.
- Rol van de IdP: Versleutelt de assertie met de publieke sleutel van de SP.
- Rol van de SP: Ontsleutelt de assertie met de eigen private key om gebruikersgegevens te lezen.
Nu heb je de benodigde informatie om een SAML-verbinding in te stellen. Om Salesforce (Service Provider) te integreren met Azure AD (Identity Provider), volg je deze stappen:
- Verkrijg de IdP Entity ID, SSO-URL en certificaat van Azure AD en stel deze in bij Salesforce.
- Geef de SP Entity ID en ACS-URL van Salesforce door aan Azure AD.
Logto maakt SAML-integratie eenvoudig
Logto kan zowel als IdP als SP fungeren om SAML SSO voor je applicaties te ondersteunen.
Logto gebruiken als een SAML IdP
Logto maakt het mogelijk voor andere applicaties om het te vertrouwen voor federatieve identiteit-authenticatie en ondersteunt multi-factor authenticatie (MFA) voor verbeterde beveiliging.
- Maak een Logto-app aan Ga naar Logto Console > Applicaties en maak een nieuwe SAML-app aan.
- Configureer SAML-parameters Stel de app in met de Assertion Consumer Service URL en SP Entity ID van de Service Provider (SP).
- Geef metadata-URL door Logto biedt een IdP Metadata-URL waarmee SP's automatisch essentiële details kunnen ophalen, zoals SSO-URL’s en certificaten.
- Geavanceerde configuratie (Optioneel)
- Je kunt meerdere nieuwe certificaten aanmaken met vingerafdrukken en verloopdata, maar slechts één certificaat kan tegelijk actief zijn.
- Pas het Name ID-formaat aan naar de bedrijfsbehoeften.
- Schakel SAML-assertie-encryptie in door het x509-certificaat van je dienstverlener te kopiëren en te plakken om de asserties te versleutelen.
- Map attributen (Optioneel) Stel eenvoudig in hoe gebruiker-attributen gedeeld worden met Service Providers (SP’s).
Voor gedetailleerde instructies, bekijk de officiële documentatie hier: SAML App
Logto gebruiken als een SAML SP
Logto integreert ook met elke enterprise IdP via SAML- of OIDC-protocollen. Of je nu SP-geïnitieerde SSO voor je uniforme inlogpagina's mogelijk maakt of IdP-geïnitieerde SSO configureert, het proces is eenvoudig.
- Maak een enterprise connector aan Ga naar de Logto Console > Enterprise SSO en maak een nieuwe Enterprise Connector aan. Selecteer SAML als protocolstandaard.
- Configureer SAML-parameters Voorzie de metadata-URL of metadata-XML-bestand van je IdP. Als de metadata niet beschikbaar is, schakel dan over naar handmatige configuratie met invoer van IdP Entity ID, SSO-URL, en het uploaden van het ondertekeningscertificaat.
- Deel de ACS-URL en SP Entity ID Voorzie de ACS-URL en SP Entity ID van Logto aan je IdP om de integratie te voltooien.
- Map attributen (Optioneel) Configureer gebruikersdatamapping, zoals e-mail of namen, zodat informatie correct wordt uitgewisseld tussen de IdP en Logto.
- Voeg zakelijke e-maildomeinen toe Voeg in het tabblad "SSO Experience" van de enterprise connector een of meer e-maildomeinen toe. Dit zorgt ervoor dat alleen gebruikers met de gespecificeerde domeinen zich kunnen authenticeren via SSO.
- Schakel IdP-geïnitieerde SSO in (Optioneel) Schakel IdP-geïnitieerde SSO alleen in als dit vereist is door je zakelijke klanten. Hiermee kunnen gebruikers direct vanuit het IdP-dashboard inloggen op je applicaties.
Voor uitgebreide uitleg, bekijk de officiële documentatie: Enterprise SSO documentatie.
Tot slot
SAML biedt een gestandaardiseerde, veilige methode voor SSO en maakt authenticatie soepeler. Logto vereenvoudigt dit proces, of je het nu instelt als IdP of SP. Met een gebruiksvriendelijke interface en ondersteuning voor zowel cloud als open-source versies, neemt Logto de complexiteit uit SAML-integratie. Door slechts een paar parameters te configureren, kun je jouw diensten verbinden met elke SAML IdP of SP, zodat jij je kunt richten op het bouwen van geweldige ervaringen voor je gebruikers.