OpenID Connect (OIDC)

Författare:Mikkel Haldorsen
Uppdaterad:4 maj 2025

Läs om hur OpenID Connect förbättrar autentiseringen genom att bygga på OAuth 2.0-protokollet för att tillhandahålla ett säkert, standardiserat sätt att autentisera användare.

Innehållsförteckning

  1. Vad är OpenID Connect?
  2. Hur OIDC fungerar
  3. Vad är OAuth 2.0?
  4. Fördelar med OIDC
  5. ID-tokens förklarade
  6. Genomförande av OIDC
  7. Säkerhetsöverväganden
  8. Felsökning
  9. Ordlista

Vad är OpenID Connect?

OpenID Connect (OIDC) är ett identitetslager som bygger på OAuth 2.0-protokollet. Det gör det möjligt för klienter (som Esadax) att verifiera användarnas identitet baserat på autentisering som utförs av en auktoriseringsserver.

  • Utvecklat av OpenID Foundation.
  • Allmänt antagen i moderna webb- och mobilapplikationer.
  • Används av Google, Microsoft, Auth0, Okta med flera.

Hur OIDC fungerar

  1. Användaren försöker logga in på klientprogrammet.
  2. Klienten omdirigerar användaren till identitetsleverantören (IdP).
  3. Användaren autentiserar med IdP:n (t.ex. användarnamn + lösenord, 2FA).
  4. IdP omdirigerar tillbaka till klienten med en ID-token och (valfritt) en åtkomsttoken.
  5. Klienten verifierar ID-tokenets signatur och anspråk.
  6. Användaren autentiseras och en session skapas.

Vad är OAuth 2.0?

Funktion OAuth 2.0 OpenID Connect (OIDC)
Syfte Godkännande Autentisering
Typ av token Åtkomsttoken ID-token + åtkomsttoken
Användaridentitet Inte garanterat Uttryckligen tillhandahållna
Åtkomst till profildata Kräver extra omfång Stöds via openid-scope
Standardiserade påståenden Nej. - Ja.

✅ OIDC = OAuth 2.0 + identitet + standardiserad användarinfo.


Fördelar med OIDC

  • Interoperabilitet: Standard över många leverantörer och plattformar.
  • Säkerhet: Använder signerade tokens och beprövade flöden.
  • Flexibilitet: Fungerar för webbappar, mobilappar och API:er.
  • Skalbarhet: Perfekt för distribuerade system eller system med flera klienter.
  • Federated Identity: En inloggning fungerar för många tjänster.

ID-tokens förklarade

En ID Token är en JWT (JSON Web Token) som innehåller information om användaren.

  • Vanliga påståenden:
    • sub: Ämne (användar-ID)
    • email: Användarens e-post
    • name: Fullständigt namn
    • iat: Utfärdat kl.
    • expUtgångsdatum
    • iss: Utfärdare
    • aud: Målgrupp (din app)

Exempel på avkodad ID-token-nyttolast:

{
  "sub": "1234567890",
  "name": "Jane Doe",
  "email": "jane@esadax.com",
  "iat": 1692547200,
  "exp": 1692550800,
  "iss": "https://auth.provider.com",
  "aud": "esadax-app"
}

Genomförande av OIDC

  1. Välj en leverantör: Google, Auth0, Okta eller egen värd (t.ex. Keycloak).

  2. Registrera din ansökan: Skaffa ett klient-ID och klienthemlighet.

  3. Omdirigera användare till leverantören:

    • Inkludera response_type=code och scope=openid.
  4. Hantera återuppringning:

    • Byt ut koden mot tokens med hjälp av leverantörens /token-slutpunkt.
  5. Verifiera ID-token:

    • Kontrollera signaturen, aud, exp, och andra påståenden.
  6. Skapa session:

    • Använd token-data för att autentisera användaren i ditt system.

Säkerhetsöverväganden

  • Validera alltid ID-tokens på serversidan.
  • Använd HTTPS för att undvika token avlyssning.
  • Ställ in korta tokenlivstider och rotera hemligheter.
  • Verifiera nonce för att förhindra replay-attacker.
  • Använd PKCE (Proof Key for Code Exchange) för offentliga klienter som SPA:er och mobilappar.

Felsökning

  • Ogiltig tokensignatur?

    • Se till att du använder rätt offentlig nyckel (JWKS).
  • Ogiltig målgrupp (aud)?

    • Kontrollera att token utfärdades för ditt klient-ID.
  • Har ditt lösenord gått ut?

    • Uppdatera token eller autentisera användaren på nytt.
  • Leverantören omdirigerar inte?

    • Kontrollera att omdirigerings-URI:n matchar det som är registrerat.

Ordlista

  • OIDC: OpenID Connect, ett identitetslager ovanpå OAuth 2.0.
  • OAuth 2.0: Ett protokoll för att auktorisera åtkomst till resurser.
  • IdP: Identitetsleverantör (t.ex. Google, Okta) som autentiserar användaren.
  • ID Token: En JWT som bekräftar användarens identitet.
  • Åtkomsttoken: En token som används för att komma åt skyddade API:er.
  • PKCE: Säkerhetstillägg till OAuth 2.0 för offentliga klienter.