SAML

Författare:Lars Nyström
Uppdaterad:7 maj 2025

Förstå hur SAML möjliggör enkel inloggning (SSO) för företag genom att låta användare autentisera sig via en central identitetsleverantör (IdP).


Innehållsförteckning

  1. Vad är SAML?
  2. Så fungerar SAML
  3. SAML mot OIDC
  4. Fördelar med SAML
  5. SAML-påståenden förklarade
  6. Implementera SAML SSO
  7. Säkerhetsöverväganden
  8. Felsökning
  9. Ordlista

Vad är SAML?

SAML (Security Assertion Markup Language) är en XML-baserad öppen standard som används för Single Sign-On (SSO) över flera domäner. Det gör det möjligt för användare att logga in en gång med hjälp av en central identitetsleverantör (IdP) och få tillgång till flera applikationer (tjänsteleverantörer eller SP) utan att ange autentiseringsuppgifter igen.

  • Utvecklat av OASIS-konsortiet
  • Används ofta i företagsmiljöer
  • Kompatibel med IdP:er som Okta, Azure AD, OneLogin med flera

Så fungerar SAML

  1. Användaren försöker komma åt en skyddad resurs (Tjänsteleverantör).
  2. SP omdirigerar användaren till identitetsleverantören (IdP).
  3. Användaren autentiserar hos IdP:n (t.ex. med företagsreferenser).
  4. IdP skickar ett SAML-svar, som innehåller ett påstående, tillbaka till SP.
  5. SP validerar svaret, extraherar identitetsdata och loggar in användaren.

SAML mot OIDC

Funktion SAML OpenID Connect (OIDC)
Typ av protokoll XML JSON + REST (OAuth 2.0)
Populärt användningsfall SSO för företag Webb-/mobilappsinloggning
Transportmekanism Omdirigeringar i webbläsaren (POST/Redirect) JSON över HTTPS
Typ av token SAML-försäkran (XML) ID-token (JWT)
Komplexitet Högre Lägre
Moderna användningsområden Minskande Ökande

✅ Använd SAML för företagets SSO, OIDC för moderna appar och API:er.


Fördelar med SAML

  • SSO över applikationer med en inloggning
  • Minskad trötthet på lösenord och risk för återanvändning av inloggningsuppgifter
  • Centraliserad användarhantering via företagets IdP
  • Stöder MFA och starka autentiseringsprinciper
  • Kompatibilitet i företagsklass med HR-system och interna appar

SAML-påståenden förklarade

En SAML Assertion är ett XML-dokument som utfärdas av IdP:n och som innehåller identitets- och auktoriseringsdata. Den är digitalt signerad och eventuellt krypterad.

Vanliga påståendeelement:

  • <Subject> – Användaren som autentiseras
  • <AttributeStatement> – Användarinfo (t.ex. e-post, roll)
  • <Conditions> – Förfallotid, målgruppsbegränsningar
  • <AuthnStatement> – Information om inloggningen (t.ex. tidsstämpel)

Exempel (förenklat):

<saml:Assertion>
  <saml:Subject>
    <saml:NameID>jane@esadax.com</saml:NameID>
  </saml:Subject>
  <saml:AttributeStatement>
    <saml:Attribute Name="email">
      <saml:AttributeValue>jane@esadax.com</saml:AttributeValue>
    </saml:Attribute>
    <saml:Attribute Name="role">
      <saml:AttributeValue>admin</saml:AttributeValue>
    </saml:Attribute>
  </saml:AttributeStatement>
</saml:Assertion>

Implementera SAML SSO

  1. Registrera din app hos identitetsleverantören (IdP).

  2. Konfigurera metadatautbyte:

    • App ger SAML Service Provider (SP) metadata.
    • IdP delar IdP-metadata (certifikat, slutpunkter).
  3. Konfigurera Assertion Consumer Service (ACS):

    • Det här är appens slutpunkt för att ta emot SAML-svar.
  4. Hantera SAML-svaret:

    • Validera signatur och analysera attribut.
    • Skapa en session baserat på påståendedata.

Säkerhetsöverväganden

  • ✅ Validera alltid den digitala signaturen för SAML-svaret
  • Använd HTTPS för att förhindra avlyssning av påståenden
  • Verifiera målgrupp för att säkerställa att token är för din app
  • ⌛ Kontrollera utgångstider (NotBefore, NotOnOrAfter)
  • 🚫 Avvisa osignerade eller manipulerade påståenden

Felsökning

  • Ogiltig signatur?

    • Kontrollera att du använder rätt IdP-certifikat
  • SAML-svaret tolkades inte?

    • Säkerställa korrekt kodning (Base64) och giltig XML-struktur
  • Fel målgrupp?

    • Se till att ditt SP-entitets-ID matchar det som är konfigurerat i IdP
  • Användaren hittades inte?

    • Kontrollera om attributmappningen är korrekt (t.ex. e-post, namnID)

Ordlista

  • SAML står för Security Assertion Markup Language.
  • SSO: Enkel inloggning
  • IdP: Identitetsleverantör (autentiserar användaren)
  • SP: Tjänsteleverantör (din app)
  • ACS: Assertion Consumer Service – slutpunkt som hanterar SAML-svar
  • Assertion: Identitetsnyttan som utfärdats av IdP
  • Metadata: XML-fil som beskriver SP/IdP-funktioner och slutpunkter