Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 2|Jawab: 0

[Sumber] .NET/C# Dua metode untuk memverifikasi validitas tanda tangan token JWT

[Salin tautan]
Diposting pada1 menit yang lalu | | | |
Persyaratan: Saat meminta API, informasi otentikasi token JWT akan disertakan. Backend perlu memverifikasi apakah tanda tangan token valid, lalu memverifikasi apakah token tersebut telah kedaluwarsa, informasi penerbitan, dan lain-lain.

JSON Web Key Set URI

jwks_uri (JSON Web Key Set URI) adalah item konfigurasi standar dalam spesifikasi OAuth 2.0 dan OpenID Connect (OIDC).

Singkatnya, ini adalah alamat URL publik (atau titik akhir) yang menunjuk ke tempat server autentikasi mempublikasikan "set kunci publik" mereka. Dalam proses OIDC standar, server autentikasi menyediakan endpoint penemuan layanan yang berisi alamat jwks_uri.

Metafora populernya

Jika JWT (atau ID Token) yang diterbitkan oleh server autentikasi disamakan dengan surat yang diberi cap resmi fisik, maka:

• Kunci privat: "Segel fisik" yang terkunci di brankas yang disimpan oleh server autentikasi, digunakan untuk penandatanganan (stamping).
• jwks_uri: Ini adalah "bagian pengungkapan pola segel" yang diposting di situs resmi oleh server autentikasi.
• Aplikasi pihak ketiga (klien atau server sumber daya): Setelah menerima email, unduh desain segel (kunci publik) dari alamat jwks_uri ini dan bandingkan dengan stempel pada surat untuk membuktikan bahwa surat tersebut memang dikeluarkan oleh perusahaan resmi dan tidak dirusak.

Di sini, makna penggunaan dalam koleksi kunci adalah:

"sig": Tanda tangan, digunakan untuk memverifikasi atau menghasilkan tanda tangan guna memastikan integritas data dan perlindungan anti-gangguan.
"enc": Enkripsi, digunakan untuk mengenkripsi atau mendekripsi data, serta mengelola kunci (Enkripsi Kunci) untuk memastikan kerahasiaan data.

Seperti yang ditunjukkan di bawah ini:



Urai informasi JWT

Pertama, instal paket Nuget:System.IdentityModel.Tokens.Jwt, berbunyi informasi Klaim dari JWT, kodenya adalah sebagai berikut:

Outputnya adalah sebagai berikut:
pembawa
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

Verifikasi validitas tanda tangan JWT

Anda masih perlu terlebih dahulu merujuk paket System.IdentityModel.Tokens.Jwt. Ada dua cara untuk memverifikasi validitas tanda tangan.

Solusi 1: Rantai Sertifikat X.509

Deserialisasi dilakukan sesuai standar internasional X.509, mengekstrak semua informasi terstruktur dari sertifikat (seperti kunci publik, penerbit, tanggal kedaluwarsa, nomor seri, dll.), dan menghasilkan objek X509Certificate2. Akhirnya, kunci publik RSA tersembunyi di dalamnya diperoleh untuk memverifikasi token JWT. Kodenya adalah sebagai berikut:
Seperti yang ditunjukkan di bawah ini:



Solusi 2: JsonWebKey

Konversi ke Security Key: Secara otomatis mengidentifikasi tipe algoritma di dalamnya. Kemudian, verifikasi validitas token. Kodenya adalah sebagai berikut:
(Akhir)




Mantan:.NET/C# Dapatkan properti, field, dan komentar objek berdasarkan Roslyn
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com