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

Vista: 2|Resposta: 0

[Fonte] .NET/C# Dois métodos para verificar a validade da assinatura do token JWT

[Copiar link]
Publicado em1 minuto atrás | | | |
Requisitos: Ao solicitar uma API, as informações de autenticação do token JWT serão incluídas. O backend precisa verificar se a assinatura do token é válida, depois verificar se ela expirou, as informações de emissão, etc.

URI do conjunto de chaves web JSON

jwks_uri (JSON Web Key Set URI) é um item de configuração padrão nas especificações OAuth 2.0 e OpenID Connect (OIDC).

Simplificando, é um endereço de URL público (ou endpoint) que aponta para onde o servidor de autenticação publica seu "conjunto de chave pública". No processo padrão OIDC, o servidor de autenticação fornece um endpoint de descoberta de serviço contendo o endereço jwks_uri.

Sua metáfora popular

Se o JWT (ou ID Token) emitido pelo servidor de autenticação for comparado a uma carta carimbada com um selo oficial físico, então:

• Chave privada: O "selo físico" trancado no cofre mantido pelo servidor de autenticação, usado para carimbar (assinar).
• jwks_uri: Esta é a "seção de divulgação do padrão de selo" postada no site oficial pelo servidor de autenticação.
• Aplicação de terceiros (cliente ou servidor de recursos): Após receber o e-mail, baixe o design do selo (chave pública) desse endereço jwks_uri e compare com o carimbo na carta para provar que a carta foi realmente emitida pela empresa oficial e não foi adulterada.

Aqui, o significado de uso na coleção de chaves é:

"sig": Assinatura, usada para verificar ou gerar assinaturas para garantir a integridade dos dados e proteção à prova de adulteração.
"enc": Criptografia, usada para criptografar ou descriptografar dados, bem como para gerenciar chaves (Criptografia de Chaves) para garantir a confidencialidade dos dados.

Como mostrado abaixo:



Analisar as informações do JWT

Primeiro, instale o pacote Nuget:System.IdentityModel.Tokens.Jwt, lê as informações de Reivindicações do Jwt, o código é o seguinte:

A saída é a seguinte:
Portador
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

Verifique a validade da assinatura JWT

Você ainda precisa primeiro referenciar o pacote System.IdentityModel.Tokens.Jwt. Existem duas maneiras de verificar a validade da assinatura.

Solução 1: Cadeia de Certificados X.509

A desserialização é realizada de acordo com o padrão internacional X.509, extraindo todas as informações estruturadas do certificado (como chave pública, emissor, data de expiração, número de série, etc.) e gerando um objeto X509Certificate2. Finalmente, a chave pública RSA oculta interna é obtida para verificar o token JWT. O código é o seguinte:
Como mostrado abaixo:



Solução 2: JsonWebKey

Converter para Chave de Segurança: Ele identifica automaticamente o tipo de algoritmo interno. Depois, verifique a validade do token. O código é o seguinte:
(Fim)




Anterior:.NET/C# Obter propriedades de objetos, campos e comentários baseados no Roslyn
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