.net Core Basic Authentication Example

5 min read Jun 03, 2024
.net Core Basic Authentication Example

Authentification de base avec ASP.NET Core : un exemple simple

L'authentification de base est un mécanisme d'authentification simple et largement utilisé dans les applications web. Dans cet article, nous allons explorer comment mettre en œuvre l'authentification de base dans une application ASP.NET Core. Nous allons créer un exemple simple qui illustre les concepts clés et vous permet de démarrer rapidement.

Configuration de l'application ASP.NET Core

Commencez par créer un nouveau projet ASP.NET Core Web API. Assurez-vous d'inclure le package Microsoft.AspNetCore.Authentication.Basic dans votre projet.

// ConfigureServices méthode dans le fichier Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    // ... autres configurations ...

    services.AddAuthentication("BasicAuthentication")
        .AddScheme("BasicAuthentication", null);

    // ... autres configurations ...
}

Dans le code ci-dessus, nous avons configuré l'authentification de base avec le nom de schéma "BasicAuthentication". Nous avons également enregistré un gestionnaire d'authentification personnalisé BasicAuthenticationHandler qui sera utilisé pour traiter les demandes d'authentification de base.

Implémentation du gestionnaire d'authentification

Maintenant, créez une classe BasicAuthenticationHandler qui hérite de AuthenticationHandler<AuthenticationSchemeOptions> et implémente les méthodes HandleAuthenticateAsync et HandleChallengeAsync.

public class BasicAuthenticationHandler : AuthenticationHandler
{
    private readonly IPasswordHasher _passwordHasher;

    public BasicAuthenticationHandler(
        IOptionsMonitor options,
        ILoggerFactory logger,
        UrlEncoder encoder,
        ISystemClock clock,
        IPasswordHasher passwordHasher)
        : base(options, logger, encoder, clock)
    {
        _passwordHasher = passwordHasher;
    }

    protected override async Task HandleAuthenticateAsync()
    {
        // ... Extraire les informations d'identification de base de l'en-tête de la requête ...

        if (AuthenticateCredentials(username, password))
        {
            // ... Créer une instance ClaimsPrincipal avec les revendications de l'utilisateur ...

            return AuthenticateResult.Success(new AuthenticationTicket(
                principal,
                new AuthenticationProperties { IsPersistent = true },
                "BasicAuthentication"));
        }

        return AuthenticateResult.Fail("Identifiants invalides.");
    }

    protected override Task HandleChallengeAsync(ChallengeContext context)
    {
        // ... Gérer la réponse de défi ...

        return base.HandleChallengeAsync(context);
    }

    private bool AuthenticateCredentials(string username, string password)
    {
        // ... Vérifier les informations d'identification contre la base de données ou une autre source ...

        return _passwordHasher.VerifyHashedPassword(user, password, hashedPassword);
    }
}

Dans ce gestionnaire, nous extrayons les informations d'identification de base de l'en-tête de la requête, vérifions les informations d'identification contre une base de données ou une autre source, et créons un ClaimsPrincipal pour l'utilisateur authentifié.

Configuration de l'application pour l'authentification de base

Enfin, configurez votre application ASP.NET Core pour utiliser l'authentification de base. Vous pouvez le faire dans la méthode Configure de votre classe Startup.

// Configure méthode dans le fichier Startup.cs
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ... autres configurations ...

    app.UseAuthentication();
    app.UseAuthorization();

    // ... autres configurations ...
}

Utilisation de l'authentification de base

Maintenant, vous pouvez protéger vos points de terminaison d'API en utilisant des attributs d'autorisation, tels que [Authorize].

[Authorize]
[HttpGet]
public IActionResult GetSecretData()
{
    // ... Code pour accéder aux données secrètes ...

    return Ok("Données secrètes récupérées avec succès.");
}

Conclusion

Cet article vous a fourni un guide étape par étape sur la mise en œuvre de l'authentification de base dans ASP.NET Core. En suivant les étapes décrites, vous pouvez facilement sécuriser vos applications web en utilisant ce mécanisme d'authentification simple. N'oubliez pas que l'authentification de base n'est pas recommandée pour les applications sensibles, car les informations d'identification sont transmises en clair. Considérez d'autres mécanismes d'authentification plus sûrs, comme OAuth2 ou OpenID Connect, pour les applications plus sécurisées.

Featured Posts