Säkerhet för mikrotjänster och API Gateway
Säkra mikrotjänstarkitekturer och API Gateway med OAuth2 för auktorisering och tokenvalidering vid kanten.
Säkerhet för mikrotjänster och API Gateway är en gratis lektion i OAuth2 och OpenID Connect på djupet på CoddyKit. Detta är lektion 2 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.
Grunderna i mikrotjänster och gateway
Moderna applikationer använder ofta mikrotjänster: små, fristående tjänster som kommunicerar över ett nätverk. Detta tillvägagångssätt ger flexibilitet och skalbarhet.
En API Gateway fungerar som en enda ingångspunkt för alla klientförfrågningar och dirigerar dem till rätt mikrotjänst. Den fungerar som en trafikpolis för era API:er.
Centralisera säkerheten vid kanten
I en mikrotjänstarkitektur kan ni ha dussintals eller hundratals tjänster. Att säkra var och en individuellt kan vara komplext och leda till fel.
En API Gateway är en idealisk plats för att centralisera gemensamma säkerhetsfrågor, till exempel autentisering och inledande auktorisering. Detta kallas ofta "security at the edge".
OAuth2 för distribuerad auktorisering
OAuth2 passar mikrotjänster väl eftersom det tillhandahåller ett standardiserat sätt att utfärda och validera åtkomsttoken. Dessa token är autentiseringsuppgifter som representerar en användares behörighet att få åtkomst till resurser.
När en klient begär en resurs hämtar den först en åtkomsttoken från en auktoriseringsserver. Därefter skickas denna token till API Gateway.
Gateway som verkställighetspunkt
API Gateway fungerar som en Policy Enforcement Point (PEP). Den fångar upp inkommande förfrågningar och utför viktiga säkerhetskontroller innan de vidarebefordras till mikrotjänsterna i backend.
Dess främsta säkerhetsuppgift är att validera den inkommande OAuth2-åtkomsttoken. Om token är ogiltig, har gått ut eller saknas avvisar gatewayen förfrågan.
Steg för tokenvalidering
När en förfrågan når API Gateway med en åtkomsttoken ser valideringsförloppet vanligtvis ut så här:
- Kontrollera att token finns: Finns det en
Authorization: Bearer-header? - Validera formatet: Är det en korrekt formaterad JWT?
- Verifiera signaturen: Är token signerad av den betrodda auktoriseringsservern?
- Kontrollera giltighetstiden: Är token fortfarande aktiv (har den inte gått ut)?
- Validera utfärdare och målgrupp: Kommer den från rätt utfärdare och är den avsedd för denna resurs?
- Kontrollera scope: Har token de nödvändiga behörigheterna (scopes) för den begärda åtgärden?
Logik för tokenvalidering i gatewayen
Här ser ni konceptuellt hur en API Gateway kan validera en inkommande JWT-åtkomsttoken. Denna logik körs innan någon förfrågan når era mikrotjänster.
/* Pseudo-code for API Gateway Token Validation */
function validateAccessToken(request) {
const token = extractToken(request.headers);
if (!token) {
return deny("Missing token");
}
try {
const decodedToken = decodeJwt(token); // Header.Payload.Signature
const publicKey = getPublicKey(decodedToken.header.kid); // From JWKS endpoint
if (!verifySignature(token, publicKey)) {
return deny("Invalid signature");
}
if (decodedToken.payload.exp < currentTime()) {
return deny("Token expired");
}
if (decodedToken.payload.iss !== "your-auth-server") {
return deny("Untrusted issuer");
}
if (!checkScopes(decodedToken.payload.scope, request.path)) {
return deny("Insufficient scopes");
}
// Token is valid, attach claims for downstream
request.context.userClaims = decodedToken.payload;
return allow();
} catch (error) {
return deny("Token processing error");
}
}Vidarebefordra användaridentitet
När API Gateway har validerat en åtkomsttoken behöver den ofta vidarebefordra användarens identitet och auktoriseringskontext till de nedströmsliggande mikrotjänsterna.
Detta görs vanligtvis genom att relevanta claims från den validerade token (t.ex. användar-ID, roller och specifika behörigheter) läggs till i anpassade HTTP-headers eller i en ny intern token innan förfrågan vidarebefordras.
Auktorisering mellan mikrotjänster
Men vad händer när mikrotjänster behöver kommunicera direkt med varandra, utan att en användare är involverad? Detta kallas auktorisering mellan tjänster.
- Client Credentials Flow: Tjänster kan använda sitt eget client ID och client secret för att hämta en åtkomsttoken från auktoriseringsservern.
- mTLS (Mutual TLS): Ett annat alternativ är att använda ömsesidig Transport Layer Security, där både klienten och servern presenterar certifikat för att autentisera varandra.
Finmaskig auktorisering
Även om API Gateway hanterar den inledande auktoriseringen kan enskilda mikrotjänster behöva utföra mer detaljerade kontroller baserat på den specifika resurs som används.
En tjänst för "användarprofiler" kan till exempel kontrollera om den autentiserade användaren begär sin egen profil eller har rollen "admin" och därför får visa vilken profil som helst. Detta använder de claims som vidarebefordrats från gatewayen.
Gatewayens säkerhetsroll
API Gateway spelar en avgörande roll för att säkra mikrotjänster.
Sammanfattning: mikrotjänstsäkerhet
I den här lektionen gick vi igenom hur mikrotjänster säkras med OAuth2 och en API Gateway.
- API Gateway fungerar som en central Policy Enforcement Point för inledande tokenvalidering.
- Den vidarebefordrar validerade identitetsclaims till nedströmsliggande tjänster.
- Vi berörde även auktorisering mellan tjänster och finmaskig auktorisering i enskilda mikrotjä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 ”Säkerhet för mikrotjänster och API Gateway” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen OAuth2 och OpenID Connect på djupet, inklusive ”Säkerhet för mikrotjänster och API Gateway”, 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 ”Säkerhet för mikrotjänster och API Gateway”?
Säkra mikrotjänstarkitekturer och API Gateway med OAuth2 för auktorisering och tokenvalidering vid kanten. 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 2 av 4.
Hur lång tid tar lektionen ”Säkerhet för mikrotjänster och API Gateway”?
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
- Integrering med identitetsleverantörer
- Säkerhet för mikrotjänster och API Gateway
- Multifaktorautentisering (MFA)
- Single Sign-On mellan applikationer