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