Saltar al contenido
ecdsa.com

PKCE (clave de prueba para el canje de código)

La extensión de OAuth del RFC 7636 en la que el cliente envía un hash de un code_verifier aleatorio con la solicitud de autorización y el propio code_verifier con la solicitud de token, de modo que un código de autorización interceptado no sirve de nada.
También se escribePKCEProof Key for Code Exchangecode_verifiercode_challengeS256

El cliente genera un code_verifier de 43 a 128 caracteres no reservados de URL, envía code_challenge = BASE64URL(SHA256(code_verifier)) con code_challenge_method=S256 en la solicitud de autorización y después demuestra la posesión enviando el verificador al endpoint de token. El método plain envía el propio verificador como desafío y no debería usarse.

Diseñado para aplicaciones móviles, donde otras aplicaciones podían capturar las URI de redirección, PKCE también impide la inyección de códigos de autorización en las aplicaciones web, por lo que el RFC 9700 lo recomienda para todos los clientes y el borrador de OAuth 2.1 lo exige. No sustituye a la autenticación del cliente en los clientes confidenciales, y el servidor de autorización debe rechazar las solicitudes de token que omitan el verificador cuando se envió un desafío.

Estándares y referencias

Todos los términos