image
image
image
image
image
image

Asp net identity jwt

Gérer les jetons Web JSON en cours de développement avec dotnet user-jwts

Par Rick Anderson L’outil

de

ligne de commande peut créer et gérer des jetons Web JSON locaux spécifiques à une application.

Synopsis

Description

Crée et gère des jetons Web JSON locaux spécifiques au projet.

Arguments

Projet MSBuild auquel appliquer une commande. Si aucun projet n’est spécifié, MSBuild recherche dans le répertoire de travail actuel un fichier dont l’extension se termine par proj et utilise ce fichier.

Commandes

Commande Description
Effacer Supprimer tous les JWT émis pour un projet.
create Émettre un nouveau jeton Web JSON.
remove Supprimer un JWT donné.
key Affiche ou réinitialise la clé de signature utilisée pour l’émission des JWT.
list Répertorie les JWT émis pour le projet.
print Affichez les détails d’un JWT donné.

Créer

une utilisation :

Option Description
-p | --project Le chemin du projet sur lequel opérer. Par défaut, le projet se trouve dans le répertoire courant.
--scheme Le nom du schéma à utiliser pour le jeton généré. La valeur par défaut est 'Bearer'.
-n | --name Nom de l’utilisateur pour lequel créer le JWT. Par défaut, il s’agit de la valeur actuelle utilisateur de l’environnement.
--audience Les publics pour lesquels créer le JWT. Par défaut, il s’agit des URL configurées dans le launchSettings.json du projet.
--issuer L’émetteur du JWT. La valeur par défaut est 'dotnet-user-jwts'.
--scope Une revendication de portée à ajouter au JWT. Spécifiez une fois pour chaque étendue.
--role Une revendication de rôle à ajouter au JWT. Spécifiez une fois pour chaque rôle.
--claim Prétend être ajouté au JWT. Spécifiez une fois pour chaque revendication au format « nom=valeur ».
La date et l’heure UTC du JWT ne doivent pas être valides avant au format 'aaaa-MM-jj [[HH :mm[[ :ss]]]'. Par défaut, la date et l’heure de création du JWT sont enregistrées.
--expire-le La date et l’heure UTC auxquelles le JWT doit expirer au format 'aaaa-MM-jj [[[ [HH :mm]] :ss]]'. La valeur par défaut est 6 mois après la date --not-before. N’utilisez pas cette option conjointement avec l’option --valid-for.
--valid-for La période après laquelle le JWT doit expirer. Spécifiez l’utilisation d’un nombre suivi d’un type de durée tel que « d » pour les jours, « h » pour les heures, « m » pour les minutes et « s » pour les secondes, par exemple 365d. N’utilisez pas cette option conjointement avec l’option --expires-on.
-o | --output Le format à utiliser pour afficher la sortie de la commande. Il peut s’agir de l’une des valeurs suivantes : « default », « token » ou « json ».
-h | --help Afficher les informations d’aide

Exemples

Exécutez les commandes suivantes pour créer un projet Web vide et ajouter le Package NuGet Microsoft.AspNetCore.Authentication.JwtBearer :

remplacez le contenu de par le code suivant :

Dans le code précédent, une requête GET à renvoie une erreur. Une application de production peut obtenir le JWT à partir d’un service de jeton de sécurité (STS), peut-être en réponse à une connexion via un ensemble d’informations d’identification. Dans le but d’utiliser l’API pendant le développement local, l’outil de ligne de commande peut être utilisé pour créer et gérer des JWT locaux spécifiques à l’application.

L’outil est similaire dans son concept à l’outil de secrets utilisateur, il peut être utilisé pour gérer les valeurs de l’application qui ne sont valides que pour le développeur sur la machine locale. En fait, l’outil user-jwts utilise l’infrastructure pour gérer la clé avec laquelle les JWT sont signés, en veillant à ce qu’elle soit stockée en toute sécurité dans le profil utilisateur.

L’outil masque les détails de l’implémentation, tels que l’emplacement et la manière dont les valeurs sont stockées. L’outil peut être utilisé sans connaître le détails de mise en œuvre. Les valeurs sont stockées dans un fichier JSON dans le dossier de profil utilisateur de l’ordinateur local :

Chemin d’accès au système

de

fichiers : Chemin d’accès au système de fichiers :

Créer un JWT

La commande suivante crée un JWT local :

La commande précédente crée un JWT et met à jour le fichier du projet avec JSON de la même manière que ce qui suit :

Copiez le JWT et le créé dans la commande précédente. Utilisez un outil comme Curl pour tester :

Où se trouve le JWT précédemment généré.

Afficher les informations de sécurité JWT

La commande suivante affiche les informations de sécurité JWT, y compris l’expiration, les étendues, les rôles, l’en-tête et la charge utile du jeton, ainsi que le jeton compact :

Créez un jeton pour un utilisateur et une étendue spécifiques

Voir Créer dans cette rubrique pour connaître les options de création prises en charge.

La commande suivante crée un JWT pour un utilisateur nommé :

La commande précédente a un résultat similaire à ce qui suit :

Le jeton précédent peut être utilisé pour tester le point de terminaison dans le code suivant :