Auth-systemet består av många komponenter:
- Ett frontend-library som hanterar auth på hemsidan som använder vår auth (initiera login, refresha access-token)
- En frontend som visar alla login-skärmar mm
- En backend som faktiskt validerar någons identitet och har hand om alla nyklar.
- Ett backend-library som gör att man enkelt i olika backends kan extrahera den inloggade användaren och ta emot datan som auth backenden skickar när en användare loggar in på tjänsten.
Lite kort om systemet¶
- Hemsida = någon hemsidan som behöver verifiera identitet (typ https://teknologappen.se)
- Provider = ett sätt att logga in (LU, mail)
- hemsidan kan visa de providers den vill acceptera
- när användaren klickar en av dessa kommer den (oftast) till auth-frontenden.
Antingen genom att omdirigeras till den andra sidan eller genom att öppna en
iframe
(
iframeanvänds t.ex. i appen där vi inte kan dirigera om användaren till en annan hemsida) Här hämtas en del data som används för att verifiera användaren. - efter godkännande av att dela personuppgifter förs användaren tillbaka till ursprungssidan
- hemside-backenden har fått en POST-request av auth-backenden om användaren som precis loggade in, så hemside-backenden kan lägga in denne i sitt egna anvädarregister.
- hemside-frontenden hämtar en access-token m.h.a. frontend-libraryt från auth-backenden, och gör detta ungefär en gång i halvtimmen
- hemside-backenden kan nu validera att användaren är inloggad genom att titta
på access-tokenen och kryptografiskt verifiera att tokenen kommer från
auth-backenden. Detta sker genom backend-libraryt's
Userstruct.