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

Widok: 1|Odpowiedź: 0

Zrozumienie code_challenge i code_vertifier PKCE w OIDC

[Skopiuj link]
Opublikowano19 sekund temu | | | |
OAuth 2.0 oferuje wiele trybów autoryzacji, spośród których najczęściej stosowany i bezpieczny jest Authorization Code Grant. code_challenge jest funkcją zwiększaną bezpieczeństwa w tym trybie, głównie wykorzystywaną w mechanizmie PKCE (Proof Key for Code Exchange).

Czym jest PKCE?

PKCE (Proof Key for Code Exchange) to rozszerzenie zaprojektowane w celu zwiększenia bezpieczeństwa wzorca kodu autoryzacyjnego OAuth 2.0, szczególnie gdy jest używany w publicznych klientach, takich jak aplikacje JavaScript lub aplikacje mobilne działające w przeglądarkach. PKCE zapobiega przechwytywaniu i niewłaściwemu użyciu kodów autoryzacji poprzez dodanie dodatkowego kroku uwierzytelniania do żądań autoryzacji.

code_challenge Rola

code_challenge jest częścią mechanizmu PKCE, generowanym i wysyłanym podczas fazy żądania autoryzacji. Opiera się na wartości tajnej (zwanej code_verifier), przekształcanej przez algorytm haszujący, taki jak S256. Celem code_challenge jest zapewnienie podstawy walidacyjnej dla kolejnych żądań tokenów bez bezpośredniego ujawniania code_verifier.

Generowanie i wykorzystanie code_challenge oraz code_verifier

Pokolenie code_verifier:
code_verifier jest losowo generowanym ciągiem o wysokiej entropii,Długość znaków (między 43 a 128). Domyślna wartość to 43。

Pokolenie code_challenge:
Przy użyciu code_verifier code_challenge jest generowany za pomocą algorytmu haszującego (takiego jak S256). Dla S256 code_challenge jest kodowaniem URL Base64 wartości code_verifier SHA-256, ale znak = dosypujący z kodowania musi zostać usunięty, a długość wyjścia musi wynosić 43 znaki (ponieważ po kodowaniu URL Base64 każde 4 znaki reprezentują 3 bajty, ale ostatni blok znaków może mieć mniej niż 4 znaki, więc długość może się nieznacznie różnić po usunięciu = znaków).

Używaj code_challenge w wnioskach o autoryzację:
Podczas inicjowania żądania autoryzacji code_challenge jest wysyłany jako jeden z parametrów żądania do serwera autoryzacji.

Wykorzystanie code_verifier w żądaniach tokenów:
Gdy serwer autoryzacji zwraca kod autoryzacyjny, klient używa tego kodu wraz z wcześniej wygenerowanym code_verifier do żądania dostępu do punktu końcowego tokena. Serwer autoryzacji weryfikuje, czy code_challenge i code_verifier się zgadzają, zapewniając, że żądanie jest inicjowane przez oryginalnego klienta.

Generowanie PKCE

Internetowe narzędzia generowania PKCE:Logowanie do linku jest widoczne.

Kod C# generowany jest następująco:
Jak pokazano poniżej:



Odniesienie:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.




Poprzedni:.NET/C# Dwie metody weryfikacji ważności sygnatury tokena JWT
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