Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 2|Répondre: 0

[Source] .NET/C# Deux méthodes pour vérifier la validité de la signature du jeton JWT

[Copié le lien]
Publié surIl y a 1 minute | | | |
Exigences : Lors de la demande d’une API, les informations d’authentification du jeton JWT seront incluses. Le backend doit vérifier si la signature du token est valide, puis vérifier si elle a expiré, les informations d’émission, etc.

URI du jeu de clés web JSON

jwks_uri (JSON Web Key Set URI) est un élément de configuration standard dans les spécifications OAuth 2.0 et OpenID Connect (OIDC).

En termes simples, il s’agit d’une adresse URL publique (ou d’un point de terminaison) pointant vers l’endroit où le serveur d’authentification publie son « ensemble de clés publiques ». Dans le processus standard OIDC, le serveur d’authentification fournit un point de terminaison de découverte de service contenant l’adresse jwks_uri.

Sa métaphore populaire

Si le JWT (ou le jeton ID) émis par le serveur d’authentification est comparé à une lettre estampillée d’un sceau officiel physique, alors :

• Clé privée : Le « sceau physique » verrouillé dans le coffre-fort détenu par le serveur d’authentification, utilisé pour l’estampillage (signature).
• jwks_uri : Il s’agit de la « section de divulgation du motif de scellement » publiée sur le site officiel par le serveur d’authentification.
• Application tierce (client ou serveur de ressources) : Après avoir reçu l’email, téléchargez le motif du sceau (clé publique) depuis cette adresse jwks_uri et comparez-le avec le tampon sur la lettre pour prouver que la lettre a bien été émise par la société officielle et n’a pas été altérée.

Ici, la signification de l’utilisation dans la collection de clés est la suivante :

« sig » : Signature, utilisée pour vérifier ou générer des signatures afin d’assurer l’intégrité des données et la protection inviolable.
« enc » : Chiffrement, utilisé pour chiffrer ou déchiffrer des données, ainsi que pour gérer les clés (chiffrement des clés) afin d’assurer la confidentialité des données.

Comme montré ci-dessous :



Analysez les informations JWT

Tout d’abord, installez le package Nuget :System.IdentityModel.Tokens.Jwt, lit les informations sur les réclamations du JWT, le code est le suivant :

La sortie est la suivante :
Porteur
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

Vérifier la validité de la signature JWT

Vous devez toujours d’abord référencer le package System.IdentityModel.Tokens.Jwt. Il y a deux façons de vérifier la validité de la signature.

Solution 1 : chaîne de certificats X.509

La désérialisation est réalisée selon la norme internationale X.509, en extrayant toutes les informations structurées du certificat (telles que clé publique, émetteur, date d’expiration, numéro de série, etc.), et générant un objet X509Certificate2. Enfin, la clé publique RSA cachée à l’intérieur est obtenue pour vérifier le jeton JWT. Le code est le suivant :
Comme montré ci-dessous :



Solution 2 : JsonWebKey

Convertir en clé de sécurité : Il identifie automatiquement le type d’algorithme à l’intérieur. Ensuite, vérifiez la validité du jeton. Le code est le suivant :
(Fin)




Précédent:.NET/C# Obtenir les propriétés, champs et commentaires des objets basés sur Roslyn
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com