.net 6 Jwt Authentication Example

4 min read Jun 04, 2024
.net 6 Jwt Authentication Example

Authentification JWT avec ASP.NET Core 6 : Un exemple pratique

L'authentification JWT (JSON Web Token) est une méthode largement utilisée pour sécuriser les API et les applications web. Dans ce tutoriel, nous allons explorer un exemple d'authentification JWT avec ASP.NET Core 6 pour comprendre comment implémenter cette technique de manière pratique.

Configuration de l'application ASP.NET Core

Commençons par créer un projet ASP.NET Core 6. Vous pouvez utiliser Visual Studio ou l'interface de ligne de commande (CLI) pour ce faire. Assurez-vous d'inclure la dépendance Microsoft.AspNetCore.Authentication.JwtBearer dans votre projet :


  

Génération de jetons JWT

Pour générer des jetons JWT, nous avons besoin d'un secret qui servira à signer les jetons. Vous pouvez utiliser une bibliothèque comme System.IdentityModel.Tokens.Jwt pour cette tâche :

using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using Microsoft.IdentityModel.Tokens;

// Clé secrète pour la signature des jetons
var secretKey = "votre-clé-secrète-ici";

// Création d'une identité utilisateur
var claims = new[]
{
    new Claim(ClaimTypes.NameIdentifier, "utilisateur123"),
    new Claim(ClaimTypes.Name, "John Doe")
};

// Configuration des options du jeton
var tokenDescriptor = new SecurityTokenDescriptor
{
    Subject = new ClaimsIdentity(claims),
    Expires = DateTime.UtcNow.AddMinutes(30),
    SigningCredentials = new SigningCredentials(
        new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)),
        SecurityAlgorithms.HmacSha256Signature)
};

// Génération du jeton JWT
var tokenHandler = new JwtSecurityTokenHandler();
var token = tokenHandler.CreateToken(tokenDescriptor);
var jwtToken = tokenHandler.WriteToken(token);

// Stockage ou transmission du jeton JWT
Console.WriteLine(jwtToken);

Validation des jetons JWT

Du côté du serveur, vous devez configurer ASP.NET Core pour valider les jetons JWT reçus. Ajoutez le code suivant à la configuration de votre application dans la méthode ConfigureServices de la classe Startup :

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuerSigningKey = true,
            IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)),
            ValidateIssuer = false,
            ValidateAudience = false,
            ValidateLifetime = true,
            ClockSkew = TimeSpan.Zero
        };
    });

Utilisation des jetons JWT dans l'application

Maintenant, vous pouvez utiliser le middleware d'authentification JWT pour protéger les points de terminaison de votre API. Ajoutez l'attribut [Authorize] aux contrôleurs ou aux actions que vous souhaitez sécuriser :

[Authorize]
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
    // ...
}

Conclusion

Cet exemple vous donne une base solide pour implémenter l'authentification JWT dans vos applications ASP.NET Core 6. N'oubliez pas de sécuriser correctement votre clé secrète et d'adapter les configurations aux besoins de votre application. L'authentification JWT est un outil puissant pour sécuriser vos API et améliorer la sécurité de vos applications web.

Featured Posts