Pular para o conteúdo
ecdsa.com

PKCE (chave de prova para troca de código)

A extensão do OAuth da RFC 7636 em que o cliente envia um hash de um code_verifier aleatório na requisição de autorização e o próprio verificador na requisição de token, de modo que um código de autorização interceptado não serve para nada.
Também escrito comoPKCEProof Key for Code Exchangecode_verifiercode_challengeS256

O cliente gera um code_verifier de 43 a 128 caracteres não reservados de URL, envia code_challenge = BASE64URL(SHA256(code_verifier)) com code_challenge_method=S256 na requisição de autorização e depois prova a posse enviando o verificador ao endpoint de token. O método plain envia o próprio verificador como desafio e não é recomendável usá-lo.

Criado para aplicativos móveis, em que outros aplicativos poderiam capturar URIs de redirecionamento, o PKCE também impede a injeção de código de autorização em aplicações web; por isso, a RFC 9700 o recomenda para todos os clientes e o rascunho do OAuth 2.1 o exige. Ele não substitui a autenticação do cliente nos clientes confidenciais, e o servidor de autorização deve rejeitar requisições de token que omitam o verificador quando um desafio foi enviado.

Padrões e referências

Todos os termos