Accorder des autorisations RSC à votre application

Le consentement spécifique à la ressource (RSC) est une intégration de l’API Microsoft Teams et Microsoft API Graph qui permet à votre application d’utiliser des points de terminaison d’API pour gérer des ressources spécifiques, soit des équipes, des conversations ou des utilisateurs au sein d’une organisation.

Dans cette section, vous apprendrez à :

  1. Ajouter des autorisations RSC à votre application Teams
  2. Installer votre application dans une équipe, une conversation ou un utilisateur
  3. Vérifier que l’autorisation RSC de l’application est accordée à votre application

Ajouter des autorisations RSC à votre application Teams

Pour ajouter des autorisations RSC à votre application, procédez comme suit :

  1. Inscrivez votre application sur la plateforme d’identités Microsoft à l’aide du centre d’administration Microsoft Entra.
  2. Mettez à jour le manifeste de votre application (anciennement appelé manifeste d’application Teams).

Inscrire votre application sur la plateforme d’identités Microsoft à l’aide du centre dʼadministration Microsoft Entra

Le centre d’administration Microsoft Entra fournit une plateforme centrale pour vous permettre d’enregistrer et de configurer vos applications. Vous devez inscrire votre application dans le Centre d’administration Microsoft Entra pour l’intégration à la plateforme d’identités et appeler les API Graph. Pour plus d’informations, consultez Inscrire une application sur la plateforme d’identité.

Avertissement

Vous ne devez pas partager votre ID d’application Microsoft Entra entre plusieurs applications Teams. Il doit y avoir un mappage 1:1 entre une application Teams et une application Microsoft Entra. L’installation de plusieurs applications Teams associées au même ID d’application Microsoft Entra entraînera des échecs d’installation ou d’exécution.

Remarque

Enregistrez votre application dans le même locataire que celui où vous chargez et testez votre application. Si l’inscription de l’application se trouve dans un autre client, seul un administrateur client peut charger l’application. Pour plus d’informations, consultez Charger votre application personnalisée dans Teams.

Mettre à jour le manifeste de l’application

Vous devez déclarer des autorisations RSC dans votre application manifest.json fichier. Vous n’avez pas besoin d’ajouter les autorisations non-RSC au manifeste de l’application car le centre d’administration Microsoft Entra les stocke.

Demander des autorisations RSC pour l’application Teams

Pour demander des autorisations RSC pour une application, répertoriez les autorisations requises par l’application dans la section autorisation du manifeste de l’application. Les instructions peuvent varier en fonction de la version du manifeste de l’application.

Remarque

Pour les autorisations déléguées, utilisez le manifeste d’application v1.12 ou version ultérieure.

Chaque fois qu’un utilisateur autorisé installe votre application dans Teams, les autorisations RSC demandées dans le manifeste de l’application sont affichées à l’utilisateur. Les autorisations sont accordées dans le cadre du processus d’installation de l’application.


Autorisations RSC pour le manifeste d’application v1.12 ou version ultérieure

Pour ajouter une autorisation RSC dans le manifeste de l’application :

  1. Ajoutez la clé webApplicationInfo au manifeste de votre application avec les valeurs suivantes :

    Nom Type Description
    id String Votre ID d’application Microsoft Entra. Pour plus d’informations, consultez Inscrire votre application dans le Centre d’administration Microsoft Entra.
    resource String Ce champ n’a aucune opération dans RSC, mais vous devez ajouter une valeur pour éviter une réponse d’erreur. Vous pouvez ajouter n’importe quelle chaîne comme valeur.
  2. Ajoutez les autorisations nécessaires à votre application.

    Nom Type Description
    authorization Objet Liste des autorisations dont l’application a besoin pour fonctionner. Pour plus d’informations, consultez Autorisation dans le manifeste de l’application.

    Si une application est censée prendre en charge l’installation dans les étendues d’équipe et de conversation, les autorisations d’équipe et de conversation peuvent être spécifiées dans le même manifeste d’application sous authorization.

Exemple d’autorisations RSC dans une équipe :

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp"
    },
"authorization": {
    "permissions": {
        "resourceSpecific": [
            {
                "name": "TeamSettings.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamSettings.ReadWrite.Group",
                "type": "Application"
            },
            {
                "name": "ChannelSettings.Read.Group",
                "type": "Application"
            },
            {
                "name": "ChannelSettings.ReadWrite.Group",
                "type": "Application"
            },
            {
                "name": "Channel.Create.Group",
                "type": "Application"
            },
            {
                "name": "Channel.Delete.Group",
                "type": "Application"
            },
            {
                "name": "ChannelMessage.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamsAppInstallation.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Create.Group",
                "type": "Application"
            },
            {
                "name": "TeamsTab.ReadWrite.Group",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Delete.Group",
                "type": "Application"
            },
            {
                "name": "TeamMember.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamsActivity.Send.Group",
                "type": "Application"
            },
            {
              "name": "ChannelMeeting.ReadBasic.Group",
              "type": "Delegated"
            },
            {
              "name": "ChannelMeetingParticipant.Read.Group",
              "type": "Delegated"
            },
            {
              "name": "ChannelMeetingStage.Write.Group",
              "type": "Delegated"
            }
        ]
    }
}

Exemple d’autorisations RSC dans une conversation :

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp"
    },
"authorization": {
    "permissions": {
        "resourceSpecific": [
            {
                "name": "ChatSettings.Read.Chat",
                "type": "Application"
            },
            {
                "name": "ChatSettings.ReadWrite.Chat",
                "type": "Application"
            },
            {
                "name": "ChatMessage.Read.Chat",
                "type": "Application"
            },
            {
                "name": "ChatMember.Read.Chat",
                "type": "Application"
            },
            {
                "name": "Chat.Manage.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Read.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Create.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Delete.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsTab.ReadWrite.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsAppInstallation.Read.Chat",
                "type": "Application"
            },
            {
                "name": "OnlineMeeting.ReadBasic.Chat",
                "type": "Application"
            },
            {
                "name": "Calls.AccessMedia.Chat",
                "type": "Application"
            },
            {
                "name": "Calls.JoinGroupCalls.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsActivity.Send.Chat",
                "type": "Application"
            },
            {
                "name": "MeetingStage.Write.Chat",
                "type": "Delegated"
            }
        ]
    }
}

Exemple d’autorisations RSC pour l’utilisateur :

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp"
    },
"authorization": {
    "permissions": {
        "orgWide": []
        "resourceSpecific": [
            {
                "name": "InAppPurchase.Allow.User",
                "type": "Delegated"
            },
            {
                "name": "TeamsActivity.Send.User",
                "type": "Application"
            },
        ]
    }
}


Autorisations RSC pour le manifeste d’application v1.11 ou version antérieure

Remarque

Il est recommandé d’utiliser le manifeste d’application v1.12 ou version ultérieure.

Ajoutez la clé webApplicationInfo au manifeste de votre application avec les valeurs suivantes :

Nom Type Description
id String Votre ID d’application Microsoft Entra. Pour plus d’informations, consultez Inscrire votre application dans le Centre d’administration Microsoft Entra.
resource String Ce champ n’a aucune opération dans RSC, mais vous devez ajouter une valeur pour éviter une réponse d’erreur. Vous pouvez ajouter n’importe quelle chaîne comme valeur.
applicationPermissions Tableau de chaînes RSC pour votre application. Pour plus d’informations, voir Autorisations RSC prises en charge.

Si une application est censée prendre en charge l’installation dans les étendues d’équipe et de conversation, les autorisations d’équipe et de conversation peuvent être spécifiées dans le même manifeste d’application sous applicationPermissions.

Exemple d’autorisations RSC dans une équipe :

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp",
    "applicationPermissions": [
        "TeamSettings.Read.Group",
        "TeamSettings.ReadWrite.Group",
        "ChannelSettings.Read.Group",
        "ChannelSettings.ReadWrite.Group",
        "Channel.Create.Group",
        "Channel.Delete.Group",
        "ChannelMessage.Read.Group",
        "TeamsAppInstallation.Read.Group",
        "TeamsTab.Read.Group",
        "TeamsTab.Create.Group",
        "TeamsTab.ReadWrite.Group",
        "TeamsTab.Delete.Group",
        "TeamMember.Read.Group",
        "TeamsActivity.Send.Group"
    ]
  }

Exemple d’autorisations RSC dans une conversation :

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp",
    "applicationPermissions": [
        "ChatSettings.Read.Chat",
        "ChatSettings.ReadWrite.Chat",
        "ChatMessage.Read.Chat",
        "ChatMember.Read.Chat",
        "Chat.Manage.Chat",
        "TeamsTab.Read.Chat",
        "TeamsTab.Create.Chat",
        "TeamsTab.Delete.Chat",
        "TeamsTab.ReadWrite.Chat",
        "TeamsAppInstallation.Read.Chat",
        "OnlineMeeting.ReadBasic.Chat",
        "Calls.AccessMedia.Chat",
        "Calls.JoinGroupCalls.Chat",
        "TeamsActivity.Send.Chat"
    ]
  }

Exemple d’autorisations RSC pour un utilisateur :

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp",
    "applicationPermissions": [
        "TeamsActivity.Send.User"
    ]
  }

Installer votre application dans une équipe, une conversation ou un utilisateur

Pour installer votre application sur laquelle vous avez activé l’autorisation RSC dans une équipe, une conversation ou un utilisateur, procédez comme suit :

  1. Assurez-vous d’avoir configuré les paramètres de consentement pour l’équipe, la conversation ou l’utilisateur.
  2. Chargez votre application personnalisée dans Teams.

Remarque

Pour afficher les paramètres RSC pour l’équipe ou la conversation, les utilisateurs doivent disposer de l’un de ces rôles Microsoft 365 :

  • Administrateur général
  • Lecteur général
  • Administrateur Teams
  • Administrateur de rôle privilégié

Les contrôles au niveau du locataire des autorisations RSC de l’application varient en fonction du type de ressource.

Pour les autorisations déléguées, tout utilisateur autorisé peut consentir aux autorisations demandées par l’application.

Les paramètres RSC au niveau du locataire sont gérés par PowerShell et l’API Graph. Pour plus d’informations sur la gestion des paramètres Microsoft Graph avec PowerShell, consultez Prise en main du Kit de développement logiciel (SDK) Microsoft Graph PowerShell.

Vous pouvez utiliser l’applet de commande et vous Connect-MgGraph connecter avec les autorisations suivantes :

  1. TeamworkAppSettings.ReadWrite.All
  2. Policy.ReadWrite.Authorization
  3. Policy.ReadWrite.PermissionGrant
  4. AppCatalog.Read.All

Voici les états disponibles pour les paramètres PowerShell et chaque section présente des exemples d’utilisation de ces états pour ajuster vos paramètres :

État de PowerShell Description
ManagedByMicrosoft Il s’agit de l’état par défaut pour tous les clients. Elle permet aux autorisations RSC de conversation et d’équipe d’être acceptées pour tous les utilisateurs, mais peut être modifiée à tout moment à la discrétion de Microsoft.
EnabledForAllApps Toute application demandant des autorisations RSC peut être acceptée par les utilisateurs (propriétaires de ressources) de votre client.
DisabledForAllApps Aucune autorisation RSC ne peut être acceptée par les utilisateurs.

Remarque

Nous vous recommandons de laisser vos paramètres de consentement RSC dans l’état par défautManagedByMicrosoft, sauf si votre organisation exige une stratégie de consentement personnalisée pour les applications RSC.


Configurer RSC d’équipe via des applets de commande PowerShell

Vous pouvez configurer les utilisateurs autorisés à donner leur consentement aux applications qui accèdent aux données de leur équipe à l’aide des états PowerShell disponibles, tels que ManagedByMicrosoft, EnabledForAllApps et DisabledForAllApps.

L’exemple suivant montre comment activer Team RSC pour toutes les applications :

Set-MgBetaTeamRscConfiguration -State EnabledForAllApps

Configurer la conversation RSC via des applets de commande PowerShell

Vous pouvez configurer les utilisateurs autorisés à donner leur consentement aux applications qui accèdent aux données de leurs conversations à l’aide des états PowerShell disponibles, tels que ManagedByMicrosoft, EnabledForAllApps et DisabledForAllApps.

L’exemple suivant montre comment activer la conversation RSC pour toutes les applications :

Set-MgBetaChatRscConfiguration -State EnabledForAllApps

Configurer les paramètres de consentement utilisateur propriétaire pour RSC pour un utilisateur à l’aide des API Graph

Vous pouvez activer ou désactiver RSC pour les utilisateurs à l’aide de l’API Graph. La isUserPersonalScopeResourceSpecificConsentEnabled propriété dans teamsAppSettings détermine si l’utilisateur RSC est activé chez le locataire.

La capture d’écran montre la configuration utilisateur Graph RSC.

La valeur par défaut de la isUserPersonalScopeResourceSpecificConsentEnabled propriété est basée sur l’activation ou la désactivation des paramètres de consentement de l’utilisateur dans le locataire lors de la première utilisation de RSC pour l’utilisateur. La valeur par défaut est définie dans les cas suivants :

  • Les TeamsAppSettings sont récupérés pour la première fois.
  • L’application Teams dotée d’autorisations RSC est installée pour un utilisateur.

Remarque

Le contrôle d’Administration est ajouté pour autoriser ou bloquer les paramètres de consentement RSC en fonction de la sensibilité des données consultées. Il n’est pas basé sur le commutateur master unique qui active ou désactive les paramètres de consentement pour les autorisations RSC d’application pour toutes les applications du client.


Charger votre application personnalisée dans Teams

Si votre administrateur Teams autorise les chargements d’applications personnalisées, vous pouvez charger votre application personnalisée directement vers une équipe, une conversation ou un utilisateur spécifique.

Importante

Si vous rencontrez l’erreur suivante lors du chargement indépendant d’une application Teams qui nécessite des autorisations de consentement Resource-Specific (RSC) : WebApplicationInfoIdOfSideloadedAppMustBeInTheSameTenantAsUser

Assurez-vous que l’une des conditions suivantes est remplie :

  • L’utilisateur qui tente d’installer l’application est un administrateur client.
  • L’inscription de l’application associée à l’application Teams a été créée dans le même locataire que l’utilisateur.

Vérifier que l’autorisation RSC de l’application est accordée à votre application

Pour vérifier les autorisations RSC de l’application, procédez comme suit :

  1. Obtenez un jeton d’accès à partir de la Plateforme d’identités Microsoft.
  2. Vérifiez les autorisations RSC accordées à une ressource spécifique.

Obtenir un jeton d’accès à partir de la plateforme d’identités Microsoft

Pour effectuer API Graph appels, vous devez obtenir un jeton d’accès pour votre application à partir de la plateforme d’identité. Avant que votre application puisse obtenir un jeton à partir de la plateforme d’identités, vous devez l’inscrire dans le centre d’administration Microsoft Entra. Le jeton d’accès contient des informations sur votre application et ses autorisations pour les ressources et les API disponibles via Microsoft Graph.

Vous devez disposer des valeurs suivantes du processus d’inscription de Microsoft Entra pour récupérer un jeton d’accès à partir de la plateforme d’identités :

  • ID d’application : ID d’application attribué par le centre d’administration Microsoft Entra à votre application. Si votre application prend en charge l’authentification unique (SSO), vous devez utiliser le même ID d’application pour votre application et l’authentification unique.
  • Secret client ou certificat : mot de passe de votre application ou paire de clés publique ou privée qu’est le certificat. Le secret client ou le certificat n’est pas requis pour les applications natives.
  • URI de redirection : URL de votre application pour recevoir des réponses de Microsoft Entra ID.

Pour plus d’informations, consultez obtenir l’accès au nom d’un utilisateur et obtenir l’accès sans utilisateur.

Vérifier les autorisations RSC accordées à une ressource spécifique

Vous pouvez case activée le type d’autorisation RSC accordé à une ressource dans l’application :

  • Pour les autorisations RSC d’application, appelez les API suivantes pour récupérer la liste des applications installées dans une équipe, une conversation ou un utilisateur :

    Ce sont toutes les autorisations RSC d’application accordées sur cette ressource spécifique. Chaque entrée de la liste peut être corrélée à l’application Teams en faisant correspondre la clientAppId valeur de la liste d’autorisations accordée à la webApplicationInfo.Id propriété dans le manifeste de l’application.

  • Les autorisations RSC déléguées sont des autorisations client Teams uniquement. Vous ne pouvez pas récupérer la liste des applications installées dans une équipe ou une conversation, car ces autorisations sont accordées lorsqu’un utilisateur interagit avec l’application.

Importante

Les autorisations RSC ne sont pas attribuées à un utilisateur. Les appels sont effectués avec des autorisations d’application, et non des autorisations déléguées par l’utilisateur. L’application peut être autorisée à effectuer des actions que l’utilisateur ne peut pas faire, comme la suppression d’un onglet. Vous devez vérifier l’intention du propriétaire de l’équipe ou du propriétaire de la conversation pour votre utilisation avant d’effectuer des appels d’API RSC. Pour plus d’informations, consultez vue d’ensemble de l’API Microsoft Teams.

Une fois l’application installée sur une ressource, vous pouvez utiliser l’Explorateur Microsoft Graph pour afficher les autorisations qui ont été accordées à l’application dans la ressource.

Vérifier que votre application a ajouté des autorisations RSC dans une équipe

  1. Obtenez le groupIdde l’équipe à partir de Teams.

  2. Dans Teams, sélectionnez Teams dans le volet gauche.

  3. Sélectionnez l’équipe dans laquelle l’application doit être installée.

  4. Sélectionnez les points de suspension ●●● de cette équipe.

  5. Sélectionnez Obtenir un lien vers l’équipe dans la liste déroulante.

  6. Copiez et enregistrez la valeur groupId à partir de la boîte de dialogue contextuelle Obtenir un lien vers l’équipe .

  7. Connectez-vous à l’Explorateur Graph.

  8. Effectuez un appel GET à ce point de terminaison : https://graph.microsoft.com/beta/teams/{teamGroupId}/permissionGrants.

    Le clientAppId champ de la réponse doit correspondre à celui webApplicationInfo.id spécifié dans le manifeste de l’application.

    Capture d’écran illustrant la réponse de l’Explorateur Graph à l’appel GET pour obtenir les autorisations RSC de l’équipe.

Pour plus d’informations sur la façon d’obtenir des détails sur les applications installées dans une équipe spécifique, consultez obtenir les noms et autres détails des applications installées dans l’équipe spécifiée.

Vérifier que votre application a ajouté des autorisations RSC dans une conversation

  1. Obtenez l’ID de thread de conversation à partir du clientweb Teams.

  2. Dans le client web Teams, sélectionnez Chat dans le volet gauche.

  3. Sélectionnez la conversation dans laquelle vous avez installé l’application dans la liste déroulante.

  4. Copiez l’URL web et enregistrez l’ID de thread de conversation à partir de la chaîne.

    La capture d’écran montre l’ID de fil de discussion de Chat à partir de l’URL web.

  5. Connectez-vous à l’Explorateur Graph.

  6. Effectuez un appel GET au point de terminaison suivant : https://graph.microsoft.com/beta/chats/{chatId}/permissionGrants.

    Le clientAppId champ de la réponse doit correspondre à celui webApplicationInfo.id spécifié dans le manifeste de l’application.

    Capture d’écran illustrant la réponse de l’Explorateur Graph à l’appel GET pour les autorisations RSC.

Pour plus d’informations sur la façon d’obtenir les détails des applications installées dans une conversation spécifique, consultez obtenir les noms et d’autres détails des applications installées dans la conversation spécifiée.

Rechercher dans votre application des autorisations RSC ajoutées pour un utilisateur

  1. Utiliser l’API Obtenir un utilisateur. Dans l’URL de la demande, transmettez le nom UPN de l’utilisateur et, à partir du corps de la réponse, utilisez le id champ comme ID de l’utilisateur.

  2. Connectez-vous à l’Explorateur Graph.

  3. Effectuez un appel GET à ce point de terminaison : https://graph.microsoft.com/beta/users/{user-id}/permissionGrants.

    Vous pouvez également transmettre l’UPN de l’utilisateur au lieu du user-id.

    Le clientAppId champ de la réponse doit correspondre à celui webApplicationInfo.id spécifié dans le manifeste de l’application Teams.

    Capture d’écran illustrant la réponse de l’Explorateur Graph à l’appel GET pour les autorisations RSC de l’utilisateur.

Pour plus d’informations sur la façon d’obtenir des détails sur les applications installées pour l’utilisateur, consultez Obtenir les noms et d’autres détails sur les applications installées pour l’utilisateur.

Exemple de code

Exemple de nom Description .NET Node.js Manifeste d'application
Consentement spécifique à la ressource (RSC) Cet exemple d’application montre comment demander des autorisations RSC (Resource Specific Consent), les utiliser pour appeler Microsoft Graph et énumérer les autorisations par le biais d’un onglet Teams. View View View
Configurer les autorisations RSC Cet exemple montre comment configurer des autorisations de consentement spécifique aux ressources (RSC) dans un manifeste d’application Teams et les utiliser pour appeler Microsoft Graph, ce qui vous permet d’observer des réponses API réelles dans les canaux d’équipe et les conversations de groupe. N/A View N/A

Voir aussi