ajouter des rôles d’application dans votre application et les recevoir dans le jeton

Le contrôle d’accès en fonction du rôle (RBAC) est un mécanisme populaire pour appliquer l’autorisation dans des applications. RBAC permet aux administrateurs d’accorder des autorisations aux rôles plutôt qu’à des utilisateurs ou groupes spécifiques. L’administrateur peut alors attribuer des rôles aux différents utilisateurs et groupes pour contrôler l’accès au contenu et aux fonctionnalités.

En utilisant le RBAC avec des rôles d’application et des revendications de rôle, les développeurs peuvent mettre en place des autorisations en toute sécurité dans leurs applications sans beaucoup d’efforts.

Une autre approche consiste à utiliser des groupes Azure Active Directory (Azure AD) et des revendications de groupe, comme indiqué dans l’exemple de code active-directory-aspnetcore-webapp-openidconnect-v2 sur GitHub. Les groupes Azure AD et les rôles d’application ne sont pas mutuellement exclusifs et peuvent être utilisés ensemble pour offrir un contrôle d’accès encore plus précis.

Déclarer des rôles pour une application

Vous définissez des rôles d’application à l’aide du Portail Azure lors du processus d’inscription de l’application. Les rôles d’application sont définis sur une inscription d’application qui représente un service, une application ou une API. Quand un utilisateur se connecte à l’application, Azure AD émet une revendication roles pour chaque rôle qui a été octroyé à l’utilisateur ou au principal de service. Cela peut être utilisé pour implémenter l’autorisation basée sur les revendications. Les rôles d’application peuvent être affectés à un utilisateur ou à un groupe d’utilisateurs. Les rôles d’application peuvent également être affectés au principal du service pour une autre application, ou au principal du service pour une identité managée.

Actuellement, si vous ajoutez un principal de service à un groupe, puis affectez un rôle d’application à ce groupe, Azure AD n’ajoute pas la revendication roles aux jetons qu’il émet.

Les rôles d’application sont déclarés à l’aide des rôles d’application dans le Portail Azure :

Le nombre de rôles que vous ajoutez est compté pour les limites définies pour un manifeste d’application par Azure AD. Pour plus d’informations sur ces limites, consultez la section Limites du manifeste de Référence du manifeste d’application Azure Active Directory.

Interface utilisateur des rôles d'application

Pour créer un rôle d’application à l’aide de l’interface utilisateur du portail Azure :

  1. Connectez-vous au portail Azure.

  2. Si vous avez accès à plusieurs locataires, utilisez le filtre Répertoire + abonnement dans le menu du haut pour sélectionner le locataire qui contient l’inscription d’application à laquelle vous souhaitez ajouter un rôle d’application.

  3. Recherchez et sélectionnez Azure Active Directory.

  4. Sous Gérer, sélectionnez Inscriptions d’applications, puis sélectionnez l’application dans laquelle vous souhaitez définir des rôles d’application.

  5. Sélectionnez Rôles d’application, puis Créer un rôle d’application.

    Volet Rôles d’application d’une inscription d’application dans le portail Azure

  6. Dans le volet Créer un rôle d’application , entrez les paramètres du rôle. Le tableau qui suit l’image décrit chaque réglage et leurs paramètres.

    Volet contextuel de création de rôles d’application d’une inscription d’application dans le portail Azure

    Champ Description Exemple
    Nom complet Nom d'affichage du rôle d’application qui apparaît lors du consentement de l'administrateur et de l'affectation de l'application. Cette valeur peut contenir des espaces. Survey Writer
    Types de membres autorisés Spécifie si ce rôle d’application peut être attribué aux utilisateurs, aux applications ou aux deux.

    Lorsqu’ils sont disponibles pour applications, les rôles d’application s’affichent en tant que permissions d’application sous la section Gérer> Autorisations d’API > Ajouter une autorisation > Mes API > Choisir une API > Permissions d’application lors de l’inscription d’une application.
    Users/Groups
    Valeur Spécifie la valeur de la revendication des rôles que l'application doit attendre dans le jeton. La valeur doit correspondre exactement à la chaîne référencée dans le code de l’application. La valeur ne peut pas contenir d’espaces. Survey.Create
    Description Description plus détaillée du rôle d’application affiché pendant les expériences d’affectation et de consentement des applications d’administration. Writers can create surveys.
    Voulez-vous activer ce rôle d'application ? Spécifie si le rôle d’application est activé. Pour supprimer un rôle d’application, décochez cette case et appliquez la modification avant de tenter l’opération de suppression. Activée
  7. Sélectionnez Appliquer pour enregistrer vos modifications.

Affecter des utilisateurs et des groupes à des rôles

Une fois que vous avez ajouté des rôles d’application à votre application, vous pouvez leur affecter des utilisateurs et des groupes. L’attribution des utilisateurs et des groupes aux rôles peut être effectuée via l’interface utilisateur du portail ou par programmation à l’aide de Microsoft Graph. Lorsque les utilisateurs assignés aux différents rôles d’application se connectent à l’application, leurs jetons portent les rôles qui leur ont été attribués dans la revendication roles.

Pour attribuer des rôles aux utilisateurs et aux groupes à l’aide du portail Azure :

  1. Connectez-vous au portail Azure.
  2. Dans Azure Active Directory, sélectionnez Applications d’entreprise dans le menu de navigation de gauche.
  3. Sélectionnez Toutes les applications pour afficher la liste complète de vos applications. Si votre application n’apparaît pas dans la liste, utilisez les filtres présents en haut de la liste Toutes les applications pour restreindre la liste ou bien faites-la défiler vers le bas pour localiser votre application.
  4. Sélectionnez l’application dans laquelle vous souhaitez assigner des utilisateurs ou un groupe de sécurité aux rôles.
  5. Sous Gérer, sélectionnez Utilisateurs et groupes.
  6. Sélectionnez Ajouter un membre pour ouvrir le volet Ajouter une attribution.
  7. Sélectionnez le sélecteur Utilisateurs et groupes à partir du volet Ajouter une attribution. Une liste d’utilisateurs et de groupes de sécurité s’affiche. Vous pouvez rechercher un utilisateur ou un groupe et sélectionner plusieurs utilisateurs et groupes qui s’affichent dans la liste.
  8. Une fois que vous avez sélectionné des utilisateurs et des groupes, sélectionnez le bouton Sélectionner pour continuer.
  9. Sélectionnez Sélectionner un rôle dans le volet Ajouter une attribution. Tous les rôles que vous avez définis pour l’application s’affichent.
  10. Choisissez un rôle et sélectionnez Sélectionner.
  11. Appuyez sur le bouton Attribuer pour terminer l’attribution des utilisateurs et des groupes à l’application.

Vérifiez que les utilisateurs et les groupes ajoutés figurent dans la liste Utilisateurs et groupes.

Attribuer des rôles d’application aux applications

Une fois que vous avez ajouté des rôles d’application dans votre application, vous pouvez attribuer un rôle d’application à une application cliente à l’aide du portail Azure ou par programmation à l’aide de Microsoft Graph.

Lorsque vous attribuez des rôles d’application à une application, vous créez des autorisations d’application. Les autorisations d’application sont généralement utilisées par les applications démon ou les services back-end qui doivent s’authentifier et effectuer des appels d’API autorisés de façon autonome, sans interaction d’un utilisateur.

Pour attribuer des rôles d’application à une application à l’aide du portail Azure :

  1. Connectez-vous au portail Azure.
  2. Dans Azure Active Directory, sélectionnez Inscriptions d'applications dans le menu de navigation de gauche.
  3. Sélectionnez Toutes les applications pour afficher la liste complète de vos applications. Si votre application n’apparaît pas dans la liste, utilisez les filtres présents en haut de la liste Toutes les applications pour restreindre la liste ou bien faites-la défiler vers le bas pour localiser votre application.
  4. Sélectionnez l’application à laquelle vous souhaitez attribuer un rôle d’application.
  5. Sélectionnez Autorisations de l’API>Ajouter une autorisation.
  6. Sélectionnez l’onglet Mes API, puis l’application pour laquelle vous avez défini des rôles d’application.
  7. Sélectionnez Autorisations de l’application.
  8. Sélectionnez le ou les rôles vous souhaitez affecter.
  9. Sélectionnez le bouton Ajouter des autorisations pour terminer l’ajout du ou des rôles.

Les nouveaux rôles ajoutés doivent apparaître dans le volet Autorisations des API lors de l’inscription de votre application.

Étant donné qu’il s’agit d’autorisations d’application, et non d’autorisations déléguées, un administrateur doit accorder l’autorisation d’utiliser les rôles d’application attribués à l’application.

  1. Dans le volet Autorisations de l’API lors de l’inscription de l’application, sélectionnez Accorder un consentement d’administrateur pour <nom_locataire>.
  2. Sélectionnez Oui quand vous êtes invité à accorder un consentement pour les autorisations demandées.

La colonne État doit indiquer Accordé pour <nom_locataire>.

Scénario d’usage des rôles d’application

Si vous implémentez une logique métier de rôle d’application qui se connecte aux utilisateurs dans votre scénario d’application, commencez par définir les rôles d’application dans Inscriptions d’applications. Ensuite, un administrateur les attribue aux utilisateurs et aux groupes dans le volet Applications d’entreprise. Ces rôles d’application attribués sont inclus avec les jetons émis pour votre application, que ce soit des jetons d’accès quand votre application est l’API appelée par une application ou des jetons d’ID quand votre application se connecte à un utilisateur.

Si vous implémentez une logique métier de rôle d’application dans un scénario d’API d’appel d’application, vous disposez de deux inscriptions d’application. Une inscription d’application est destinée à l’application, et une seconde inscription d’application est pour l’API. Dans ce cas, définissez les rôles d’application et attribuez-les à l’utilisateur ou au groupe dans l’inscription d’application de l’API. Lorsque l’utilisateur s’authentifie auprès de l’application et demande un jeton d’ID pour appeler l’API, une revendication de rôle est incluse dans le jeton d’ID. L’étape suivante consiste à ajouter du code à votre API web pour vérifier ces rôles quand l’API est appelée.

Pour savoir comment ajouter une autorisation à votre API web, consultez API web protégée : Vérifier les étendues et les rôles d’application.

Rôles d’application et groupes d’application

Même si vous pouvez utiliser des rôles ou des groupes d’application pour l’autorisation, les principales différences entre ces deux options peuvent influencer votre choix pour votre scénario.

Rôles d'application Groupes
Les groupes sont spécifiques à une application et définis dans l’inscription de l’application. Ils suivent l’application. Ils ne sont pas spécifiques à une application, mais à un locataire Azure AD.
Les rôles d’application sont supprimés lorsque leur inscription d’application est supprimée. Les groupes restent intacts même si l’application est supprimée.
Fournis dans la revendication roles. Fournis dans la revendication groups.

Les développeurs peuvent utiliser des rôles d’application pour contrôler si un utilisateur peut se connecter à une application ou si une application peut obtenir un jeton d’accès pour une API web. Pour étendre ce contrôle de sécurité aux groupes, les développeurs et les administrateurs peuvent également attribuer des groupes de sécurité à des rôles d’application.

Les rôles d’application sont préférés par les développeurs lorsqu’ils souhaitent décrire et contrôler eux-mêmes les paramètres d’autorisation dans leur application. Par exemple, une application qui utilise des groupes pour l’autorisation s’arrêtera au locataire suivant, car l’ID de groupe et le nom peuvent être différents. Une application utilisant des rôles d’application reste sûre. En fait, l’affectation de groupes à des rôles d’application est populaire avec les applications SaaS pour les mêmes raisons, car elle permet l’approvisionnement de l’application SaaS dans plusieurs locataires.

Étapes suivantes

Pour en savoir plus sur les rôles des applications, consultez les ressources suivantes.