Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 2|Respuesta: 0

[Fuente] .NET/C# Dos métodos para verificar la validez de la firma del token JWT

[Copiar enlace]
Publicado enHace 1 minuto | | | |
Requisitos: Al solicitar una API, se incluirá la información de autenticación del token JWT. El backend debe verificar si la firma del token es válida, luego verificar si ha caducado, la información de emisión, etc.

URI del conjunto de claves web JSON

jwks_uri (JSON Web Key Set URI) es un elemento de configuración estándar en las especificaciones de OAuth 2.0 y OpenID Connect (OIDC).

En pocas palabras, es una dirección URL pública (o punto final) que apunta al lugar donde el servidor de autenticación publica su "conjunto de clave pública". En el proceso estándar OIDC, el servidor de autenticación proporciona un punto final de descubrimiento de servicios que contiene la dirección jwks_uri.

Su metáfora popular

Si el JWT (o ID Token) emitido por el servidor de autenticación se compara con una carta sellada con un sello oficial físico, entonces:

• Clave privada: El "sello físico" encerrado en la caja fuerte que guarda el servidor de autenticación, utilizado para el estampado (firma).
• jwks_uri: Esta es la "sección de divulgación del patrón de sello" publicada en la web oficial por el servidor de autenticación.
• Aplicación de terceros (cliente o servidor de recursos): Tras recibir el correo electrónico, descarga el diseño del sello (clave pública) de esta dirección jwks_uri y compáralo con el sello de la carta para demostrar que la carta fue efectivamente emitida por la empresa oficial y no fue manipulada.

Aquí, el significado de uso en la colección de claves es:

"sig": Firma, utilizada para verificar o generar firmas para garantizar la integridad de los datos y la protección a prueba de manipulaciones.
"enc": Cifrado, utilizado para cifrar o descifrar datos, así como para gestionar claves (Cifrado de claves) para garantizar la confidencialidad de los datos.

Como se muestra a continuación:



Analizar información de JWT

Primero, instala el paquete Nuget:System.IdentityModel.Tokens.Jwt, lee la información de Reclamaciones del JWT, el código es el siguiente:

La salida es la siguiente:
Portador
1059ec2E-ffa8-4FF5-BC47-F25D7E37aa5A

Verifica la validez de la firma JWT

Aún necesitas consultar primero el paquete System.IdentityModel.Tokens.Jwt. Hay dos formas de verificar la validez de la firma.

Solución 1: Cadena de certificados X.509

La deserialización se realiza según el estándar internacional X.509, extrayendo toda la información estructurada del certificado (como clave pública, emisor, fecha de expiración, número de serie, etc.) y generando un objeto X509Certificate2. Finalmente, se obtiene la clave pública RSA oculta en su interior para verificar el token JWT. El código es el siguiente:
Como se muestra a continuación:



Solución 2: JsonWebKey

Convertir a clave de seguridad: Identifica automáticamente el tipo de algoritmo en su interior. Luego, verifica la validez del token. El código es el siguiente:
(Fin)




Anterior:.NET/C# Obtener propiedades de objetos, campos y comentarios basados en Roslyn
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com