Partager via


Tutoriel : Utiliser le contrôle d'accès basé sur les rôles dans votre MAUI .NET

Ce didacticiel montre comment ajouter des rôles d’application à l’interface utilisateur de l’application multiplateforme .NET (.NET MAUI) et les recevoir dans le jeton d’ID.

Dans ce tutoriel, vous allez apprendre à :

  • Accédez aux rôles dans le jeton d'ID.

Prérequis

Recevoir des revendications de groupes et de rôles dans .NET MAUI

Une fois que vous avez configuré le locataire de votre client, vous pouvez récupérer vos revendications de rôles et de groupes dans votre application cliente. Les revendications de rôles et de groupes sont toutes deux présentes dans le jeton d'ID et le jeton d'accès. Les jetons d’accès sont validés uniquement dans les API web pour lesquelles ils ont été acquis par un client. Le client ne doit pas valider les jetons d'accès.

Le .NET MAUI doit vérifier les demandes de rôles d'application dans le jeton d'identification pour implémenter l'autorisation côté client.

Dans cette série de didacticiels, vous avez créé une application .NET MAUI dans laquelle vous avez développé ClaimsView.xaml.cs pour gérer les ClaimsView données. Dans ce fichier, nous inspectons le contenu des jetons d'identification. La valeur de la revendication de rôles est vérifiée dans l'extrait de code suivant :

Pour accéder à la demande de rôle, vous pouvez modifier l'extrait de code comme suit :

var idToken = PublicClientSingleton.Instance.MSALClientHelper.AuthResult.IdToken;
var handler = new JwtSecurityTokenHandler();
var token = handler.ReadJwtToken(idToken);
// Get the role claim value
var roleClaim = token.Claims.FirstOrDefault(c => c.Type == "roles")?.Value;

if (!string.IsNullOrEmpty(roleClaim))
{
    // If the role claim exists, add it to the IdTokenClaims
    IdTokenClaims = new List<string> { roleClaim };
}
else
{
    // If the role claim doesn't exist, add a message indicating that no role claim was found
    IdTokenClaims = new List<string> { "No role claim found in ID token" };
}

Claims.ItemsSource = IdTokenClaims;

Remarque

Pour lire le jeton d'identification, vous devez installer le package System.IdentityModel.Tokens.Jwt.

Si vous affectez un utilisateur à plusieurs rôles, la chaîne de rôles contient tous les rôles séparés par une virgule, tels que Orders.Manager, Store.Manager,.... Veillez à générer votre application pour gérer les conditions suivantes :

  • Absence de revendications de rôles dans le jeton
  • L'utilisateur n'a été affecté à aucun rôle
  • Plusieurs valeurs dans la revendication de rôles lorsque vous affectez un utilisateur à plusieurs rôles

Lorsque vous définissez des rôles d'application pour votre application, il est de votre responsabilité d'implémenter une logique d'autorisation pour ces rôles.

Étapes suivantes

Pour plus d'informations sur les revendications de groupe et pour prendre des décisions éclairées concernant l'utilisation des rôles ou des groupes d'application, consultez :