Dekoding og validering av JWT-tokens
Lær hvordan ressursserveren automatisk dekoderer og validerer JWT-tokens utstedt av en autorisasjonsserver.
Dekoding og validering av JWT-tokens er en gratis leksjon i Spring Security 6 og JWT-autentisering på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Spring Security 6 og JWT-autentisering, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Spring Security 6 og JWT-autentisering inneholder totalt 4 leksjoner.
Resource Server og JWT-er
Velkommen til denne leksjonen! Vi skal utforske hvordan en Spring Security OAuth2 Resource Server automatisk håndterer JSON Web Tokens (JWT-er).
Du vil lære om dekodings- og valideringsprosessene som beskytter API-endepunktene dine.
Resource Servers rolle
En Resource Server er en applikasjon som tilbyr beskyttede ressurser (for eksempel API-endepunkter eller data), og som må kontrollere hvem som forsøker å få tilgang til dem.
Den er avhengig av en Authorization Server for å utstede tokens (for eksempel JWT-er) som gir tilgang. Resource Server validerer deretter disse tokenene.
Motta JWT-er i forespørsler
Når en klient vil ha tilgang til en beskyttet ressurs, sender den JWT-et i Authorization-headeren i HTTP-forespørselen. Dette gjøres vanligvis ved hjelp av Bearer Token-skjemaet.
- Bearer Token: En legitimasjon som gir tilgang til alle som har den.
Resource Server henter ut dette tokenet for behandling.
Automatisk behandling av JWT-er
Når du konfigurerer en Spring Boot-applikasjon som en OAuth2 Resource Server, håndterer Spring Security mye av behandlingen av JWT-er automatisk for deg.
Den oppdager Bearer-tokenet i headeren og starter sin interne dekodings- og valideringsprosess.
Dekode tokenet
Det første trinnet er å dekode JWT-et. Et JWT består av tre deler: Header, Payload og Signature, adskilt med punktum.
Dekoding betyr å analysere den base64-kodede Header-en og Payload-en til lesbar JSON. Dette trinnet bekrefter ikke tokenets ekthet ennå; det gjør bare innholdet lesbart.
Valideringsprosessen
Etter dekodingen utfører Resource Server viktige valideringskontroller for å sikre at JWT-et er ekte og ikke har blitt manipulert. Disse kontrollene omfatter:
- Signature Verification: Er tokenet ekte?
- Expiration (
exp): Er tokenet fortsatt gyldig? - Not Before (
nbf): Er tokenet aktivt ennå? - Issuer (
iss): Ble det utstedt av forventet Authorization Server? - Audience (
aud): Er det ment for denne Resource Server?
Bekrefte signaturen
Signaturbekreftelse er det viktigste trinnet. Den sikrer tokenets integritet og ekthet.
Resource Server bruker den offentlige nøkkelen som Authorization Server har levert (eller en delt hemmelighet for symmetriske algoritmer) til å beregne signaturen på nytt og sammenligne den. Hvis de ikke samsvarer, avvises tokenet.
Grensesnittet `JwtDecoder`
Spring Security bruker grensesnittet JwtDecoder til å dekode et JWT og bekrefte signaturen. Det tar imot den rå JWT-strengen og returnerer et Jwt-objekt som inneholder de dekodede headerne og claims.
Den vanligste implementasjonen for JWS-token (JSON Web Signature) er NimbusJwtDecoder.
Konfigurere Resource Server
For å aktivere denne automatiske dekodingen og valideringen konfigurerer du Spring Boot-applikasjonen som en OAuth2 Resource Server. Vanligvis oppgir du issuer URI eller JWK Set URI for Authorization Server.
Spring Security henter deretter de offentlige nøklene som trengs for å bekrefte innkommende JWT-er.
@Configuration
@EnableWebSecurity
public class ResourceServerConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.anyRequest().authenticated()
)
.oauth2ResourceServer(oauth2 -> oauth2
.jwt(jwt -> jwt
.jwkSetUri("http://localhost:9000/.well-known/jwks.json") // Or issuerUri
)
);
return http.build();
}
}Fra JWT til Authentication-objekt
Når et JWT er dekodet og validert, konverterer Spring Security claimene til et Authentication-objekt, vanligvis et JwtAuthenticationToken.
Dette objektet lagres deretter i Security Context, slik at brukerens principal (identiteten deres) og tildelte authorities (tillatelser) er tilgjengelige i hele applikasjonen.
Valideringskontroller for JWT
La oss kontrollere forståelsen din av JWT-validering. En Spring Security OAuth2 Resource Server utfører flere viktige kontroller for å sikre at et JWT er gyldig og pålitelig.
Oppsummering og neste steg
Du har lært hvordan en Spring Security OAuth2 Resource Server automatisk dekoderer og validerer JWT-er!
- Du har lært om Resource Servers rolle i beskyttelsen av ressurser.
- Du har utforsket hvordan JWT-er mottas og behandles automatisk.
- Du har forstått de viktige trinnene: dekoding, signaturbekreftelse og validering av claims (utløpstid, utsteder og målgruppe).
- Du har sett hvordan du konfigurerer Resource Server til å bruke en Authorization Servers JWK Set URI.
- Du har lært hvordan validerte JWT-er fyller ut Security Context.
Deretter skal vi se nærmere på hvordan du håndhever bestemte scopes og claims i innkommende JWT-er for å styre tilgangen til ulike deler av API-et.
Lær deg Java med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Dekoding og validering av JWT-tokens» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Spring Security 6 og JWT-autentisering, inkludert «Dekoding og validering av JWT-tokens», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Spring Security 6 og JWT-autentisering inneholder totalt 4 leksjoner.
Hva lærer jeg i «Dekoding og validering av JWT-tokens»?
Lær hvordan ressursserveren automatisk dekoderer og validerer JWT-tokens utstedt av en autorisasjonsserver. Du øver på Spring Security 6 og JWT-autentisering med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Spring Security 6 og JWT-autentisering?
Ingen tidligere erfaring er nødvendig. Spring Security 6 og JWT-autentisering på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Dekoding og validering av JWT-tokens»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Spring Security 6 og JWT-autentisering-leksjonen?
Ja. Alle Spring Security 6 og JWT-autentisering-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Oppsett av ressursserver
- Dekoding og validering av JWT-tokens
- Håndheving av scopes og claims
- Tilordning av JWT-claims til Spring-authorities