Teknik og integration

Hvad er SAML?

SAML er en XML-baseret standard til single sign-on mellem en Identity Provider og en Service Provider. SAML 2.0 blev OASIS-standard i marts 2005.

Kaldes også: SAML 2.0, Security Assertion Markup Language

SAML står for Security Assertion Markup Language. SAML 2.0 blev OASIS-standard i marts 2005 og er stadig den bærende protokol til single sign-on i store organisationer. Den er XML-baseret, og den er ældre end alt det, der i dag kaldes moderne identitetsteknologi.

Assertions

Der er to parter. En Identity Provider, som kender brugerne, og en Service Provider, som er den tjeneste, brugeren vil ind i. Mellem dem sendes en assertion.

En assertion er en XML-erklæring, som Identity Provideren har signeret. Signaturen er det, der gør den noget værd. Uden den er det bare et stykke XML, som hvem som helst kan skrive.

Det er også der, de fleste fejl opstår. Signaturen skal kontrolleres mod den nøgle, man på forhånd har aftalt med Identity Provideren, og den skal dække netop det stykke af dokumentet, man læser sine oplysninger ud af. Bliver de to ting adskilt, kan et gyldigt signeret dokument bære et uunderskrevet indhold.

Der findes tre typer udsagn i en assertion:

  • Authentication statement. Brugeren blev autentificeret på et bestemt tidspunkt, på en bestemt måde.
  • Attribute statement. Egenskaber ved brugeren, fx e-mail, afdeling eller rolle.
  • Authorization decision statement. En afgørelse af, om brugeren må tilgå en bestemt ressource.

Hvornår SAML, hvornår OIDC

Valget er som regel givet på forhånd af modparten.

Vælg SAML, når den anden ende er et etableret virksomheds-IdP eller en ældre applikation, der kun taler SAML. Microsoft Entra ID, AWS, Salesforce, Workday og Atlassian understøtter det alle sammen, og i mange organisationer er det den vej, der allerede er trådt.

Vælg OpenID Connect til mobilapps, enkeltsideapplikationer og API-arkitekturer. OIDC bruger JSON og REST og slipper for XML-signaturer, som er tunge at håndtere korrekt i en app på en telefon.

To forskellige spørgsmål

Det er værd at holde fast i, hvad et SAML-login egentlig beviser. Det beviser, at Identity Provideren mener, brugeren er den, kontoen tilhører. Hvor meget den påstand er værd, afhænger helt af, hvad der skete, da kontoen blev oprettet.

Er kontoen oprettet af en HR-afdeling ud fra en ansættelseskontrakt, er den stærk. Er den oprettet ved, at nogen selv skrev en e-mailadresse i et felt, er den svag. Det er præcis den skelnen, KYC og anden identitetskontrol handler om, og den er uafhængig af, om protokollen hedder SAML eller noget andet. Et eID er stærkt, fordi identiteten er kontrolleret ved udstedelsen, ikke fordi transporten er XML.

Teksten er sidst tjekket .

Vi kobler os på det, du allerede har

Skal jeres medarbejdere ind i et administrationsmodul via virksomhedens eget login, er det som regel SAML, der ligger i den anden ende. Vores eID-login til kunder kører derimod på OpenID Connect, og de to ting kan sagtens leve side om side i den samme løsning.