Asas OAuth2 dan JWT
Fahami konsep teras OAuth2 untuk pemberian kuasa dan JSON Web Tokens (JWT) untuk pertukaran maklumat yang selamat.
Asas OAuth2 dan JWT ialah pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 percuma di CoddyKit. Ini ialah pelajaran 1 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 3 pelajaran.
Mengapa Keselamatan API Penting
Semasa membina aplikasi, khususnya aplikasi yang mempunyai API REST, keselamatan amat penting. Anda mendedahkan data dan kefungsian yang perlu dilindungi.
Tanpa keselamatan yang sewajarnya, API anda mungkin terdedah kepada capaian tanpa kebenaran, kebocoran data atau serangan berniat jahat. Pelajaran ini memberikan asas untuk memahami cara melindungi perkhidmatan anda.
AuthN berbanding AuthZ: Perbezaan Utama
Sebelum mendalami topik ini, mari jelaskan dua istilah penting:
- Pengesahan (AuthN): Mengesahkan identiti pengguna atau klien. Anggaplah ia seperti menunjukkan ID anda untuk membuktikan identiti.
- Keizinan (AuthZ): Menentukan perkara yang dibenarkan dilakukan oleh pengguna atau klien yang telah disahkan. Ini seperti petugas pemeriksaan yang menyemak tiket anda untuk menentukan sama ada anda boleh memasuki kawasan tertentu.
OAuth2 khususnya memberi tumpuan kepada keizinan.
Kenali OAuth2: Piawaian Keizinan
OAuth2 (Open Authorization 2.0) ialah protokol keizinan yang menjadi piawaian industri. Protokol ini membolehkan aplikasi pihak ketiga ("klien") mendapatkan capaian terhad kepada perkhidmatan HTTP ("pelayan sumber") bagi pihak pengguna ("pemilik sumber").
Yang penting, OAuth2 membolehkan capaian ini tanpa pengguna perlu berkongsi bukti kelayakan mereka (nama pengguna dan kata laluan) secara langsung dengan aplikasi klien.
Peranan dalam OAuth2
OAuth2 mentakrifkan empat peranan utama yang berinteraksi dalam proses keizinan:
- Pemilik Sumber: Pengguna yang memiliki sumber yang dilindungi.
- Klien: Aplikasi yang meminta capaian kepada sumber yang dilindungi milik pemilik sumber.
- Pelayan Keizinan: Pelayan yang mengesahkan pemilik sumber dan mengeluarkan token capaian kepada klien.
- Pelayan Sumber: Pelayan yang mengehoskan sumber yang dilindungi serta boleh menerima dan memberikan respons kepada permintaan sumber yang dilindungi menggunakan token capaian.
Cara OAuth2 Memberikan Capaian
OAuth2 menggunakan pelbagai "jenis pemberian" (juga dikenali sebagai aliran) untuk mengeluarkan token capaian. Token capaian ialah bukti kelayakan yang memberikan klien capaian kepada sumber tertentu pada pelayan sumber.
Pemilihan jenis pemberian bergantung pada jenis klien (contohnya, aplikasi web, aplikasi mudah alih atau aplikasi sebelah pelayan) dan keperluan keselamatannya. Aliran Kod Keizinan digunakan secara meluas untuk aplikasi web tradisional.
Memperkenalkan JWT: Maklumat Selamat
JSON Web Token (JWT), disebut "jot", ialah cara yang padat dan selamat untuk URL bagi mewakili tuntutan yang akan dipindahkan antara dua pihak. Tuntutan ini ialah cebisan maklumat tentang entiti (biasanya pengguna) serta metadata tambahan.
JWT sering digunakan sebagai format token capaian dalam OAuth2, yang menyediakan cara kendiri untuk menghantar maklumat tentang pengguna dan keizinannya dengan selamat.
Anatomi JWT
JWT terdiri daripada tiga bahagian yang dipisahkan oleh titik (.):
- Pengepala: Mengandungi metadata tentang token itu sendiri, seperti jenis token (JWT) dan algoritma tandatangan yang digunakan (contohnya, HMAC SHA256 atau RSA).
- Beban: Mengandungi 'tuntutan' – pernyataan tentang entiti (seperti pengguna) dan data tambahan. Tuntutan boleh berdaftar (dipiawaikan), awam atau peribadi.
- Tandatangan: Digunakan untuk mengesahkan bahawa pengirim JWT ialah pihak yang didakwa dan mesej itu tidak diusik. Tandatangan ini dicipta menggunakan pengepala, beban dan kunci rahsia.
Struktur JWT: Pandangan Lebih Dekat
Beginilah rupa JWT biasa. Setiap bahagian dikodkan dalam Base64Url:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c- Bahagian pertama ialah Pengepala.
- Bahagian kedua ialah Beban.
- Bahagian ketiga ialah Tandatangan.
Bahagian ini dikodkan secara berasingan dan dicantumkan dengan titik.
Menyahkod Bahagian JWT (Konsep)
Pengepala dan beban JWT hanyalah JSON yang dikodkan dalam Base64Url. Ini bermakna sesiapa sahaja boleh menyahkodnya dengan mudah untuk membaca kandungannya. Keselamatan datang daripada tandatangan, yang mengesahkan integriti dan ketulenan token.
Cuba nyahkod rentetan Base64Url contoh dalam Java:
import java.util.Base64;
public class Main {
public static void main(String[] args) {
String encodedHeader = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
String encodedPayload = "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ";
System.out.println("Decoded Header:");
decodeAndPrint(encodedHeader);
System.out.println("\nDecoded Payload:");
decodeAndPrint(encodedPayload);
}
private static void decodeAndPrint(String encodedString) {
try {
byte[] decodedBytes = Base64.getUrlDecoder().decode(encodedString);
String decodedString = new String(decodedBytes, "UTF-8");
System.out.println(decodedString);
} catch (Exception e) {
System.out.println("Error decoding: " + e.getMessage());
}
}
}Mengapa Menggunakan JWT?
JWT menawarkan beberapa kelebihan, khususnya dalam sistem teragih seperti perkhidmatan mikro:
- Tanpa keadaan: Pelayan tidak perlu menyimpan maklumat sesi. Setiap JWT mengandungi semua data pengguna yang diperlukan.
- Kebolehskalaan: Oleh sebab token adalah kendiri, mana-mana perkhidmatan boleh mengesahkannya tanpa stor sesi berpusat, sekali gus memudahkan penskalaan.
- Padat dan Selamat untuk URL: Token ini kecil dan boleh dihantar dengan mudah dalam parameter URL, permintaan POST atau pengepala HTTP.
- Kendiri: Token ini mengandungi semua maklumat tentang pengguna, lalu mengurangkan keperluan untuk membuat carian pangkalan data bagi setiap permintaan.
Semak Pemahaman Anda
Antara pernyataan berikut, yang manakah paling tepat menerangkan tujuan utama OAuth2?
Ringkasan Pelajaran
Dalam pelajaran ini, anda telah memperoleh pemahaman asas tentang prinsip keselamatan API. Kami membezakan antara Pengesahan (siapa anda) dan Keizinan (perkara yang boleh anda lakukan).
Anda mempelajari OAuth2 sebagai piawaian untuk keizinan yang selamat, yang membolehkan capaian terkawal kepada sumber. Kami turut meneroka JSON Web Tokens (JWTs), termasuk struktur dan manfaatnya sebagai cara yang padat dan kendiri untuk menghantar maklumat, yang sering digunakan sebagai token capaian dalam OAuth2.
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
- 24
- Pelajaran
- 93
Soalan Lazim
Adakah pelajaran “Asas OAuth2 dan JWT” percuma?
Ya — teks penuh “Asas OAuth2 dan JWT” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Perkhidmatan Mikro dan API REST Spring Boot 4, tingkat taraf kepada CoddyKit PRO. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Asas OAuth2 dan JWT”?
Fahami konsep teras OAuth2 untuk pemberian kuasa dan JSON Web Tokens (JWT) untuk pertukaran maklumat yang selamat. Anda berlatih Perkhidmatan Mikro dan API REST Spring Boot 4 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 Perkhidmatan Mikro dan API REST Spring Boot 4?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 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 1 daripada 3.
Berapa lamakah pelajaran “Asas OAuth2 dan 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 Perkhidmatan Mikro dan API REST Spring Boot 4 ini?
Ya. Setiap pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 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
- Asas OAuth2 dan JWT
- Melindungi Titik Akhir REST
- Kawalan Akses Berasaskan Peranan