Testar permissões de consentimento específicas do recurso no Teams
O consentimento específico do recurso (RSC) é uma arquitetura de autorização criada pelo Microsoft Teams e identidade da Microsoft que permite conceder acesso limitado a uma aplicação.
Através do RSC, um utilizador autorizado pode conceder a uma aplicação acesso aos dados de uma instância específica de um tipo de recurso em vez de todas as instâncias em todo o inquilino. Por exemplo, uma pessoa proprietária da equipa A e da equipa B pode decidir atribuir os dados da aplicação Contoso apenas à equipa A e não à equipa B. O mesmo conceito de acesso a dados no âmbito aplica-se a conversas e reuniões. Para obter mais informações, veja Consentimento específico do recurso (RSC).
Pré-requisitos
Verifique se as seguintes alterações de manifesto do aplicativo para consentimento específico do recurso antes de testar:
Permissões RSC para a versão 1.12 e posterior do manifesto da aplicação
Adicione uma chave webApplicationInfo ao manifesto do aplicativo com os seguintes valores:
Nome | Tipo | Descrição |
---|---|---|
id |
Cadeia de caracteres | O seu ID da aplicação Microsoft Entra. Para obter mais informações, consulte Registar a sua aplicação no centro de administração do Microsoft Entra. |
resource |
Cadeia de caracteres | Este campo não tem nenhuma operação na RSC, mas deve ser adicionado e ter um valor para evitar uma resposta de erro; qualquer cadeia de caracteres fará isso. |
Especifique as permissões necessárias para o aplicativo.
Nome | Tipo | Descrição |
---|---|---|
authorization |
Objeto | Lista de permissões que o aplicativo precisa para funcionar. Para obter mais informações, consulte autorização. |
Exemplo de RSC em uma equipe
"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"
}
]
}
}
Exemplo de RSC em um chat
"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"
}
]
}
}
Observação
Se o aplicativo tiver o objetivo de dar suporte à instalação nos escopos de equipe e chat, as permissões de equipe e chat poderão ser especificadas no mesmo manifesto em authorization
Permissões RSC para a versão 1.11 e anterior do manifesto da aplicação
Adicione uma chave webApplicationInfo ao manifesto do aplicativo com os seguintes valores:
Nome | Tipo | Descrição |
---|---|---|
id |
Cadeia de caracteres | O seu ID da aplicação Microsoft Entra. Para obter mais informações, consulte Registar a sua aplicação no centro de administração do Microsoft Entra. |
resource |
Cadeia de caracteres | Este campo não tem nenhuma operação na RSC, mas deve ser adicionado e ter um valor para evitar uma resposta de erro; qualquer cadeia de caracteres fará isso. |
applicationPermissions |
Matriz de cadeias de caracteres | Permissões RSC para a sua aplicação. Para obter mais informações, veja Permissões de RSC suportadas. |
Exemplo de RSC em uma equipe
"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"
]
}
Exemplo de RSC em um chat
"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"
]
}
Observação
Se o aplicativo tiver o objetivo de dar suporte à instalação nos escopos de equipe e chat, as permissões de equipe e chat poderão ser especificadas no mesmo manifesto em applicationPermissions
Importante
No manifesto do aplicativo, inclua apenas as permissões RSC que você deseja que seu aplicativo tenha.
Observação
Se a aplicação se destinar a aceder a APIs de chamadas ou multimédia, deve webApplicationInfo.Id
ser o ID da aplicação Microsoft Entra de um Azure Bot Service.
O teste adicionou permissões de RSC a uma equipe usando o aplicativo Postman
Para verificar se as permissões RSC estão sendo respeitadas pelo conteúdo da solicitação de API, você precisa copiar o código do teste JSON do RSC para a equipe em seu ambiente local e atualizar os seguintes valores:
azureADAppId
: O ID da aplicação Microsoft Entra da sua aplicação.azureADAppSecret
: a palavra-passe da aplicação Microsoft Entra.token_scope
: o escopo é necessário para obter um token. Defina o valor comohttps://graph.microsoft.com/.default
.teamGroupId
: pode obter o ID do grupo de equipa a partir do cliente do Teams da seguinte forma:- No cliente do Teams, selecione Teams na barra de navegação à esquerda.
- Selecione o chat em que o aplicativo está instalado no menu suspenso.
- Selecione o ícone Mais opções (⋯).
- SelecioneObter um link para a equipe.
- Copie e salve o valor groupId da cadeia de caracteres.
O teste adicionou permissões RSC a um chat usando o aplicativo Postman
Para verificar se as permissões RSC estão sendo respeitadas pelo conteúdo da solicitação de API, você precisa copiar o código de teste JSON do RSC para chats para seu ambiente local e atualizar os seguintes valores:
azureADAppId
: O ID da aplicação Microsoft Entra da sua aplicação.azureADAppSecret
: a palavra-passe da aplicação Microsoft Entra.token_scope
: o escopo é necessário para obter um token. Defina o valor comohttps://graph.microsoft.com/.default
.tenantId
: o nome ou o ID de Objeto do Microsoft Entra do seu inquilino.chatId
: pode obter o ID do tópico de chat a partir do cliente Web do Teams da seguinte forma:- No cliente do Teams, selecione Chat na barra de navegação à esquerda.
- Selecione o chat em que o aplicativo está instalado no menu suspenso.
- Copie o URL da web e salve o ID do tópico de chat da string.
Usar o Postman
- Abra o aplicativo Postman.
- Selecione Arquivo>Importar>Importar arquivo para carregar o arquivo JSON atualizado do seu ambiente.
- Escolha a guia Conjuntos.
- Selecione a divisa > ao lado do Testar RSC para expandir a exibição de detalhes e ver as solicitações de API.
Execute toda a coleção de permissões para cada chamada à API. As permissões especificadas no manifesto do aplicativo devem ser bem-sucedidas, enquanto as não especificadas devem falhar com um código de status HTTP 403. Verifique todos os códigos de estado de resposta para confirmar que o comportamento das permissões RSC na sua aplicação corresponde às expectativas.
Observação
Para testar chamadas específicas à API DELETE e READ, adicione esses cenários de instância ao arquivo JSON.
Testar permissões RSC revogadas usando o Postman
- Desinstale o aplicativo do recurso específico.
- Siga as etapas para chat ou equipe:
- Verifique todos os códigos de status de resposta para confirmar se as chamadas à API específicas falharam com um código de status HTTP 403.