|
|
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
|