Vertaald door AI. Nog niet door de community nagekeken. Lees in het Engels

Blog · 26 september 2023 · Steve Simpson · Identiteit

Een diepe duik in SAML-authenticatie

SAML in single sign-on met Salesforce begrijpen

Op het gebied van authenticatie speelt SAML (Security Assertion Markup Language) een sleutelrol bij naadloze toegang over applicaties heen. Laten we diep in SAML duiken, de betekenis ervan voor single sign-on (SSO) begrijpen, en de implementatie met Salesforce verkennen.

De context schetsen

Stel je een scenario voor met twee Salesforce-orgs: een identiteitsprovider (IDP) en een serviceprovider. De serviceprovider heeft de data die je wilt benaderen, maar in plaats van meerdere inloggegevens te gebruiken, wil je dat met één set inloggegevens doen. Het concept klinkt eenvoudig, maar de mechaniek achter de schermen kan ingewikkeld zijn.

Diagram: single sign-on van de ene Salesforce-org naar de andere. De browser wordt met een SAML-request naar de org van de identiteitsprovider gestuurd en keert met een SAML-assertion terug naar de org van de serviceprovider; elke org bewaart het certificaat van de andere en gebruikers worden gekoppeld via de Federation ID

Belangrijke termen in het SAML-landschap

Gebruikerstoegang: Als een gebruiker probeert een beveiligde resource bij de serviceprovider te bereiken voordat hij zich geauthenticeerd heeft.

Doorsturen: Als de gebruiker niet geauthenticeerd is, stuurt de serviceprovider hem met een SAML-request door naar de identiteitsprovider. Zo nodig kan er een relay state (de URL die de gebruiker eerst wilde bezoeken) meegestuurd worden.

Authenticatie door de IDP: De identiteitsprovider verifieert de identiteit van de gebruiker, meestal via gebruikersnaam, wachtwoord of multifactorauthenticatie.

SAML-assertion: Na authenticatie stuurt de IDP een SAML-assertion naar de serviceprovider.

Vertrouwen bij de serviceprovider: De serviceprovider valideert de SAML-assertion, haalt de gebruikersinformatie eruit en verleent toegang. Als er eerder een relay state meegegeven is, navigeert de serviceprovider naar die specifieke URL.

SAML-samenvatting: de basisstroom (gebruikerstoegang, doorsturen, authenticatie, assertion, terugsturen, toegang verleend), de voordelen en de belangrijke termen

Voordelen van single sign-on

Eenvoudigere toegang: Gebruikers hebben maar één set inloggegevens nodig om meerdere diensten te benaderen.

Beveiliging: SAML gebruikt digitale handtekeningen om de integriteit van de data te waarborgen en manipulatie te voorkomen.

Interoperabiliteit: Omdat het een standaardprotocol is, kan SAML samenwerken met allerlei IDP’s en serviceproviders op verschillende technologiestacks.

Dieper duiken: SAML-stromen onderzoeken

SAML-request: Gestart door de serviceprovider richting de IDP, met het verzoek een gebruiker te authenticeren.

Voorbeeld van een SAML-request (AuthnRequest) van de org van de serviceprovider naar de org van de identiteitsprovider

SAML-respons: Een bericht van de IDP na authenticatie, met details over de gebruiker.

Voorbeeld van een SAML-respons van de identiteitsprovider, met de issuer en de digitale handtekening

Assertions: Dit zijn uitspraken van de IDP over de gebruiker, met attributen zoals de gebruikersnaam of het e-mailadres.

Digitale handtekeningen: Hiermee worden de assertions geverifieerd, zodat zeker is dat ze niet onrechtmatig gewijzigd zijn.

Relay state: Een deeplink-URL die ervoor zorgt dat de gebruiker na authenticatie teruggestuurd wordt naar de oorspronkelijk bedoelde bestemming.

Als een gebruiker toegang aanvraagt, wordt er een SAML-request naar de IDP gestuurd, die na verificatie een SAML-assertion terugstuurt. Als de serviceprovider die assertion valideert, krijgt de gebruiker de bedoelde toegang.

Sequentiediagram: SAML-login gestart door de serviceprovider. De gebruiker vraagt een pagina op, wordt naar de identiteitsprovider gestuurd om in te loggen, keert terug met een SAML-assertion, en de serviceprovider valideert die en maakt een sessie aan

Met tools als de SAML Tracer voor browsers kun je deze stroom zichtbaar maken. Zo krijg je een transparant beeld van het authenticatieproces, van het eerste request tot het laatste doorsturen na authenticatie.

Beveiligingsmaatregelen in SAML-assertions

Om mogelijke beveiligingsdreigingen tegen te gaan:

Tijdstempels worden gebruikt om replay-aanvallen te voorkomen, zodat de SAML-assertion maar een kort venster geldig is.

Digitale handtekeningen garanderen dat er tijdens de uitwisseling niet met de data geknoeid is.

Daarnaast kunnen assertions gebruikersattributen bevatten, zoals e-mailadressen of gebruikerstypes, wat gedetailleerdere toegangscontroles aan de kant van de serviceprovider mogelijk maakt.

Conclusie

SAML is in de kern een op XML gebaseerd protocol met de belangrijkste elementen voor authenticatie. Het lijkt misschien magie, maar het is het resultaat van goed doordachte technologie die ontworpen is om aanvallen als ‘man-in-the-middle’ of replay tegen te houden.

Het vermogen om meerdere serviceproviders met verschillende technologiestacks van IDP’s te integreren, maakt het een hoeksteen in de wereld van digitale authenticatie.

Blijf op de hoogte

Begin met vertrouwen aan je reis door Salesforce Identity! Voor meer inzichten en tips: blijf op de hoogte hier op www.SteveTechArc.com en via het YouTube-kanaal @SteveTechArc (opens in a new tab). Abonneer je en verdiep je begrip van Salesforce Identity.

De wereld helpen veranderen door integratiekennis te delen met collega-architecten en met iedereen die op weg is om architect te worden!

Transcript met hulp van AI

STA 3.6