GuiderFöretag och övervakningErsätt Okta och Auth0

Keycloak eller authentik? Alternativ till Okta och Auth0 på egen server jämförda

Keycloak och authentik sida vid sida på samma server med Debian 13, med samma företagsuppsättning i båda, krav på tvåfaktor, lösenordsregler, spärr, återställning av lösenord via e-post och Outline anslutet via OpenID Connect för en enda grupp, och minnet, disken och arbetet var och en krävde, bredvid vad Okta, Auth0 och Entra ID kostar.

Testad på Keycloak 26.8.1 och authentik 2026.8.3 på Debian 13 (trixie) på en server hos Melonslab Uppdaterad 14 oktober 2026

Rekommenderad server för guiden

SSD RAID 1 · ECC DDR4 · 10 Gbit

VC-P Alloy · 2 vCPU · 8 GB Minne · 60 GB Lagring

Månadsvis, ingen bindningstid 7 dagars öppet köp

100 kr/mån

Beställ nu
På den här sidan

Okta, Auth0 och Microsoft Entra ID sköter företagets inloggning som en tjänst, med ett pris per användare. Keycloak och authentik gör samma jobb på en egen server: en inloggning med tvåfaktor för alla dina appar, via OpenID Connect eller SAML, utan pris per användare. Vi gav båda samma företagsuppsättning på samma server. Vad Okta, Auth0 och Entra ID kostar, och vad du ger upp när du lämnar dem, står mot slutet av sidan, hämtat från deras egna sidor.

Det korta svaret

Välj Keycloak om du vill ha hela företagsinloggningen direkt: lösenordsregler, spärr, lösenordshistorik och inloggningssidor och e-post på svenska finns inbyggt och gratis, den använde hälften så mycket minne och den har Apache 2.0-licens utan att något hålls tillbaka. Välj authentik om du vill ha det trevligare administrationsgränssnittet, enkel åtkomst per app via grupper och en inloggning framför appar som saknar egen, utan en extra tjänst, och kan leva med inloggningssidor bara på engelska och några funktioner bakom den betalda Enterprise-licensen.

Det här testade vi

Vi installerade båda på samma nya Melonslab VC-P Alloy (2 vCPU, 8 GB) med Debian 13 och följde våra guider Keycloak med rootless Podman och authentik med rootless Podman steg för steg, med wikin från Outline-guiden som appen att logga in i. De körde under var sin användare, bakom samma Caddy. Varje steg i båda guiderna fungerade som det stod skrivet.

Sedan gav vi båda samma uppsättning för ett företag:

  • en grupp, Staff, och tre användare: Anna och Erik i Staff, och Olle utanför;
  • en engångskod från en autentiseringsapp (TOTP) som krav för alla, som sätts upp vid första inloggningen;
  • lösenord på minst 12 tecken, och spärr efter fem misslyckade inloggningar;
  • en återställning av lösenordet via e-post som ändå frågar efter engångskoden och behåller autentiseringsappen;
  • Outline 1.11.0 anslutet via OpenID Connect, och bara Staff insläppta;
  • en app till utan egen inloggning, som fick en inloggning framför sig med Caddys forward_auth.

Vi loggade in i Outline som alla tre användarna i båda, provade fel koder och fel lösenord, återställde lösenord via e-post, startade om servern, mätte minnet och körde säkerhetskopieringen från varje guide och återställde den till en tom databas. Vi testade e-postmeddelandena med en testserver för e-post på samma maskin, inte via en riktig leverantör.

Siffrorna

Keycloak 26.8.1authentik 2026.8.3
Containrar2: Keycloak, PostgreSQL 183: server, worker, PostgreSQL 18
Minne i vila efter omstartomkring 480 MB (Keycloak 464, PostgreSQL 13)omkring 990 MB (server 681, worker 275, PostgreSQL 33)
Avbilder på disken0,79 GB1,68 GB
Databas efter testet72 MB91 MB
Från useradd till en fungerande inloggningssidaomkring 3 minuteromkring 7 minuter
Steg i vår guide1411
Företagsuppsättning i vår guideallt utom att begränsa en app till en gruppanvändare och en app; tvåfaktor är frivilligt, ingen e-post
Säkerhetskopia387 KB dump av databasen, 101 KB export av realmen5,8 MB dump av databasen, nyckeln och en tom mapp för uppladdningar
Inloggningssidor och e-post på svenskajanej
Inloggning framför appar utan SSOkräver oauth2-proxy, ett separat projektinbyggt
LicensApache 2.0MIT, med Enterprise-funktioner under betald licens

Minnet är summan av appens containrar, mätt med podman stats fem minuter efter en omstart. Keycloak-guiden begränsar Keycloak till 1,5 GB; authentik har ingen gräns. Keycloak var klar på under två minuter från att nedladdningen av avbilden började; authentik tog omkring fem, mest för att ladda ner sin avbild på 1,37 GB och sätta upp databasen, och väntar sedan på att administratörskontot skapas i webbläsaren.

Installation

Keycloaks guide gör nästan hela företagsuppsättningen själv. Den tillfälliga administratören byts ut från kommandoraden innan Keycloak finns på internet, administrationskonsolen nås bara genom en SSH-tunnel, och ett enda kcadm-kommando skapar företagets realm med lösenordsregler, spärr, svenska och återställning av lösenord påslaget. Tvåfaktor för alla och en återställning som behåller den andra faktorn kräver var sin kopia av ett inloggningsflöde, som guiden går igenom i konsolen.

authentiks guide är kortare och äldre, och slutar efter användare och en app. Dess första sida för installationen ligger på den publika adressen tills du fyller i den, så gör det direkt. Resten av vår uppsättning lade vi till själva, utifrån authentiks dokumentation:

  • Tvåfaktor för alla: i steget default-authentication-mfa-validation sätter du Not configured action till att tvinga fram en app, med default-authenticator-totp-setup som steg för att sätta upp den. Användare utan app sätter då upp en vid nästa inloggning.
  • E-post: fem AUTHENTIK_EMAIL__-inställningar i authentik.env, med lösenordet som en hemlighet i Podman.
  • Återställning av lösenord: authentik har ett exempel, "Recovery with email and MFA verification", som du använder under Customization > Blueprints. Sedan väljer du det flödet som återställningsflöde i inloggningens identifieringssteg, så att Forgot username or password? syns, och för varumärket (brand). Vi satte också dess MFA-steg till att tvinga fram en app, så att en ny användare som sätter sitt lösenord via en länk i e-post också måste lägga till en autentiseringsapp.
  • Lösenordsregler: höj längden i default-password-change-password-policy och lägg till den på lösenordsfrågan i återställningsflödet.
  • Spärr: en reputation policy och ett deny-steg, se nedan.

Ingen av dem har en snabb väg för allt: i Keycloak ligger arbetet i flöden, i authentik i flöden, steg och policyer som kopplas ihop. Båda har ett komplett API för administration; vi gjorde företagsinställningarna via Keycloaks kcadm och authentiks API, och kontrollerade skärmarna i båda administrationsgränssnitten.

Tvåfaktor, lösenord och spärr

Båda krävde en engångskod av varje användare och nekade en felaktig. Skillnaderna låg i detaljerna.

Keycloakauthentik
Lösenordets längdlength(12)längd i lösenordspolicyn, plus en kontroll av styrkan (zxcvbn)
Inte användarnamnet eller e-postadresseninbyggtinte som regel; styrkekontrollen fångar en del
Inte ett av de senaste lösenordeninbyggtbara Enterprise: "Enterprise is required to create/update this object"
Tillfälligt lösenord, byts vid första inloggningenjanej; du skickar användaren en länk med e-post för att sätta sitt eget
Spärrinbyggd, per konto, från 1 upp till 15 minuteren reputation policy och ett deny-steg, som du lägger till

Keycloaks spärr fungerade som guiden säger: efter fem misslyckade inloggningar nekades rätt lösenord, med samma "Invalid username or password" som för ett fel lösenord, och spärren släppte av sig själv. Felaktiga engångskoder räknades också.

authentik avbryter en inloggning efter fem fel lösenord, men du kan börja en ny direkt. För att spärra ett konto lade vi till en reputation policy som kontrollerar användarnamnet, med gränsen −5, och kopplade den till ett deny-steg före lösenordssteget i inloggningsflödet. Efter fem misslyckanden nekades även rätt lösenord, med vårt meddelande. Felaktiga engångskoder sänker också poängen. Spärren gäller tills poängen går ut, efter 24 timmar som standard, om inte en administratör tar bort användarens poäng. Två fällor: med policyn negerad, som man lätt gissar, spärrades alla, eftersom policyn slår till när poängen är dålig; och poängen gäller användarnamnet från alla adresser, så precis som i Keycloak kan vem som helst spärra ute en person.

Återställning av lösenord via e-post

Båda skickade en länk, frågade efter engångskoden, tog emot ett nytt lösenord och behöll autentiseringsappen.

  • Keycloaks e-post kom på svenska, "Återställ lösenord", till en användare som såg inloggningssidan på svenska.
  • authentiks e-post hade ämnet "authentik", på engelska, och länken öppnade en sida där användaren först fick bekräfta med Continue.

Anslut Outline

Båda fungerade via OpenID Connect, och Outline kopplade den befintliga administratören till den nya inloggningen via e-postadressen.

Keycloak behövde bara klienten från sin guide.

authentik behövde en sak som guiden inte nämner: dess standardmappning för e-post skickar email_verified: false, och Outline nekade alla med "Your email address has not been verified by authentik". Vi lade till en scope mapping för email som returnerar email_verified: true, och bytte in den på Outlines provider. Outlines OIDC_LOGOUT_URI blir då https://auth.example.com/application/o/outline/end-session/.

Begränsa en app till en grupp

Här var skillnaden störst i det dagliga arbetet.

authentik: lägg till en koppling (binding) till gruppen Staff på applikationen. Olle fick "Permission denied" efter inloggningen, och fick det fortfarande efter att ha återställt sitt lösenord via e-post.

Keycloak har ingen sådan inställning för appar med OpenID Connect. Vi gav Outlines klient en roll, access, gav den rollen till gruppen Staff och byggde ett eget inloggningsflöde för Outline, med ett steg som kontrollerar rollen och ett Deny access-steg, inställt som klientens webbläsarflöde. Olle fick då "Access denied". Men återställningen av lösenord använder realmens flöde, inte klientens, och när Olle återställde sitt lösenord från Outlines inloggningssida hamnade han i Outline. Vi stängde det genom att lägga till samma kontroll i återställningsflödet, begränsad till Outline med ett client scope som bara Outline har. Begränsar du appar per grupp i Keycloak, testa vägen via återställning också.

Appar utan enkel inloggning

Många interna verktyg saknar egen inloggning. Båda kan ställa en inloggning framför dem med Caddys forward_auth, och båda fungerade med vår testapp: Erik släpptes in och Olle hölls ute.

  • authentik har det inbyggt. En Proxy Provider i läget Forward auth (single application), tillagd i den inbyggda outposten som körs i authentiks server, och ett Caddy-block som skickar /outpost.goauthentik.io/* till authentik och kontrollerar alla andra anrop med forward_auth. Kopplingar till grupper fungerar som för vilken app som helst. Inget extra körs.
  • Keycloak behöver ett separat program. Vi använde oauth2-proxy 7.15.5, en egen container med en klient i Keycloak, en hemlighet för kakan och ett Caddy-block som skickar /oauth2/* till den och skickar vidare till dess inloggningssida vid 401. Den använde omkring 10 MB minne och 46 MB disk. Två inställningar var inte självklara: dess Keycloak-provider ber om ett groups-scope som Keycloak inte har, så sätt --scope="openid email profile", och för att begränsa till en grupp behövs en gruppmappning på klienten och --allowed-group=/Staff.

Andra protokoll och passkeys

Det här testade vi inte; så här står det i projektens aktuella dokumentation och administrationsgränssnitt.

  • SAML 2.0: båda, för appar som loggar in med SAML.
  • LDAP: Keycloak läser användare från en befintlig LDAP-server eller Active Directory, men fungerar inte som LDAP-server för appar. authentik kan båda; en app som bara kan LDAP kan logga in mot authentik via en LDAP-outpost, som körs som en egen container.
  • SCIM: Keycloak 26.8 har ett SCIM-API, med fullt stöd och påslaget som standard, så att ett annat system kan skapa användare och grupper i Keycloak. authentiks SCIM-provider gör tvärtom: den skapar dina användare och grupper i andra appar.
  • Dessutom i authentik: RADIUS, och fjärrskrivbord och SSH i webbläsaren.
  • Passkeys: båda. Keycloaks passkeys-funktion är påslagen som standard; i authentik lägger användarna till en WebAuthn-enhet under sina egna inställningar. Vår tvåfaktor använde engångskoder i båda.

Svenska

Keycloak finns översatt till svenska: inloggningssidorna, kontosidan och e-posten. Med svenska i realmens lista fick vår webbläsare på svenska "Logga in till ditt konto", och det för korta lösenordet nekades med "Ogiltigt lösenord. minsta längd är 12."

authentik 2026.8.3 har ingen svenska. Språkmenyn har 19 språk, bland dem finska och norskt bokmål, och vår svenska webbläsare fick engelska. Du kan döpa om flöden och sätta egna texter på vissa steg, men knappar och meddelanden stannar på engelska.

Administration

Keycloaks konsol är komplett och tät: realms, klienter, flöden, roller, grupper och många inställningar för varje. Vår guide håller den borta från internet, bakom en SSH-tunnel, så du öppnar en tunnel innan du jobbar. Misslyckade inloggningar hittar du i loggen med journalctl.

authentiks administrationsgränssnitt är renare, med en guide som skapar en app och dess provider på en gång, en översikt och en händelselogg med varje besökares adress och land. Det ligger på samma publika adress som inloggningen, skyddat av administratörens egen inloggning och, med vår uppsättning, en engångskod. Flöden, steg och policyer är kraftfulla men tar tid att förstå; uppsättningarna ovan, utom gruppkopplingen, rörde tre eller fyra objekt var.

Resurser

Keycloak är en Java-app och behöver det mesta av sitt minne från början, omkring 465 MB här. authentik kör en server och en separat worker för bakgrundsjobb, som tillsammans använde omkring 960 MB. Båda använde långt mindre än de 8 GB som en VC-P Alloy har, och de två tillsammans, med Outline, använde omkring 2,4 GB av serverns minne. authentiks avbild var omkring tre gånger så stor som Keycloaks.

Uppdateringar och säkerhetskopior

Keycloaks guide följer taggen 26.8, så rättningar installeras av sig själva; en ny version, som 26.9, kommer med några månaders mellanrum och du går över genom att byta tagg efter att ha läst uppgraderingsguiden. Varje start tar ungefär en minut.

authentiks guide följer 2026.8 på samma sätt, och en ny version kommer ungefär var tredje månad, namngiven efter år och månad. Du måste uppgradera en version i taget och kan inte gå tillbaka.

Båda säkerhetskopiorna är en dump av databasen. Keycloaks guide lägger till en export av realmen som du kan importera i en annan Keycloak; authentiks lägger till den hemliga nyckeln och mappen för uppladdningar. Vi återställde båda till en tom databas, och användare, autentiseringsappar och appar kom tillbaka; båda startade också igen av sig själva efter en omstart. Två saker att tänka på:

  • Båda guiderna läser in dumpen direkt efter att databasen startat, och när databasen startar, startar resten av podden också. Keycloak tar så lång tid att starta att dumpen hann in först. authentiks server startade direkt och skapade egna tabeller, och återställningen misslyckades med "multiple primary keys". Att stoppa servern och workern innan dumpen läses in löste det: systemctl --user stop authentik-server authentik-worker.
  • authentiks guide saknar steg för återställning, och dess säkerhetskopior, även den hemliga nyckeln, går att läsa för andra användare på servern om du inte kör umask 077 först, som Keycloaks guide gör. Själva hemmappen är stängd för andra på Debian 13.

Licens och kostnad

Vi läste licenstexterna, prissidan och dokumentationen den 14 oktober 2026.

  • Keycloak är öppen källkod under Apache 2.0-licensen, ett projekt inom Cloud Native Computing Foundation. Allt finns i gratisversionen. Red Hat säljer en version med support, Red Hat build of Keycloak, bara som en del av andra abonnemang som Red Hat Runtimes och OpenShift; den har inget eget pris.
  • authentik görs av Authentik Security Inc. i USA. Koden är under MIT-licensen, utom mappen authentik/enterprise/, vars licens bara tillåter användning i drift med ett Enterprise-abonnemang. Båda finns i samma avbild. Enterprise kostar 5 US-dollar per intern användare och månad, eller 0,02 dollar per extern användare, med årsbetalning; Enterprise Plus börjar på 20 000 dollar om året. Enterprise lägger bland annat till lösenordshistorik, användare till Google Workspace och Microsoft Entra ID, inloggning med certifikat, utökad loggning, schemalagd avveckling av användare, och support för abonnemang över 1 000 dollar. Gratisversionen har ingen support utöver communityn.

För ett företag som kör inloggningen för sin egen personal kostar båda ingenting. Med Keycloak når du aldrig en betald funktion; med authentik kan du göra det, och lösenordshistorik var den vi stötte på.

Okta, Auth0 och Entra ID i dag

Det här kommer från Oktas, Auth0:s och Microsofts egna sidor, inte från våra tester: vi registrerade oss inte hos någon av dem. Okta och Auth0 visar priserna i dollar, Microsofts svenska sida i kronor.

Tjänst och abonnemangPrisGränser för ett litet företag
Okta Workforce Identity, Starter6 dollar per användare och månad, årsfaktureringminst 1 500 dollar om året, priset för ungefär 21 användare
Okta Workforce Identity, Essentials17 dollar per användare och månad, årsfaktureringsamma lägsta belopp
Auth0, Free0 dollarupp till 25 000 aktiva användare i månaden, 1 företagsanslutning, ingen Pro- eller Enterprise-MFA, loggar sparas 1 dag
Auth0 B2B, Essentialsfrån 150 dollar i månaden för 500 aktiva användare i månadenPro-MFA, 3 företagsanslutningar, loggar sparas 5 dagar
Microsoft Entra ID Freeingår i Microsoft 365 och Azuretvåfaktor via standardinställningarna för säkerhet (security defaults), ingen villkorsstyrd åtkomst (Conditional Access)
Microsoft Entra ID P166,90 kr per användare och månad, betalas årsvis, årligt åtagandevillkorsstyrd åtkomst; ingår i Microsoft 365 Business Premium
Microsoft Entra ID P295,60 kr per användare och månad, betalas årsvis, årligt åtagandelägger till ID Protection, med inloggningsregler efter risk

Källor: Oktas prissida, Auth0:s prissida, Microsoft Entras prissida och Microsofts sida om licenser för Entra, alla kontrollerade 2026-10-14.

De är inte samma sorts tjänst. Okta Workforce Identity och Entra ID är inloggning för personalen, med pris per användare, som uppsättningen vi testade. Auth0 är främst till för inloggningen i din egen produkt, för dina kunder, med pris per aktiv användare och månad. Keycloak och authentik klarar det också, men det testade vi inte.

Om företaget redan arbetar i Microsoft 365 har du redan Entra ID Free, och Microsoft 365 Business Premium innehåller P1, enligt Microsofts sida om licenser. Då gör Keycloak eller authentik mest nytta för apparna utanför Microsoft. Att låta dem sköta själva inloggningen i Microsoft 365 har vi inte testat.

Det här ger du upp jämfört med Okta, Auth0 och Entra ID

Med en egen server kostar inloggningen ett fast pris för servern i stället för per användare, användarlistan stannar i Sverige, och ingen kan ändra ditt abonnemang åt dig. Men var ärlig om vad du lämnar:

  • Drifttid och jour. När inloggningen ligger nere kommer ingen in i någon app bakom den. Oktas sida om förtroende visade en tillgänglighet på 99,99 % under tolv månader, räknat på störningar som drabbade minst 10 % av kunderna (kontrollerat 2026-10-14). Vår uppsättning är en server: båda apparna startade igen av sig själva efter en omstart, men om servern stannar på natten måste någon av er märka det och laga det. Ha en väg in i de viktigaste apparna som inte går via inloggningen.
  • Appar för inloggning. Vi testade engångskoder från valfri autentiseringsapp, i båda. Tjänsterna har egna: Entra ID:s standardinställningar för säkerhet frågar via Microsoft Authenticator, enligt Microsofts sida om licenser. Båda projekten listar passkeys, som vi inte testade.
  • Färdiga integrationer. Okta listar "more than 8,000 ready-to-use, pre-built integrations" i sitt integrationsnätverk (kontrollerat 2026-10-14). Med Keycloak eller authentik ansluter du varje app själv, som vi gjorde med Outline, och varje apps egenheter, som mappningen av email_verified ovan, får du hitta själv. Att skapa användare automatiskt i Google Workspace eller Entra ID ingår i authentiks Enterprise-licens.
  • Rapporter för regelefterlevnad. Oktas säkerhetssida listar SOC 2, ISO/IEC 27001:2022, FedRAMP High och fler (kontrollerat 2026-10-14). Din egen inloggningsserver har ingen sådan rapport: när en kund eller revisor frågar svarar du med dina egna rutiner för uppdateringar, säkerhetskopior, åtkomst och loggar.
  • Support. Keycloak har hjälp från communityn, eller Red Hats version som en del av andra abonnemang hos Red Hat. authentik har support i Enterprise-abonnemang över 1 000 dollar om året.

Vilken ska du välja

Keycloak passar ett företag som vill ha en inloggning med de säkerhetsregler som revisorer frågar efter, på svenska, utan kostnad. Dess guide täcker hela uppsättningen vi testade: tvåfaktor för alla, lösenordsregler med historik, en spärr som släpper av sig själv, en återställning som behåller den andra faktorn och inloggningssidor och e-post på svenska. Den använde omkring 480 MB. Dess svagheter är en tät konsol, flöden som kräver noggrannhet att ändra, inget enkelt sätt att begränsa en app till en grupp, där även återställningen måste kontrolleras, och en separat oauth2-proxy för appar utan enkel inloggning. Följ Keycloak-guiden, på en VC-P Alloy.

authentik passar ett team som vill ansluta många appar snabbt, även verktyg utan egen inloggning, och styra åtkomsten per app med grupper. Dess administrationsgränssnitt är det lättare att hitta i, och appar som bara kan LDAP eller RADIUS kan också använda den. Dess svagheter är att svenska saknas, ingen inbyggd spärr eller tillfälliga lösenord, lösenordshistorik bara i Enterprise, en standardinställning som Outline nekar tills du ändrar e-postmappningen, dubbelt så mycket minne och en guide från oss som täcker mindre: räkna med de extra stegen ovan. Följ authentik-guiden, på en VC-P Alloy.

Tillsammans använde de under 1,5 GB, så en VC-P Alloy kör vilken som helst av dem gott och väl bredvid dina andra appar.

Kör det på din egen server

SSD RAID 1 · ECC DDR4 · 10 Gbit

VC-P Alloy

100 kr/mån

vCPU
2
Minne
8 GB
Lagring
60 GB
Trafik
10 TB
Performance
SSD · RAID 1
  • Full root-åtkomst
  • Nativt /64 IPv6
  • RAID-skyddad lagring
  • Malmö, Sverige
  • Månadsvis, ingen bindningstid
  • 7 dagars öppet köp
Alla guider