Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 2|Yanıt: 0

[Kaynak] .NET/C# JWT token imzasının geçerliliğini doğrulamak için iki yöntem

[Bağlantıyı kopyala]
Yayınlandı1 dakika önce | | | |
Gereksinimler: API talep edilirken, JWT token kimlik doğrulama bilgileri dahil edilir. Arka uç, token imzasının geçerli olup olmadığını doğrulamalı, ardından süresi dolup olmadığını doğrulamalı, verme bilgilerini vs.

JSON Web Anahtar Seti URI

jwks_uri (JSON Web Anahtar Seti URI), OAuth 2.0 ve OpenID Connect (OIDC) özelliklerinde standart bir yapılandırma öğesidir.

Basitçe söylemek gerekirse, kimlik doğrulama sunucusunun "açık anahtar kümesini" yayımladığı yere işaret eden bir açık URL adresi (veya uç noktası). Standart OIDC sürecinde, kimlik doğrulama sunucusu jwks_uri adresini içeren bir hizmet keşif uç noktası sağlar.

Popüler metaforu

Kimlik doğrulama sunucusu tarafından verilen JWT (veya ID Token), fiziksel resmi mührle damgalanmış bir mektuba benzetilirse, o zaman:

• Özel anahtar: Kimlik doğrulama sunucusunun sakladığı kasada kilitlenen "fiziksel mühür" ve damgalama (imzalama) için kullanılır.
• jwks_uri: Bu, kimlik doğrulama sunucusu tarafından resmi web sitesinde yayınlanan "mühür deseni açıklama bölümü"dür.
• Üçüncü taraf uygulaması (istemci veya kaynak sunucusu): E-postayı aldıktan sonra, bu jwks_uri adresinden mühür tasarımını (açık anahtar) indirin ve mektuptaki damga ile karşılaştırarak mektubun gerçekten resmi şirket tarafından verildiğini ve değiştirilmediğini kanıtlayın.

Burada, anahtar koleksiyonunda kullanımın anlamı şudur:

"sig": İmza, veri bütünlüğünü ve müdahale korumasını sağlamak için imza doğrulamak veya oluşturmak için kullanılır.
"enc": Şifreleme, veri şifresi veya şifresini çözmek, ayrıca veri gizliliğini sağlamak için anahtarları (Anahtar Şifreleme) yönetmek için kullanılır.

Aşağıda gösterildiği gibi:



JWT bilgilerini ayrıştırın

Öncelikle, nuget paketini kurun:System.IdentityModel.Tokens.Jwt, jwt'den Claims bilgilerini okuyor ve kod şöyledir:

Çıktı şöyledir:
Taşıyıcı
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

JWT imzasının geçerliliğini doğrulayın

Yine de önce System.IdentityModel.Tokens.Jwt paketine başvurmanız gerekir. İmzanın geçerliliğini doğrulamanın iki yolu vardır.

Çözüm 1: X.509 Sertifika Zinciri

Deserileştirme, X.509 uluslararası standardına göre gerçekleştirilir; sertifikadan tüm yapılandırılmış bilgiler (örneğin açık anahtar, irakçı, son kullanma tarihi, seri numarası vb.) çıkarılır ve bir X509Certificate2 nesnesi oluşturulur. Son olarak, içindeki gizli RSA açık anahtarı elde edilir ve JWT tokenı doğrulanır. Kod şu şekildedir:
Aşağıda gösterildiği gibi:



Çözüm 2: JsonWebKey

Güvenlik Anahtarına Dönüştür: İçindeki algoritma tipini otomatik olarak tanımlar. Sonrasında tokenın geçerliliğini doğrulayın. Kod şu şekildedir:
(Son)




Önceki:.NET/C# Roslyn tabanlı nesne özellikleri, alanları ve yorumları elde edin
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com