Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 2|Odpowiedź: 0

[Źródło] .NET/C# Dwie metody weryfikacji ważności sygnatury tokena JWT

[Skopiuj link]
Opublikowano1 minutę temu | | | |
Wymagania: Podczas żądania API uwzględniane są informacje o uwierzytelnianiu tokena JWT. Zaplecze musi zweryfikować, czy podpis tokena jest ważny, a następnie zweryfikować, czy on wygasł, informacje o emisji itd.

JSON Web Key Set URI

jwks_uri (JSON Web Key Set URI) to standardowy element konfiguracyjny w specyfikacjach OAuth 2.0 oraz OpenID Connect (OIDC).

Mówiąc wprost, jest to publiczny adres URL (lub punkt końcowy) wskazujący miejsce, gdzie serwer uwierzytelniania publikuje swój "zestaw kluczy publicznych". W standardowym procesie OIDC serwer uwierzytelniania dostarcza punkt końcowy wykrywania usług zawierający adres jwks_uri.

Jej popularna metafora

Jeśli JWT (lub Token Identyfikacyjny) wydany przez serwer uwierzytelniania jest porównywany do listu z fizycznym oficjalnym pieczęcią, to:

• Klucz prywatny: "Fizyczna pieczęć" zamknięta w sejfie przechowywanym przez serwer uwierzytelniający, używana do pieczątkowania (podpisywania).
• jwks_uri: To jest sekcja "ujawnienia wzoru pieczęci" opublikowana na oficjalnej stronie internetowej przez serwer uwierzytelniający.
• Aplikacja zewnętrznej (klient lub serwer zasobów): Po otrzymaniu e-maila pobierz projekt pieczęci (klucz publiczny) z tego jwks_uri adresu i porównaj go ze znaczkiem na liście, aby udowodnić, że list rzeczywiście został wydany przez oficjalną firmę i nie został zmanipulowany.

Tutaj znaczenie użycia w kolekcji kluczy jest następujące:

"sig": Podpis, używany do weryfikacji lub generowania podpisów w celu zapewnienia integralności danych i ochrony przed manipulacją.
"enc": Szyfrowanie, wykorzystywane do szyfrowania lub odszyfroywania danych, a także do zarządzania kluczami (szyfrowanie kluczy) w celu zapewnienia poufności danych.

Jak pokazano poniżej:



Informacje o analizie JWT

Najpierw zainstaluj pakiet nuget:System.IdentityModel.Tokens.Jwt, odczytuje informacje o roszczeniach z jwt, kod jest następujący:

Wyniki są następujące:
Nosiciel
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

Zweryfikować ważność podpisu JWT

Najpierw musisz jednak odwołać się do pakietu System.IdentityModel.Tokens.Jwt. Istnieją dwa sposoby weryfikacji ważności podpisu.

Rozwiązanie 1: X.509 łańcuch certyfikatów

Deserializacja odbywa się zgodnie ze standardem X.509, wyodrębniając wszystkie ustrukturyzowane informacje z certyfikatu (takie jak klucz publiczny, emitent, data wygaśnięcia, numer seryjny itp.) oraz generując obiekt X509Certificate2. Na koniec uzyskiwany jest ukryty klucz publiczny RSA wewnątrz, aby zweryfikować token JWT. Kod wygląda następująco:
Jak pokazano poniżej:



Rozwiązanie 2: JsonWebKey

Przekonwertowanie na klucz bezpieczeństwa: Automatycznie identyfikuje typ algorytmu znajdujący się w środku. Następnie weryfikuje ważność tokena. Kod wygląda następująco:
(Koniec)




Poprzedni:.NET/C# Uzyskaj właściwości, pola i komentarze obiektów na podstawie Roslyn
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com