Identifiering med OIDC
- Okta
- miniOrange
- Atlassian
- Freja | Mina Sidor | Swedbank ||
- Open Connect Generic [ KTH ] | Plugin |
- ChatGPT
- Tillitsnivåer
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
- Ladda ner pluginet från GitHub eller WordPress Directory (inofficiell version)
- Aktivera det.
- Du hittar inställningarna under Inställningar > OpenID Connect Client.
3. Fyll i konfigurationsfält
| Inställning | Värde |
|---|---|
| Login Type | Redirect |
| Client ID | (Fås från Freja adminportal) |
| Client Secret | (Fås från Freja adminportal) |
| OpenID Scope | openid email ssn (beroende på vad du behöver) |
| Login Endpoint URL | https://oidc.prod.frejaeid.com/oidc/authorize |
| Userinfo Endpoint URL | https://oidc.prod.frejaeid.com/oidc/userinfo |
| Token Validation Endpoint URL | https://oidc.prod.frejaeid.com/oidc/token |
| End Session Endpoint (valfri) | https://oidc.prod.frejaeid.com/oidc/logout |
| Identity Key | sub 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?
- Besökaren klickar på ”Logga in med Freja eID”.
- De dirigeras till Frejas godkännandeflöde.
- Användaren identifierar sig i Freja-appen.
- Freja skickar ett token + användarinformation tillbaka till WordPress.
- WordPress loggar in användaren, eller skapar ett nytt konto baserat på attribut som
emailellerssn.
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;
}