Conceder permissões RSC ao seu aplicativo

O RSC (consentimento específico do recurso) é uma integração do Microsoft Teams e microsoft API do Graph que permite que seu aplicativo use pontos de extremidade de API para gerenciar recursos específicos, equipes, chats ou usuários em uma organização.

Nesta seção, você aprenderá a:

  1. Adicionar permissões do RSC ao seu aplicativo teams
  2. Instalar seu aplicativo em uma equipe, chat ou usuário
  3. Verificar a permissão RSC do aplicativo concedida ao seu aplicativo

Adicionar permissões do RSC ao seu aplicativo teams

Para adicionar permissões RSC ao seu aplicativo, siga estas etapas:

  1. Registre seu aplicativo com plataforma de identidade da Microsoft usando o centro de administração do Microsoft Entra.
  2. Atualize o manifesto do aplicativo (anteriormente chamado de manifesto do aplicativo teams).

Registre seu aplicativo com plataforma de identidade da Microsoft usando o centro de administração do Microsoft Entra

O centro de administração do Microsoft Entra fornece uma plataforma central para você registrar e configurar seus aplicativos. Você deve registrar seu aplicativo no centro de administração do Microsoft Entra para se integrar à plataforma de identidade e chamar APIs do Graph. Para obter mais informações, confira registrar um aplicativo com a plataforma de identidade.

Aviso

Você não deve compartilhar sua ID do aplicativo Microsoft Entra em vários aplicativos do Teams. Deve haver um mapeamento 1:1 entre um aplicativo do Teams e um aplicativo Microsoft Entra. A instalação de vários aplicativos do Teams associados ao mesmo Microsoft Entra ID do aplicativo causará falhas de instalação ou de runtime.

Atualizar seu manifesto do aplicativo

Você deve declarar permissões RSC no arquivo manifest.json do aplicativo. Você não precisa adicionar as permissões não RSC ao manifesto do aplicativo, pois centro de administração do Microsoft Entra as armazena.

Solicitar permissões RSC para o aplicativo Teams

Para solicitar permissões RSC para um aplicativo, liste as permissões necessárias pelo aplicativo na seção de autorização do manifesto do aplicativo. As instruções podem variar de acordo com a versão do manifesto do aplicativo.

Observação

Para permissões delegadas, use o manifesto do aplicativo v1.12 ou posterior.

Sempre que um usuário autorizado instala seu aplicativo no Teams, as permissões RSC solicitadas no manifesto do aplicativo são mostradas ao usuário. As permissões são concedidas como parte do processo de instalação do aplicativo.


Permissões RSC para manifesto de aplicativo v1.12 ou posterior

Para adicionar a permissão RSC no manifesto do aplicativo:

  1. Adicione a chave webApplicationInfo ao manifesto do aplicativo com os seguintes valores:

    Nome Tipo Descrição
    id Cadeia de caracteres Sua ID do aplicativo Microsoft Entra. Para obter mais informações, confira registrar seu aplicativo no centro de administração do Microsoft Entra.
    resource Cadeia de caracteres Esse campo não tem nenhuma operação no RSC, mas você deve adicionar um valor para evitar uma resposta de erro. Você pode adicionar qualquer cadeia de caracteres como valor.
  2. Adicione permissões necessárias pelo seu aplicativo.

    Nome Tipo Descrição
    authorization Objeto Lista de permissões que o aplicativo precisa para funcionar. Para obter mais informações, confira autorização no manifesto do aplicativo.

    Se um aplicativo tiver o objetivo de dar suporte à instalação em escopos de equipe e chat, as permissões de equipe e chat poderão ser especificadas no mesmo manifesto do aplicativo em authorization.

Exemplo de permissões 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": "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"
            }
        ]
    }
}

Exemplo de permissões 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"
            },
            {
                "name": "MeetingStage.Write.Chat",
                "type": "Delegated"
            }
        ]
    }
}

Exemplo de permissões RSC para o usuário:

"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"
            },
        ]
    }
}


Permissões RSC para manifesto de aplicativo v1.11 ou anterior

Observação

É recomendável usar o manifesto do aplicativo v1.12 ou posterior.

Adicione a chave webApplicationInfo ao manifesto do aplicativo com os seguintes valores:

Nome Tipo Descrição
id Cadeia de caracteres Sua ID do aplicativo Microsoft Entra. Para obter mais informações, confira registrar seu aplicativo no centro de administração do Microsoft Entra.
resource Cadeia de caracteres Esse campo não tem nenhuma operação no RSC, mas você deve adicionar um valor para evitar uma resposta de erro. Você pode adicionar qualquer cadeia de caracteres como valor.
applicationPermissions Matriz de cadeias de caracteres Permissões RSC para seu aplicativo. Para obter mais informações, consulte Permissões RSC com suporte.

Se um aplicativo tiver o objetivo de dar suporte à instalação em escopos de equipe e chat, as permissões de equipe e chat poderão ser especificadas no mesmo manifesto do aplicativo em applicationPermissions.

Exemplo de permissões 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",
        "TeamsAppInstallation.Read.Group",
        "TeamsTab.Read.Group",
        "TeamsTab.Create.Group",
        "TeamsTab.ReadWrite.Group",
        "TeamsTab.Delete.Group",
        "TeamMember.Read.Group",
        "TeamsActivity.Send.Group"
    ]
  }

Exemplo de permissões 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"
    ]
  }

Exemplo de permissões RSC para um usuário:

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

Instalar seu aplicativo em uma equipe, chat ou usuário

Para instalar seu aplicativo no qual você habilitou a permissão RSC em uma equipe, chat ou usuário, siga estas etapas:

  1. Verifique se você configurou as configurações de consentimento para equipe, chat ou usuário.
  2. Carregue seu aplicativo personalizado no Teams.

Observação

Para ver as configurações do RSC para equipe ou chat, os usuários devem ter uma dessas funções do Microsoft 365:

  • Administrador global
  • Leitor global
  • Administrador do Teams
  • Administrador de Função Privilegiada

Os controles no nível do locatário das permissões RSC do aplicativo variam de acordo com o tipo de recurso.

Para permissões delegadas, qualquer usuário autorizado pode consentir com as permissões solicitadas pelo aplicativo.

Aviso

A maneira como você gerencia as configurações de permissão do RSC de equipe e chat está sendo atualizada. O período de pré-seleção para nuvens do governo começou e continua até 14 de maio de 2024. Durante esse período, as organizações de nuvem do governo podem continuar a usar o Consentimento do Proprietário do Grupo. Para todas as outras organizações, a seguir estão as instruções para modificar as configurações de consentimento no PowerShell.

Para organizações em nuvens governamentais, você pode gerenciar configurações de consentimento com as configurações de consentimento do proprietário do grupo em centro de administração do Microsoft Entra até 14 de maio de 2024.

As configurações RSC de nível de locatário são gerenciadas pelo PowerShell e API do Graph. Para obter mais informações sobre como gerenciar as configurações do Microsoft Graph com o PowerShell, confira Introdução ao SDK do Microsoft Graph PowerShell.

Você pode usar o Connect-MgGraph cmdlet e conectar-se com as seguintes permissões:

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

A seguir estão os estados disponíveis para as configurações do PowerShell e cada seção mostra exemplos de como usar esses estados para ajustar suas configurações:

Estado do PowerShell Descrição
ManagedByMicrosoft Esse é o estado padrão para todos os locatários. Ele permite que as permissões RSC de chat e equipe sejam consentidas para todos os usuários, mas podem ser alteradas a qualquer momento a critério da Microsoft.
EnabledForAllApps Qualquer aplicativo que solicite permissões RSC pode ser consentido por usuários (proprietários de recursos) em seu locatário.
DisabledForAllApps Nenhuma permissão RSC pode ser consentida pelos usuários.

Configurar o RSC da equipe por meio de cmdlets do PowerShell

Você pode configurar quais usuários podem consentir com aplicativos que acessam os dados de suas equipes usando os estados disponíveis do PowerShell, como ManagedByMicrosoft, EnableedForAllApps e DisabledForAllApps.

O exemplo a seguir mostra como habilitar o RSC da equipe para todos os aplicativos:

Set-MgBetaTeamRscConfiguration -State EnabledForAllApps

Configurar o RSC de chat por meio de cmdlets do PowerShell

Você pode configurar quais usuários podem consentir com aplicativos que acessam os dados de seus chats usando os estados disponíveis do PowerShell, como ManagedByMicrosoft, EnableedForAllApps e DisabledForAllApps.

O exemplo a seguir mostra como habilitar o RSC de chat para todos os aplicativos:

Set-MgBetaChatRscConfiguration -State EnabledForAllApps

Configurar configurações de consentimento do proprietário do usuário para RSC para um usuário usando as APIs do Graph

Você pode habilitar ou desabilitar o RSC para o usuário usando API do Graph. A isUserPersonalScopeResourceSpecificConsentEnabled propriedade em teamsAppSettings determina se o RSC do usuário está habilitado no locatário.

A captura de tela mostra a configuração do usuário do Graph RSC.

O valor padrão da propriedade baseia-se em se as isUserPersonalScopeResourceSpecificConsentEnabledconfigurações de consentimento do usuário são ativadas ou desativadas no locatário quando o RSC para usuário é usado pela primeira vez. O valor padrão é definido quando:

Observação

Administração controle é adicionado para permitir ou bloquear as configurações de consentimento do RSC com base na confidencialidade dos dados acessados. Ele não se baseia no comutador de master único que habilita ou desabilita as configurações de consentimento para permissões RSC do aplicativo para todos os aplicativos no locatário.


Carregar seu aplicativo personalizado no Teams

Se o administrador do Teams permitir uploads de aplicativos personalizados, você poderá carregar seu aplicativo personalizado diretamente em uma equipe, chat ou usuário específico.

Verificar a permissão RSC do aplicativo concedida ao seu aplicativo

Para verificar as permissões RSC do aplicativo, siga estas etapas:

  1. Obtenha um token de acesso do plataforma de identidade da Microsoft.
  2. Verifique as permissões RSC concedidas a um recurso específico.

Obter um token de acesso da plataforma de identidade da Microsoft

Para fazer API do Graph chamadas, você deve obter um token de acesso para seu aplicativo da plataforma de identidade. Antes que seu aplicativo possa obter um token da plataforma de identidade, você deve registrar seu aplicativo no centro de administração do Microsoft Entra. O token de acesso contém informações sobre seu aplicativo e suas permissões para os recursos e APIs disponíveis por meio do Microsoft Graph.

Você deve ter os seguintes valores do processo de registro Microsoft Entra para recuperar um token de acesso da plataforma de identidade:

  • ID do aplicativo: a ID do aplicativo atribuída pelo centro de administração do Microsoft Entra ao seu aplicativo. Se o aplicativo der suporte ao SSO (logon único), você deverá usar a mesma ID do aplicativo para seu aplicativo e SSO.
  • Segredo do cliente ou Certificado: a senha do aplicativo ou o par de chaves público ou privado que é o certificado. O segredo ou certificado do cliente não é necessário para aplicativos nativos.
  • URI de redirecionamento: a URL do aplicativo para receber respostas de Microsoft Entra ID.

Para obter mais informações, consulte Obter acesso em nome de um usuário e Obtenha acesso sem um usuário.

Verifique as permissões RSC concedidas a um recurso específico

Você pode marcar o tipo de permissão RSC concedida a um recurso no aplicativo:

  • Para permissões RSC do aplicativo, chame as seguintes APIs para recuperar a lista de aplicativos instalados em uma equipe, chat ou usuário:

    Estas são todas as permissões RSC de aplicativo concedidas neste recurso específico. Cada entrada na lista pode ser correlacionada ao aplicativo Teams, correspondendo à clientAppId lista de concessões de permissão com a webApplicationInfo.Id propriedade no manifesto do aplicativo.

  • As permissões RSC delegadas são permissões somente para cliente do Teams. Você não pode recuperar a lista de aplicativos instalados em uma equipe ou chat, pois essas permissões são concedidas quando um usuário interage com o aplicativo.

Importante

As permissões RSC não são atribuídas a um usuário. As chamadas são feitas com permissões de aplicativo, não permissões delegadas pelo usuário. O aplicativo pode ser autorizado a executar ações que o usuário não pode, como excluir uma guia. Você deve examinar a intenção do proprietário da equipe ou do proprietário do chat para seu uso antes de fazer chamadas de API RSC. Para obter mais informações, consulte Visão geral da API do Microsoft Teams.

Depois que o aplicativo tiver sido instalado em um recurso, você poderá usar o Microsoft Graph Explorer para exibir as permissões concedidas ao aplicativo no recurso.

Verifique seu aplicativo para obter permissões de RSC adicionadas em uma equipe

  1. Obtenha o groupId do Teams.

  2. No Teams, selecione Teams no painel esquerdo.

  3. Selecione a equipe em que o aplicativo deve ser instalado.

  4. Selecione as reticências ●●● para essa equipe.

  5. Selecione Obter link para a equipe na lista suspensa.

  6. Copie e salve o valor groupId na caixa de diálogo Obter um link para a equipe pop-up.

  7. Entre no Explorador do Graph.

  8. Faça uma chamada GET para este ponto de extremidade: https://graph.microsoft.com/beta/teams/{teamGroupId}/permissionGrants.

    O clientAppId campo na resposta deve ser mapeado para o webApplicationInfo.id especificado no manifesto do aplicativo.

    A captura de tela mostra a resposta do explorador do Graph à chamada GET para permissões de RSC da equipe.

Para obter mais informações sobre como obter detalhes dos aplicativos instalados em uma equipe específica, consulte obter os nomes e outros detalhes dos aplicativos instalados na equipe especificada.

Verifique seu aplicativo para obter permissões de RSC adicionadas em um chat

  1. Obtenha a ID do encadeamento de bate-papo do cliente Web do Teams.

  2. No cliente Web do Teams, selecione Chat no painel esquerdo.

  3. Selecione o chat em que você instalou o aplicativo na lista suspensa.

  4. Copie o URL da web e salve o ID do tópico de chat da string.

    A captura de tela mostra a ID do thread do Chat da URL da Web.

  5. Entre no Explorador do Graph.

  6. Faça uma chamada GET para o seguinte ponto de extremidade: https://graph.microsoft.com/beta/chats/{chatId}/permissionGrants.

    O clientAppId campo na resposta deve ser mapeado para o webApplicationInfo.id especificado no manifesto do aplicativo.

    A captura de tela mostra a resposta do explorador do Graph à chamada GET para permissões de chat RSC.

Para obter mais informações sobre como obter detalhes de aplicativos instalados em um chat específico, consulte obter os nomes e outros detalhes dos aplicativos instalados no chat especificado.

Verifique se o aplicativo adicionou permissões RSC para um usuário

  1. Use a API Obter usuário. Na url de solicitação, passe o UPN do usuário e, do corpo da resposta, use o id campo como ID do usuário.

  2. Entre no Explorador do Graph.

  3. Faça uma chamada GET para este ponto de extremidade: https://graph.microsoft.com/beta/users/{user-id}/permissionGrants.

    Como alternativa, você pode passar o UPN do usuário em vez do user-id.

    O clientAppId campo na resposta deve ser mapeado para o webApplicationInfo.id especificado no manifesto do aplicativo teams.

    A captura de tela mostra a resposta do explorador do Graph à chamada GET para permissões RSC do usuário.

Para obter mais informações sobre como obter detalhes dos aplicativos instalados para o usuário, confira obter os nomes e outros detalhes dos aplicativos instalados para o usuário.

Exemplo de código

Nome de exemplo Descrição .NET Node.js Manifesto do aplicativo
RSC (Consentimento Específico do Recurso) Este código de exemplo descreve o processo para usar o RSC para chamar APIs do Graph. View View Exibir

Confira também