Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le consentement spécifique à la ressource (RSC) est une infrastructure d’autorisation créée par Microsoft Teams et Microsoft Identity qui permet d’accorder un accès étendu à une application.
Par le biais de RSC, un utilisateur autorisé peut donner à une application l’accès aux données d’un instance spécifique d’un type de ressource au lieu de chaque instance de l’ensemble du locataire. Par exemple, une personne qui possède à la fois l’équipe A et l’équipe B peut décider de donner les données de l’application Contoso uniquement à l’équipe A et non à l’équipe B. Le même concept d’accès aux données délimité s’applique aux conversations et aux réunions. Pour plus d’informations, consultez le consentement spécifique à la ressource (RSC).
Configuration requise
Vérifiez que vous vérifiez les modifications de manifeste d’application suivantes pour le consentement spécifique à la ressource avant de tester :
Autorisations RSC pour le manifeste d’application version 1.12 et ultérieures
Ajoutez une clé webApplicationInfo au manifeste de votre application avec les valeurs suivantes :
| Nom | Type | Description |
|---|---|---|
id |
String | Votre ID d’application Microsoft Entra. |
resource |
Chaîne | Ce champ n’a aucune opération dans RSC, mais doit être ajouté et avoir une valeur pour éviter une réponse d’erreur ; n’importe quelle chaîne le fera. |
Spécifiez les autorisations nécessaires à l’application.
| Nom | Type | Description |
|---|---|---|
authorization |
Objet | Liste des autorisations dont l’application a besoin pour fonctionner. Pour plus d’informations, consultez d’autorisation. |
Exemple pour 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": "ChannelMeeting.ReadBasic.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"
}
]
}
}
Exemple pour 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"
}
]
}
}
Remarque
Si l’application est destiné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 sous authorization.
Autorisations RSC pour la version 1.11 et versions antérieures du manifeste d’application
Ajoutez une clé webApplicationInfo au manifeste de votre application avec les valeurs suivantes :
| Nom | Type | Description |
|---|---|---|
id |
String | Votre ID d’application Microsoft Entra. |
resource |
Chaîne | Ce champ n’a aucune opération dans RSC, mais doit être ajouté et avoir une valeur pour éviter une réponse d’erreur ; n’importe quelle chaîne le fera. |
applicationPermissions |
Tableau de chaînes | RSC pour votre application. Pour plus d’informations, voir Autorisations RSC prises en charge. |
Exemple pour 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",
"ChannelMeeting.ReadBasic.Group",
"TeamsAppInstallation.Read.Group",
"TeamsTab.Read.Group",
"TeamsTab.Create.Group",
"TeamsTab.ReadWrite.Group",
"TeamsTab.Delete.Group",
"TeamMember.Read.Group",
"TeamsActivity.Send.Group"
]
}
Exemple pour 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"
]
}
Remarque
Si l’application est destiné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 sous applicationPermissions.
Importante
Dans le manifeste de votre application, incluez uniquement les autorisations RSC que vous souhaitez que votre application ait.
Remarque
Si l’application est censée accéder aux API d’appel ou multimédias, il doit s’agir webApplicationInfo.Id de l’ID d’application Microsoft Entra d’un Azure Bot Service.
Tester les autorisations RSC ajoutées à une équipe à l’aide de l’application Postman
Pour vérifier si les autorisations RSC sont respectées par la charge utile de la demande d’API, vous devez copier le code de test JSON RSC pour les d’équipe dans votre environnement local et mettre à jour les valeurs suivantes :
azureADAppId: ID de l’application Microsoft Entra de votre application.azureADAppSecret: mot de passe de votre application Microsoft Entra.token_scope: l’étendue est requise pour obtenir un jeton. Définissez la valeur surhttps://graph.microsoft.com/.default.teamGroupId: Vous pouvez obtenir l’ID du groupe d’équipe à partir du client Teams comme suit :- Dans le client Teams, sélectionnez Teams dans la barre de navigation située à l’extrême gauche.
- Sélectionnez l’équipe dans laquelle l’application est installée dans le menu déroulant.
- Sélectionnez l’icône Autres options (⋯).
- Sélectionnez Obtenir le lien vers l’équipe.
- Copiez et enregistrez la valeur groupId à partir de la chaîne.
Tester les autorisations RSC ajoutées à une conversation à l’aide de l’application Postman
Pour vérifier si les autorisations RSC sont respectées par la charge utile de la demande d’API, vous devez copier le code de test JSON RSC pour les conversations dans votre environnement local et mettre à jour les valeurs suivantes :
azureADAppId: ID de l’application Microsoft Entra de votre application.azureADAppSecret: mot de passe de votre application Microsoft Entra.token_scope: l’étendue est requise pour obtenir un jeton. Définissez la valeur surhttps://graph.microsoft.com/.default.tenantId: nom ou ID d’objet Microsoft Entra de votre client.chatId: Vous pouvez obtenir l’ID de thread de conversation à partir du client web Teams comme suit :- Dans le client web Teams, sélectionnez conversation dans la barre de navigation située à l’extrême gauche.
- Sélectionnez la conversation dans laquelle l’application est installée dans le menu déroulant.
- Copiez l’URL web et enregistrez l’ID de thread de conversation à partir de la chaîne.
Utiliser Postman
- Ouvrez l’application Postman.
- Sélectionnez Fichier>Importer>Importer le fichier pour charger le fichier JSON mis à jour à partir de votre environnement.
- Sélectionnez l’onglet Collections.
- Sélectionnez le chevron> à côté de Test RSC pour développer la vue détaillée et voir les demandes API.
Exécutez l’intégralité de la collection d’autorisations pour chaque appel d’API. Les autorisations que vous avez spécifiées dans le manifeste de votre application doivent réussir, tandis que celles qui ne sont pas spécifiées doivent échouer avec un code d’état HTTP 403. Vérifiez tous les codes de status de réponse pour confirmer que le comportement des autorisations RSC dans votre application répond aux attentes.
Remarque
Pour tester des appels d’API DELETE et READ spécifiques, ajoutez ces scénarios d’instance au fichier JSON.
Tester les autorisations RSC révoquées à l’aide de Postman
- Désinstallez l’application de la ressource spécifique.
- Suivez les étapes pour la conversation ou l’équipe :
- Vérifiez tous les codes d’état de réponse pour vérifier que les appels d’API spécifiques ont échoué avec un code d’état HTTP 403.