|
|
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
|