Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 1|Respuesta: 0

Comprendiendo los code_challenge y code_vertifier del PKCE en OIDC

[Copiar enlace]
Publicado enHace 19 segundos | | | |
OAuth 2.0 ofrece múltiples modos de autorización, entre los cuales la Authorization Code Grant es la más utilizada y segura. code_challenge es una función mejorada en seguridad dentro de este modo, utilizada principalmente para el mecanismo PKCE (Proof Key for Code Exchange).

¿Qué es el PKCE?

PKCE (Clave de Prueba para el Intercambio de Códigos) es una extensión diseñada para mejorar la seguridad del patrón de código de autorización OAuth 2.0, especialmente cuando se utiliza en clientes públicos como aplicaciones JavaScript o aplicaciones móviles que se ejecutan en navegadores. PKCE previene que los códigos de autorización sean interceptados y mal utilizados añadiendo un paso adicional de autenticación a las solicitudes de autorización.

code_challenge Rol

code_challenge forma parte del mecanismo PKCE, generado y enviado durante la fase de solicitud de autorización. Se basa en un valor secreto (llamado code_verifier), transformado por un algoritmo de hash como S256. El propósito de code_challenge es proporcionar una base de validación para las solicitudes posteriores de tokens sin exponer directamente el code_verifier.

Generación y uso de code_challenge y code_verifier

Generación code_verifier:
code_verifier es una cadena de alta entropía y generada aleatoriamente,Longitud de caracteres (entre 43 y 128). El valor por defecto es 43。

Generación code_challenge:
Usando code_verifier, code_challenge se genera mediante un algoritmo de hash (como S256). Para S256, code_challenge es la codificación URL en Base64 del valor hash code_verifier SHA-256, pero el carácter de relleno = de la codificación debe eliminarse y la longitud de salida debe ser de 43 caracteres (ya que tras la codificación URL en Base64, cada 4 caracteres representa 3 bytes, pero el último bloque de caracteres puede ser menor que 4 caracteres, por lo que la longitud puede variar ligeramente tras eliminar = caracteres).

Usa code_challenge en las solicitudes de autorización:
Al iniciar una solicitud de autorización, code_challenge se envía como uno de los parámetros de la solicitud al servidor de autorización.

Uso de code_verifier en las solicitudes de token:
Cuando el servidor de autorización devuelve el código de autorización, el cliente utiliza este código junto con el code_verifier previamente generado para solicitar acceso al endpoint del token. El servidor de autorización verifica si el code_challenge y el code_verifier coinciden, asegurando que la solicitud sea iniciada por el cliente original.

Generación PKCE

Herramientas de generación PKCE en línea:El inicio de sesión del hipervínculo es visible.

El código C# se genera de la siguiente manera:
Como se muestra a continuación:



Referencia:

El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.




Anterior:.NET/C# Dos métodos para verificar la validez de la firma del token JWT
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com