Utloggning via front channel och back channel
Jämför strategier för utloggning via front channel och back channel för effektiv sessionsavslutning hos olika klienter.
Utloggning via front channel och back channel är en gratis lektion i OAuth2 och OpenID Connect på djupet på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för OAuth2 och OpenID Connect på djupet, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i OAuth2 och OpenID Connect på djupet innehåller totalt 4 lektioner.
Logga ut i OIDC
När ni loggar ut från en applikation kan det verka enkelt. Ni klickar på en knapp och är utloggade. Men i system som använder OpenID Connect (OIDC) eller OAuth2 är det mer komplext.
En användare har ofta en session hos Identity Provider (IdP) och eventuellt flera klientapplikationer. En fullständig utloggning innebär att alla dessa relaterade sessioner avslutas.
Utmaningen med Single Logout
Single Logout (SLO) syftar till att logga ut en användare från alla anslutna applikationer när användaren påbörjar utloggningen från en enda av dem. Det låter bra, eller hur?
Utmaningen är att säkerställa att alla klienter, eventuellt på olika domäner, på ett tillförlitligt sätt tar emot och agerar på utloggningsbegäran från Identity Provider (IdP). Det är inte alltid enkelt.
Grunderna i Front-Channel Logout
Front-Channel Logout är en webbläsarbaserad metod. När en användare loggar ut använder IdP:n användarens webbläsare för att kommunicera med varje klientapplikation.
Se det som att IdP:n säger till webbläsaren: ”Hej, be de här andra apparna att logga ut också!” Webbläsaren skickar sedan förfrågningar till klienternas utloggnings-endpoints.
Så fungerar Front-Channel Logout
Så här fungerar Front-Channel Logout vanligtvis:
- Användaren påbörjar utloggningen (till exempel genom att klicka på ”Logga ut”).
- IdP:n tar emot utloggningsbegäran.
- IdP:n omdirigerar användarens webbläsare till en särskild utloggningssida hos IdP:n.
- Sidan innehåller dolda
<iframe>-element som vart och ett pekar på en registrerad klients utloggnings-URI. - Webbläsaren läser in dessa iframes, vilket får varje klient att rensa sin lokala session.
Front-Channel: Fördelar och nackdelar
Front-Channel Logout är enkelt men har vissa begränsningar:
- Fördelar:
- Relativt enkelt för IdP:n att implementera.
- Fungerar bra för klienter som enbart är webbläsarbaserade.
- Nackdelar:
- Mindre tillförlitligt: Kan blockeras av webbläsarinställningar (till exempel tredjepartscookies och popup-blockerare).
- Är beroende av att användarens webbläsare är aktiv.
- Fungerar inte för klienter som inte använder webbläsare (till exempel mobilappar och backendtjänster).
Introduktion till Back-Channel Logout
Back-Channel Logout använder en annan och mer robust metod. I stället för att förlita sig på användarens webbläsare kommunicerar Identity Provider (IdP) direkt med varje klients backendserver.
Detta är en server-till-server-interaktion, vilket gör metoden mer tillförlitlig och lämplig för fler typer av klienter, särskilt sådana med sessioner på serversidan.
Så fungerar Back-Channel Logout
Så här ser den typiska sekvensen för Back-Channel Logout ut:
- Användaren påbörjar utloggningen.
- IdP:n tar emot utloggningsbegäran och ogiltigförklarar sin egen session.
- IdP:n skickar sedan en HTTP
POST-förfrågan till varje registrerad klients back-channel logout URI. - Denna POST-förfrågan innehåller en signerad Logout Token (en JWT).
- Varje klients server validerar Logout Token och avslutar användarens lokala session.
Back-Channel: Fördelar och nackdelar
Back-Channel Logout är mer tillförlitligt men kräver mer konfiguration:
- Fördelar:
- Mycket tillförlitligt: Är inte beroende av webbläsarens tillstånd eller användarinteraktion.
- Fungerar för alla klienttyper (webb, mobil och backendtjänster).
- Idealiskt för klienter som hanterar användarsessioner på serversidan.
- Nackdelar:
- Kräver att klienterna exponerar en särskild utloggnings-endpoint.
- Mer komplext att implementera säkert (till exempel genom att validera Logout Token).
- Risk för nätverksproblem mellan IdP:ns och klienternas servrar.
Välj er utloggningsstrategi
När ni väljer mellan front-channel- och back-channel-utloggning bör ni ta hänsyn till era klienttyper och krav på tillförlitlighet:
- För enkla, helt webbläsarbaserade klienter där enstaka misslyckade utloggningar kan accepteras kan Front-Channel vara tillräckligt.
- För robusta applikationer, särskilt sådana med sessioner på serversidan, mobilappar eller API:er, är Back-Channel vanligtvis det föredragna och säkrare alternativet.
- Många moderna system föredrar back-channel på grund av dess tillförlitlighet.
Snabb kontroll: Utloggningsflöden
Låt oss kontrollera er förståelse av egenskaperna hos front-channel- och back-channel-utloggning.
Sammanfattning: Effektiv utloggning
I den här lektionen har vi gått igenom det viktiga ämnet single logout i OIDC- och OAuth2-system. Vi har lärt oss om två huvudsakliga strategier:
- Front-Channel Logout: Webbläsarbaserat och enklare, men mindre tillförlitligt.
- Back-Channel Logout: Server-till-server, mer robust och idealiskt för olika klienttyper och sessioner på serversidan.
Genom att förstå dessa flöden blir det lättare att utforma säkra och användarvänliga autentiseringssystem där sessioner avslutas korrekt i alla anslutna tjänster.
Lär dig OAuth2 och OpenID Connect på djupet med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Utloggning via front channel och back channel” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen OAuth2 och OpenID Connect på djupet, inklusive ”Utloggning via front channel och back channel”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i OAuth2 och OpenID Connect på djupet innehåller totalt 4 lektioner.
Vad lär jag mig i ”Utloggning via front channel och back channel”?
Jämför strategier för utloggning via front channel och back channel för effektiv sessionsavslutning hos olika klienter. Ni övar på OAuth2 och OpenID Connect på djupet med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig OAuth2 och OpenID Connect på djupet?
Du behöver inga förkunskaper. Utbildningen i OAuth2 och OpenID Connect på djupet på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Utloggning via front channel och back channel”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här OAuth2 och OpenID Connect på djupet-lektionen?
Ja. Varje OAuth2 och OpenID Connect på djupet-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Samtycke och användarupplevelse
- Cross-Origin Resource Sharing (CORS)
- Utloggning via front channel och back channel
- Tokens bundna till avsändaren med mTLS