.net Core Authorization Policy Example

4 min read Jun 03, 2024
.net Core Authorization Policy Example

Contrôle d'accès avec les politiques d'autorisation dans ASP.NET Core

ASP.NET Core offre une infrastructure puissante pour gérer l'autorisation, permettant de contrôler l'accès aux ressources en fonction des rôles et des revendications des utilisateurs. Les politiques d'autorisation, un élément clé de cette infrastructure, vous permettent de définir des règles personnalisées pour autoriser ou refuser l'accès à des actions spécifiques.

Comprendre les politiques d'autorisation

Les politiques d'autorisation vous permettent de définir des conditions précises pour accorder ou refuser l'accès à une ressource. Ces conditions peuvent être basées sur des rôles, des revendications, des données personnalisées ou une combinaison de ces éléments.

Exemple : Vous pourriez définir une politique qui exige que l'utilisateur soit authentifié et possède le rôle "Administrateur" pour accéder à une page d'administration.

Créer une politique d'autorisation

Pour créer une politique d'autorisation, vous devez d'abord l'enregistrer dans votre application ASP.NET Core. Cela se fait généralement dans la méthode ConfigureServices de la classe Startup.

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthorization(options =>
    {
        options.AddPolicy("Administrateur", policy => 
        {
            policy.RequireRole("Administrateur");
        });
    });
}

Dans cet exemple, nous avons créé une politique appelée "Administrateur" qui exige que l'utilisateur possède le rôle "Administrateur".

Appliquer une politique d'autorisation

Une fois une politique d'autorisation définie, vous pouvez l'appliquer aux contrôleurs ou aux actions spécifiques dans votre application. Cela peut être fait en utilisant l'attribut Authorize avec le nom de la politique en paramètre.

[Authorize(Policy = "Administrateur")]
public class AdministrationController : Controller
{
    // Actions du contrôleur d'administration
}

Dans cet exemple, l'attribut Authorize avec la politique "Administrateur" garantit que seul un utilisateur ayant le rôle "Administrateur" peut accéder aux actions du contrôleur AdministrationController.

Conditions personnalisées

Vous pouvez également créer des politiques d'autorisation avec des conditions personnalisées. Cela vous permet de créer des règles d'autorisation plus flexibles.

Exemple : Vous pourriez créer une politique qui autorise l'accès uniquement aux utilisateurs qui ont un âge supérieur à 18 ans.

public class CustomAuthorizationHandler : AuthorizationHandler
{
    protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, CustomRequirement requirement)
    {
        var user = context.User;
        if (user.HasClaim(c => c.Type == "age" && int.Parse(c.Value) > 18))
        {
            context.Succeed(requirement);
        }

        return Task.CompletedTask;
    }
}

Dans cet exemple, nous avons créé un gestionnaire d'autorisation personnalisé qui vérifie si l'utilisateur a une revendication "âge" avec une valeur supérieure à 18.

Conclusion

Les politiques d'autorisation sont un outil puissant dans ASP.NET Core pour contrôler l'accès aux ressources. En utilisant des politiques d'autorisation, vous pouvez créer des règles d'autorisation précises et flexibles, garantissant la sécurité et la confidentialité de votre application.

Featured Posts