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
Libérer: 2024-12-30 04:39:57
original
630 Les gens l'ont consulté

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);
}
Copier après la connexion

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

app.UseAuthentication();
app.UseAuthorization();
Copier après la connexion

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());
});
Copier après la connexion

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();
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal