Maison >développement back-end >C++ >Comment implémenter l'authentification basée sur les jetons dans ASP.NET Core ?

Comment implémenter l'authentification basée sur les jetons dans ASP.NET Core ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-30 04:39:57633parcourir

How to Implement Token-Based Authentication in ASP.NET Core?

Authentification basée sur des jetons dans ASP.NET Core

La mise en œuvre de l'authentification basée sur des jetons dans ASP.NET Core peut être un défi, en particulier lors de la transition à partir des versions précédentes de cadre. Cet article fournit des instructions détaillées sur la façon de configurer votre application WebApi pour l'authentification basée sur des jetons, en résolvant les problèmes courants et les mises à jour pour les versions .NET Core.

Configuration de démarrage

Dans Startup.cs, configurez vos services et ajoutez le code suivant dans la méthode ConfigureServices :

const string TokenAudience = "Myself";
const string TokenIssuer = "MyProject";

var claimsPrincipal = new System.Security.Claims.ClaimsPrincipal(new[]
{
    new System.Security.Claims.ClaimsIdentity(new[]
    {
        new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, "Demo User")
    })
});

public string BuildJwt()
{
    var keySecret = authenticationConfiguration["JwtSigningKey"];
    var symmetricKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keySecret));

    var creds = new SigningCredentials(symmetricKey, SecurityAlgorithms.HmacSha256);

    var token = new JwtSecurityToken(
        issuer: TokenIssuer,
        audience: TokenAudience,
        claims: claimsPrincipal.Claims,
        expires: DateTime.Now.AddMinutes(20),
        signingCredentials: creds
    );

    return new JwtSecurityTokenHandler().WriteToken(token);
}

Ensuite, configurez le pipeline d'authentification dans la méthode Configure méthode :

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

Utiliser un middleware d'authentification

Assurez-vous que le middleware app.UseAuthentication() est placé avant tout middleware nécessitant des informations utilisateur, tel que app.UseMvc( ). Cela vérifiera la présence d'un jeton Bearer dans l'en-tête d'autorisation.

Politique d'autorisation (facultatif)

Si vous le souhaitez, spécifiez une politique d'autorisation pour restreindre l'accès à certains contrôleurs ou actions. uniquement pour les jetons porteur :

services.AddAuthorization(auth =>
{
    auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
        .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType)
        .RequireAuthenticatedUser().Build());
});

Génération du Jeton

Pour générer le jeton pour l'authentification, utilisez la méthode BuildJwt définie précédemment. Par exemple, dans une action du contrôleur :

[HttpPost]
public string AnonymousSignIn()
{
    return BuildJwt();
}

Test et validation

Obtenir le token et valider sa signature à l'aide d'un outil comme jwt.io, en utilisant le secret clé spécifiée dans AuthenticationConfiguration.

En suivant attentivement ces instructions, vous pouvez implémenter avec succès l'authentification basée sur des jetons dans votre application ASP.NET Core WebApi et sécurisez efficacement vos points de terminaison API.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn