Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 1|Resposta: 0

Entendendo os code_challenge e code_vertifier do PKCE no OIDC

[Copiar link]
Publicado em19 segundos atrás | | | |
O OAuth 2.0 oferece múltiplos modos de autorização, entre os quais o Authorization Code Grant é o mais comumente usado e seguro. code_challenge é um recurso aprimorado de segurança dentro desse modo, usado principalmente para o mecanismo PKCE (Proof Key for Code Exchange).

O que é PKCE?

PKCE (Proof Key for Code Exchange) é uma extensão projetada para aprimorar a segurança do padrão de código de autorização OAuth 2.0, especialmente quando usada em clientes públicos como aplicações JavaScript ou aplicativos móveis rodando em navegadores. O PKCE impede que códigos de autorização sejam interceptados e usados de forma inadequada ao adicionar uma etapa adicional de autenticação às solicitações de autorização.

code_challenge Papel

code_challenge faz parte do mecanismo PKCE, gerado e enviado durante a fase de solicitação de autorização. Ele é baseado em um valor secreto (chamado code_verifier), transformado por um algoritmo de hashing como o S256. O objetivo de code_challenge é fornecer uma base de validação para requisições subsequentes de token sem expor diretamente o code_verifier.

Geração e uso de code_challenge e code_verifier

Geração code_verifier:
code_verifier é uma cadeia de alta entropia e gerada aleatoriamente,Comprimento do caractere (entre 43 e 128). O valor padrão é 43。

Geração code_challenge:
Usando code_verifier, code_challenge é gerado por meio de um algoritmo de hash (como S256). Para S256, code_challenge é a codificação URL Base64 do valor hash code_verifier SHA-256, mas o caractere de preenchimento = da codificação deve ser removido, e o comprimento de saída deve ser de 43 caracteres (já que após a codificação de URL Base64, cada 4 caracteres representa 3 bytes, mas o último bloco de caracteres pode ter menos de 4 caracteres, então o comprimento pode variar ligeiramente após a remoção de caracteres = caracteres).

Use code_challenge em solicitações de autorização:
Ao iniciar uma solicitação de autorização, code_challenge é enviada como um dos parâmetros de requisição para o servidor de autorização.

Uso code_verifier em requisições de token:
Quando o servidor de autorização retorna o código de autorização, o cliente usa esse código junto com a code_verifier previamente gerada para solicitar acesso ao endpoint do token. O servidor de autorização verifica se o code_challenge e o code_verifier coincidem, garantindo que a solicitação seja iniciada pelo cliente original.

Geração PKCE

Ferramentas Online de Geração PKCE:O login do hiperlink está visível.

O código C# é gerado da seguinte forma:
Como mostrado abaixo:



Referência:

O login do hiperlink está visível.
O login do hiperlink está visível.




Anterior:.NET/C# Dois métodos para verificar a validade da assinatura do token JWT
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com