Asp net core jwt token authentication
Gérer les jetons Web JSON en cours de développement avec dotnet user-jwts
Par Rick Anderson L’outil
deligne 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. |
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
defichiers : 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 :