Conceder permissões RSC ao seu aplicativo

O RSC (consentimento específico de recurso) é uma integração do Microsoft Teams e da 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ê aprende a:

  1. Adicionar permissões RSC ao seu aplicativo Teams
  2. Instale seu aplicativo em uma equipe, chat ou usuário
  3. Verifique se a permissão RSC do aplicativo foi concedida ao seu aplicativo

Adicionar permissões RSC ao seu aplicativo Teams

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

  1. Registre seu aplicativo na 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 do Teams).

Registre seu aplicativo na 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, consulte registrar um aplicativo com a plataforma de identidade.

Aviso

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

Observação

Registre seu aplicativo no mesmo locatário em que você carrega e testa seu aplicativo. Se o registro do aplicativo estiver em um locatário diferente, somente um administrador de locatários poderá carregar o aplicativo. Para obter mais informações, confira Carregar seu aplicativo personalizado no Teams.

Atualizar seu manifesto do aplicativo

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

Solicitar permissões RSC para o aplicativo do Teams

Para solicitar permissões RSC para um aplicativo, liste as permissões que o aplicativo requer 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 para o usuário. As permissões são concedidas como parte do processo de instalação do aplicativo.


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

Para adicionar a permissão RSC ao 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, consulte registrar seu aplicativo no centro de administração do Microsoft Entra.
    resource Cadeia de caracteres Este campo não tem 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 as permissões necessárias para seu 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 no manifesto do aplicativo.

    Se um aplicativo for destinado a dar suporte à instalação nos 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 o manifesto do 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, consulte registrar seu aplicativo no centro de administração do Microsoft Entra.
resource Cadeia de caracteres Este campo não tem 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 RSC para seu aplicativo. Para obter mais informações, consulte Permissões RSC com suporte.

Se um aplicativo for destinado a dar suporte à instalação nos 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"
    ]
  }

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

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

  1. Certifique-se de ter definido 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 de RSC para equipe ou chat, os usuários devem ter uma destas 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.

As configurações de RSC no nível do locatário são gerenciadas pelo PowerShell e pela API do Graph. Para obter mais informações sobre como gerenciar as configurações do Microsoft Graph com o PowerShell, consulte 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

Veja a seguir 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 pode ser alterado a qualquer momento, a critério da Microsoft.
EnabledForAllApps Qualquer aplicativo que solicite permissões RSC pode ser consentido pelos usuários (proprietários de recursos) em seu locatário.
DisabledForAllApps Nenhuma permissão RSC pode ser consentida pelos usuários.

Observação

Recomendamos que você deixe suas configurações de consentimento de RSC no estado padrão ManagedByMicrosoft , a menos que sua organização exija uma política de consentimento personalizada para aplicativos habilitados para RSC.


Configurar o RSC da equipe por meio de cmdlets do PowerShell

Você pode configurar quais usuários têm permissão para consentir que os aplicativos acessem os dados de suas equipes usando os estados disponíveis do PowerShell, como ManagedByMicrosoft, EnabledForAllApps e DisabledForAllApps.

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

Set-MgBetaTeamRscConfiguration -State EnabledForAllApps

Configurar RSC de chat por meio de cmdlets do PowerShell

Você pode configurar quais usuários têm permissão para consentir que os aplicativos acessem os dados de seus chats usando os estados disponíveis do PowerShell, como ManagedByMicrosoft, EnabledForAllApps e DisabledForAllApps.

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

Set-MgBetaChatRscConfiguration -State EnabledForAllApps

Definir as 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 a API do Graph. A isUserPersonalScopeResourceSpecificConsentEnabled propriedade em teamsAppSettings controla se o RSC do usuário está habilitado no locatário.

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

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

  • TeamsAppSettings são recuperados pela primeira vez.
  • O aplicativo Teams com permissões RSC está instalado para um usuário.

Observação

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


Carregue seu aplicativo personalizado no Teams

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

Importante

Se você encontrar o seguinte erro ao fazer o sideload de um aplicativo do Teams que requer permissões RSC (Resource-Specific Consentimento): WebApplicationInfoIdOfSideloadedAppMustBeInTheSameTenantAsUser

Verifique se uma das seguintes condições foi atendida:

  • O usuário que está tentando instalar o aplicativo é um administrador de locatários.
  • O registro do aplicativo associado ao aplicativo Teams foi criado no mesmo locatário que o usuário.

Verifique se a permissão RSC do aplicativo foi concedida ao seu aplicativo

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

  1. Obtenha um token de acesso na 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 do 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 logon único (SSO), você deverá usar a mesma ID do aplicativo para o aplicativo e o SSO.
  • Segredo do cliente ou Certificado: a senha do seu aplicativo ou o par de chaves públicas ou privadas que é o certificado. O segredo ou certificado do cliente não é necessário para aplicativos nativos.
  • URI de redirecionamento: a URL para seu aplicativo receber respostas do 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:

    Essas são todas as permissões RSC de aplicativo concedidas neste recurso específico. Cada entrada na lista pode ser correlacionada ao aplicativo Teams, combinando a 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 com permissões delegadas pelo usuário. O aplicativo pode ter permissão para executar ações que o usuário não pode, como excluir uma guia. Você deve revisar a intenção do proprietário da equipe ou do proprietário do chat para seu uso antes de fazer chamadas à API RSC. Para obter mais informações, consulte Visão geral da API do Microsoft Teams.

Depois que o aplicativo for instalado em um recurso, você poderá usar o Microsoft Graph Explorer para exibir as permissões que foram 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 da caixa de diálogo pop-up Obter um link para a equipe .

  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 mapear para o webApplicationInfo.id especificado no manifesto do aplicativo.

    A captura de tela mostra a resposta do Graph Explorer à chamada GET para permissões 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 de 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 mapear para o webApplicationInfo.id especificado no manifesto do aplicativo.

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

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.

Verificar seu aplicativo para obter permissões RSC adicionadas para um usuário

  1. Use a API Obter usuário. Na URL da solicitação, passe o UPN do usuário e, no 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 transmitir o UPN do usuário em vez do user-idarquivo .

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

    A captura de tela mostra a resposta do Graph Explorer à 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, consulte 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 aplicativo de exemplo demonstra como solicitar permissões RSC (Consentimento Específico de Recurso), usá-las para chamar o Microsoft Graph e enumerar concessões de permissão por meio de uma guia do Teams. View View View
Configurar permissões RSC Este exemplo demonstra como configurar permissões RSC (Consentimento Específico de Recurso) em um manifesto de aplicativo do Teams e usá-las para chamar o Microsoft Graph, permitindo que você observe respostas reais da API nos canais de equipe e chats em grupo. NA View NA

Confira também