Keselamatan Spring dan Pengesahan JWT · Pelajaran

Menyahkod dan Mengesahkan JWT

Pelajari cara Pelayan Sumber menyahkod dan mengesahkan JWT yang dikeluarkan oleh Pelayan Kebenaran secara automatik.

Pelajaran 2 daripada 412 langkah

Menyahkod dan Mengesahkan JWT ialah pelajaran Keselamatan Spring dan Pengesahan JWT percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Keselamatan Spring dan Pengesahan JWT, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Keselamatan Spring dan Pengesahan JWT merangkumi sejumlah 4 pelajaran.

Pelayan Sumber & JWT

Selamat datang ke pelajaran ini! Kita akan meneroka cara Pelayan Sumber OAuth2 Spring Security mengendalikan Token Web JSON (JWT) secara automatik.

Anda akan mempelajari proses penyahkodan dan pengesahan yang melindungi titik akhir API anda.

Peranan Pelayan Sumber

Pelayan Sumber ialah aplikasi yang mengehos sumber terlindung (seperti titik akhir API atau data) dan perlu mengesahkan pihak yang cuba mengaksesnya.

Pelayan ini bergantung pada Pelayan Keizinan untuk mengeluarkan token (seperti JWT) yang memberikan akses. Kemudian, Pelayan Sumber mengesahkan token tersebut.

Menerima JWT dalam Permintaan

Apabila klien ingin mengakses sumber terlindung, klien menghantar JWT dalam pengepala Authorization bagi permintaan HTTP-nya. Biasanya, perkara ini dilakukan menggunakan skema Token Pembawa.

  • Token Pembawa: Bukti kelayakan yang memberikan akses kepada sesiapa sahaja yang memilikinya.

Pelayan Sumber mengekstrak token ini untuk diproses.

Pemprosesan JWT Automatik

Apabila anda mengkonfigurasi aplikasi Spring Boot sebagai Pelayan Sumber OAuth2, Spring Security mengendalikan sebahagian besar pemprosesan JWT untuk anda secara automatik.

Ia mengesan token Bearer dalam pengepala dan memulakan saluran paip penyahkodan serta pengesahan dalamannya.

Menyahkod Token

Langkah pertama ialah menyahkod JWT. JWT mempunyai tiga bahagian: Pengepala, Muatan dan Tandatangan, yang dipisahkan oleh titik.

Penyahkodan bermaksud menghuraikan Pengepala dan Muatan yang dikodkan dalam base64 menjadi JSON yang boleh dibaca. Langkah ini belum mengesahkan ketulenan token; langkah ini hanya menjadikan kandungannya boleh dibaca.

Proses Pengesahan

Selepas penyahkodan, Pelayan Sumber menjalankan pemeriksaan pengesahan penting untuk memastikan JWT itu sah dan tidak diubah suai. Pemeriksaan ini termasuk:

  • Pengesahan Tandatangan: Adakah token itu tulen?
  • Luput (exp): Adakah token itu masih sah?
  • Tidak Sebelum (nbf): Adakah token itu sudah aktif?
  • Pengeluar (iss): Adakah token itu dikeluarkan oleh Pelayan Keizinan yang dijangka?
  • Audience (aud): Adakah token itu ditujukan kepada Pelayan Sumber ini?

Mengesahkan Tandatangan

Pengesahan tandatangan ialah langkah yang paling penting. Langkah ini memastikan integriti dan ketulenan token.

Pelayan Sumber menggunakan kunci awam yang disediakan oleh Pelayan Keizinan (atau rahsia dikongsi untuk algoritma simetri) untuk mengira semula dan membandingkan tandatangan. Jika kedua-duanya tidak sepadan, token ditolak.

Antara Muka `JwtDecoder`

Spring Security menggunakan antara muka JwtDecoder untuk melakukan penyahkodan dan pengesahan tandatangan JWT. Antara muka ini menerima rentetan JWT mentah dan mengembalikan objek Jwt, yang mengandungi pengepala dan tuntutan yang telah dinyahkod.

Pelaksanaan yang paling biasa untuk token JWS (Tandatangan Web JSON) ialah NimbusJwtDecoder.

Konfigurasi Pelayan Sumber

Untuk mendayakan penyahkodan dan pengesahan automatik ini, anda mengkonfigurasi aplikasi Spring Boot sebagai Pelayan Sumber OAuth2. Biasanya, anda memberikan URI pengeluar atau URI Set JWK Pelayan Keizinan anda.

Spring Security kemudiannya akan mendapatkan kunci awam yang diperlukan untuk mengesahkan JWT yang masuk.

@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();
  }
}

JWT kepada Objek Pengesahan

Selepas JWT berjaya dinyahkod dan disahkan, Spring Security menukarkan tuntutannya kepada objek Authentication, biasanya JwtAuthenticationToken.

Objek ini kemudiannya disimpan dalam Konteks Keselamatan, menjadikan prinsipal pengguna (identitinya) dan keizinan yang diberikan tersedia di seluruh aplikasi.

Pemeriksaan Pengesahan JWT

Mari semak pemahaman anda tentang pengesahan JWT. Pelayan Sumber OAuth2 Spring Security melakukan beberapa pemeriksaan penting untuk memastikan JWT sah dan boleh dipercayai.

Imbas Kembali & Langkah Seterusnya

Anda telah mempelajari cara Pelayan Sumber OAuth2 Spring Security menyahkod dan mengesahkan JWT secara automatik!

  • Kita membincangkan peranan Pelayan Sumber dalam melindungi sumber.
  • Kita meneroka cara JWT diterima dan diproses secara automatik.
  • Kita memahami langkah penting penyahkodan, pengesahan tandatangan dan pengesahan tuntutan (luput, pengeluar, audience).
  • Kita melihat cara mengkonfigurasi Pelayan Sumber supaya menggunakan URI Set JWK Pelayan Keizinan.
  • Kita mempelajari cara JWT yang telah disahkan mengisi Konteks Keselamatan.

Seterusnya, kita akan meneliti dengan lebih mendalam cara menguatkuasakan skop dan tuntutan tertentu dalam JWT yang masuk untuk mengawal akses kepada bahagian API anda yang berlainan.

Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Menyahkod dan Mengesahkan JWT” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Keselamatan Spring dan Pengesahan JWT, termasuk “Menyahkod dan Mengesahkan JWT”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Keselamatan Spring dan Pengesahan JWT merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Menyahkod dan Mengesahkan JWT”?

Pelajari cara Pelayan Sumber menyahkod dan mengesahkan JWT yang dikeluarkan oleh Pelayan Kebenaran secara automatik. Anda berlatih Keselamatan Spring dan Pengesahan JWT menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Keselamatan Spring dan Pengesahan JWT?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Keselamatan Spring dan Pengesahan JWT di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Menyahkod dan Mengesahkan JWT” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Keselamatan Spring dan Pengesahan JWT ini?

Ya. Setiap pelajaran Keselamatan Spring dan Pengesahan JWT menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Persediaan Pelayan Sumber
  2. Menyahkod dan Mengesahkan JWT
  3. Penguatkuasaan Skop dan Tuntutan
  4. Memetakan Tuntutan JWT kepada Pihak Berkuasa Spring
← Kembali ke Keselamatan Spring dan Pengesahan JWT