OIDC – OpenID

Identifiering med OIDC

Att använda pluginet OpenID Connect Generic Client i WordPress för att integrera med Freja eID är en lättviktig och öppen lösning. Den passar dig som vill ha kontroll över implementationen och inte vill använda kommersiella alternativ som miniOrange eller Auth0.


🧩 Vad är openid-connect-generic?

Det är ett gratis WordPress-plugin som gör att din WordPress-webbplats kan agera som en OpenID Connect-klient, och autentisera användare via en extern OpenID Provider (OP) – t.ex. Freja eID.

🔗 Pluginets GitHub:
👉 https://github.com/daggerhart/openid-connect-generic
Plugin WordPress
https://wordpress.org/plugins/daggerhart-openid-connect-generic/


🛠️ Så fungerar integrationen med Freja eID

1. Freja eID som OpenID Connect-leverantör

Freja stödjer standarden OpenID Connect och har en ”discovery endpoint”:

https://oidc.prod.frejaeid.com/.well-known/openid-configuration

Denna innehåller all metadata som behövs: authorization endpoint, token endpoint, userinfo endpoint, etc.


2. Installera pluginet i WordPress


3. Fyll i konfigurationsfält

InställningVärde
Login TypeRedirect
Client ID(Fås från Freja adminportal)
Client Secret(Fås från Freja adminportal)
OpenID Scopeopenid email ssn (beroende på vad du behöver)
Login Endpoint URLhttps://oidc.prod.frejaeid.com/oidc/authorize
Userinfo Endpoint URLhttps://oidc.prod.frejaeid.com/oidc/userinfo
Token Validation Endpoint URLhttps://oidc.prod.frejaeid.com/oidc/token
End Session Endpoint (valfri)https://oidc.prod.frejaeid.com/oidc/logout
Identity Keysub eller email (beroende på vad du vill identifiera via)


4. Valbara inställningar

  • Create user if not exists: ✔️ (skapa automatiskt WordPress-användare för nya inloggningar)
  • Redirect back to origin page: ✔️ (användare skickas tillbaka till där de var)
  • Link existing users: ✔️ (bra om du vill koppla existerande WP-konton till Freja-login)

🔐 Hur fungerar inloggningen i praktiken?

  1. Besökaren klickar på ”Logga in med Freja eID”.
  2. De dirigeras till Frejas godkännandeflöde.
  3. Användaren identifierar sig i Freja-appen.
  4. Freja skickar ett token + användarinformation tillbaka till WordPress.
  5. WordPress loggar in användaren, eller skapar ett nytt konto baserat på attribut som email eller ssn.

RedirectURL [som freja skickar tillbaka användaren till

https://solarxbike.se/labbet/digitalid/wp-admin/admin-ajax.php?action=openid-connect-authorize


✅ Fördelar

  • Enkel, snabb och gratis.
  • Ingen extern plattform behövs.
  • Full OpenID Connect-kompatibilitet.
  • Du kontrollerar allt själv – bra för säkerhetsmedvetna projekt.

⚠️ Nackdelar

  • Ingen inbyggd support för rollmappning, attributmapping etc (men kan kodas).
  • Ingen support om något går fel (öppen källkod).
  • Du måste ha ett klient-ID/secret från Freja (kräver avtal).

💡 Tips

För att mappa attribut från Freja (t.ex. personnummer, verified status etc), kan du hooka in i:

phpKopieraRedigeraadd_filter('openid-connect-generic-user-claim-result', 'mina_claims', 10, 3);
function mina_claims($user_claim, $token_response, $user_info) {
    // Exempel: spara Freja-ID som user meta
    update_user_meta($user_claim->ID, 'freja_id', $user_info['sub']);
    return $user_claim;
}