Koppla din sajt till Aegis Central ID
Aegis är en identitetsleverantör som talar OpenID Connect (OIDC). Din sajt skickar användaren till oss, vi sköter lösenord och tvåfaktor, och skickar tillbaka användaren till din sajt med ett bevis på vem hen är.
Du behöver inte skriva någon inloggningskod. Du behöver tre saker:
| Vad | Varifrån | Exempel |
|---|---|---|
| Ett klient-id | Vi ger dig det, steg 1 | mixx-ailearn |
| En callback-adress | Du bestämmer den själv, steg 2 | https://din-sajt.se/callback |
| Ett OIDC-bibliotek | Finns redan i din stack, steg 3 | Microsoft.AspNetCore.Authentication.OpenIdConnect |
Räkna med tjugo minuter första gången. Har du en AI-assistent kan den göra kodningen åt dig — se Låt din AI göra det.
Vad du slipper bygga
Lösenordshantering, tvåfaktor, kontoåterställning, kontospärr, sessionshantering och granskningslogg. Det sker hos oss. Din applikation ser aldrig ett lösenord — bara resultatet av inloggningen.
Steg 1 — skapa en klient och hämta ditt klient-id
En klient är vad vi kallar din sajt. Den skapas i din arbetsyta:
- Registrera ett konto på login.aegiscentralid.se/account/register och bekräfta e-postadressen. Sätt upp tvåfaktor när du blir ombedd — det är obligatoriskt för alla.
- Skapa en arbetsyta på login.aegiscentralid.se/workspace/new. Det är ditt företag eller projekt; den kan ha flera klienter och flera administratörer. Namnet blir första halvan av ditt klient-id.
- Gå till Klienter — adressen är login.aegiscentralid.se/workspace/clients — och fäll ut Ny klient.
- Fyll i:
- Namn — vad användaren ser när hen loggar in, till exempel
AiLearn. - Callback-adresser — se steg 2. Du kan fylla i den nu eller lägga till den senare med Redigera.
- Scopes — låt förvalet stå.
profile,emailochtenant.roleär ibockade, och det är precis vad kodexemplen begär. - Publik klient — lämna urbockad om din sajt har en server (ASP.NET Core, Node, PHP, Python …). Bocka i bara för en ren webbsida utan backend eller en mobilapp.
- Namn — vad användaren ser när hen loggar in, till exempel
- Klicka Skapa klient.
Nu visas en ruta med rubriken Spara de här uppgifterna nu:
CLIENT_ID— ditt klient-id. Det byggs av arbetsytans namn och klientens namn, till exempelmixx-ailearn. Det är inte hemligt och det syns alltid i klientlistan efteråt.CLIENT_SECRET— klienthemligheten. Den visas en enda gång. Kopiera den till ett säkert ställe direkt. Tappar du bort den klickar du Byt hemlighet på klienten och får en ny — men då slutar alla befintliga inloggningar via den klienten att gälla.
I resten av dokumentationen står DITT-CLIENT-ID och DIN-CLIENT-SECRET där de
här två värdena ska in.
Steg 2 — bestäm din callback-adress
Det här är steget flest fastnar på, så här är det i klartext:
Callback-adressen är en sida på din egen sajt som inte finns än. Efter att användaren loggat in hos oss skickar vi hen tillbaka dit. Du behöver inte bygga sidan — OIDC-biblioteket i steg 3 skapar den själv när du talar om vilken adress det ska lyssna på. Du väljer bara namnet.
Välj den sökväg ditt ramverk redan förväntar sig, så slipper du konfigurera om:
| Din stack | Callback-adress att registrera |
|---|---|
| ASP.NET Core | https://din-sajt.se/signin-oidc (förvalet) eller valfritt, t.ex. https://din-sajt.se/callback |
Node med openid-client |
https://din-sajt.se/callback |
PHP med openid-connect-php |
https://din-sajt.se/callback.php |
| Python med Authlib | https://din-sajt.se/callback |
Ren webbsida med embed.js |
https://din-sajt.se/callback |
Byt din-sajt.se mot din riktiga domän. Samma sträng ska sedan stå på tre
ställen och vara identisk på alla tre:
- I klientens Callback-adresser hos oss (steg 1, eller via Redigera).
- I din konfiguration, som
CallbackPath/redirect_uri— se kodexemplen. - I det anrop din sajt gör när inloggningen startar. Biblioteket sköter det åt dig utifrån punkt 2.
Adressen måste matcha exakt, tecken för tecken: https, domän, sökväg,
skiftläge, och med eller utan avslutande snedstreck. …/callback och
…/callback/ är två olika adresser. Vi godtar inga jokertecken — det är
avsiktligt, eftersom slarvig matchning är den vanligaste vägen in i en
OIDC-integration.
Ska du utveckla lokalt lägger du till en rad till i klienten, till exempel
http://localhost:5046/callback. localhost är det enda som får använda http.
Steg 3 — installera OIDC-biblioteket
Du behöver inget bibliotek från oss. Varje stack har redan ett standardbibliotek för OpenID Connect; det är det du ska använda.
| Din stack | Paket | Installera med |
|---|---|---|
| ASP.NET Core | Microsoft.AspNetCore.Authentication.OpenIdConnect |
dotnet add package Microsoft.AspNetCore.Authentication.OpenIdConnect |
| Node | openid-client |
npm i openid-client |
| PHP | jumbojett/openid-connect-php |
composer require jumbojett/openid-connect-php |
| Python | authlib |
pip install authlib |
| Ren webbsida | embed.js från oss |
<script src="https://login.aegiscentralid.se/embed.js"> — inget att installera |
Biblioteket behöver veta var vi finns. Det talar du om med en enda adress,
som i konfigurationen heter Authority, issuer eller server_metadata_url
beroende på bibliotek:
https://login.aegiscentralid.se/
Från den adressen hämtar biblioteket självt vårt upptäcktsdokument
(/.well-known/openid-configuration) med alla ändpunkter och publika nycklar.
Du behöver aldrig skriva in de adresserna för hand.
Steg 4 — lägg in konfigurationen
Kopiera exemplet för din stack från Kodexempel och byt ut tre värden:
| I exemplet står | Byt mot |
|---|---|
DITT-CLIENT-ID |
CLIENT_ID från steg 1 |
DIN-CLIENT-SECRET |
CLIENT_SECRET från steg 1 — via miljövariabel eller User Secrets, aldrig i koden |
https://din-sajt.se/callback |
din callback-adress från steg 2 |
Allt annat i exemplen kan stå som det står.
Bygger du på ASP.NET Core finns en genomgång rad för rad, inklusive fallen där sajten redan har ASP.NET Core Identity eller en egen kakinloggning, i ASP.NET Core steg för steg.
Steg 5 — prova
Starta sajten och klicka på inloggningsknappen. Så här ska det se ut:
- Webbläsaren hoppar till
login.aegiscentralid.se. Sidan visar din klients namn. - Du loggar in med ditt Aegis-konto, anger engångskoden, och godkänner att din sajt får se ditt namn och din e-post (bara första gången).
- Webbläsaren hoppar tillbaka till din callback-adress, och därifrån vidare till din startsida — inloggad.
Blir det fel visas felet på vår sida om det är hos oss (till exempel att callback-adressen inte matchar), och i ditt biblioteks logg om det är hos dig. Varje fel du kan få står förklarat i Felsökning.
Om din sajt står bakom en omvänd proxy
Kör du Nginx, Nginx Proxy Manager, Traefik, Cloudflare eller liknande framför sajten — alltså att TLS avslutas någon annanstans än i din applikation — gäller två saker som annars ger obegripliga fel:
- Applikationen måste lita på proxyns
X-Forwarded-*-huvuden. Annars tror den att den kör påhttp://, bygger callback-adressen fel, och vi svarar att redirect-adressen inte matchar. I ASP.NET Core:UseForwardedHeadersmed proxyns adress iKnownProxies. - Spara inte tokens i kakan. ASP.NET Cores
SaveTokens = truelägger id-token och access token i inloggningskakan, som då blir större än de 4 kB många proxyer buffrar. Resultatet är en 502 direkt efter callbacken. SättSaveTokens = falseom du inte ska anropa ett API med token efteråt.
Vad du får tillbaka
Efter lyckad inloggning får din applikation tre saker:
| Token | Vad den är till för |
|---|---|
| ID-token | Vem användaren är. Biblioteket läser den, verifierar signaturen och skapar din sajts egen session. |
| Access token | Skickas med när din applikation anropar ett API som litar på Aegis. |
| Refresh token | Hämtar nya tokens utan att användaren behöver logga in igen. Kräver scopet offline_access. |
ID-token innehåller bland annat användarens namn, e-postadress, vilken arbetsyta hen valt och vilken roll hen har där. Se Scopes och anspråk.
Använd sub som nyckel i din egen databas, inte e-postadressen. sub är
användarens permanenta id och ändras aldrig; adressen kan bytas.