En snabb överblick över OIDC och SSO-lösningar att sätta upp själv
Inför ett litet hackathon i privat regi så behöver jag en extern lösning för Identity provider (IDP) för att hantera SSO, med följande minimumkrav:
- Open ID Connect (OIDC), helst certificerad
- Ska gå att köra i container
- Öppen källkod, åtminstone som en free tier
Detta inlägg beskriver mitt urval.
Pocket ID - för minimalism och fokus på mobilanvändning
Pocket ID är en öppenkällkodslösning som stödjer OIDC med passkeys som enda autentiseringsmetod. Inga lösenord eller MFA, således. Troligtvis perfekt för ett smalt och noga kontrollerat scope, t ex för interna appar i ett tekniknära team där alla kan hantera passkeys.
Mindre lämpligt om flexibilitet och yttre, okända krav eller behov finns. Passkeys är fränt, men kan ses som för okonventionellt.
Authentik - En oxe som hanterar allt
Jämförelsetabellen för Authentik talar för sig själv. SAML2, Federated, OIDC, LDAP, SCIM, Kerberos, allt finns. Om jag planerat att ha en självhostad arbetshäst för byråverksamhet med många appar, klienter och kundbehov, hade jag investerat i att lära mig Authentik då den är öppen källkod som inte kostar något att komma igång med. Det finns även en betalversion med mer support och teknisk assistans, vilket gör den till en kandidat för förvaltning i offentlig sektor.
Det kommer dock till ett pris, då applikationen kräver mycket CPU och RAM. Detta är något som behöver hostas med omsorg, och på kraftig hårdvara.
Authelia - OIDC, helt enkelt
Authelia är en enkel go-binär som kräver 30MB RAM för att köra, som konfigureras med en yaml-fil. Den är certificerad för OIDC och har stor kärlek från communityt. Detta blev mitt val, då jag gärna vill kunna köra en IDP på min befintliga VPS tillsammans med mina andra tjänster.
Den enda begränsningen är att det enda som stöds är OIDC. SAML2 kan t ex vara en faktor för en del applikationer några år framöver, likaså LDAP. Det är därför en bra lösning för att lära sig bemästra alla vinklar av OIDC, men som kommer att kräva komplement för legacy-lösningar.