Autenticação baseada em aplicativo no Módulo do PowerShell do Teams

A autenticação baseada em aplicativo é compatível agora no Teams Módulo do PowerShell com

  • Versões 4.7.1-visualização ou posterior em ambientes comerciais & GCC.
  • Versões 5.0.1 - versão prévia ou posterior em ambientes GCC High & DoD.

Cmdlets com suporte

Todos os cmdlets têm suporte agora, exceto os cmdlets mencionados abaixo.

  • New-Team
  • Set-CsOnlineApplicationInstance
  • [Get|Novo|Sync]-CsOnlineApplicationInstance (sem suporte apenas em ambientes GCC High & DoD)
  • *PolicyPackage*
  • *-CsTeamsShiftsConnection*
  • *-CsBatchTeamsDeployment*
  • Get-MultiGeoRegion
  • Get-AllM365TeamsApps
  • [Get|Update]-M365TeamsApp
  • Get-M365UnifiedCustomPendingApps
  • [Get|Update]-M365UnifiedTenantSettings
  • Update-M365UnifiedCustomPendingApp

Exemplos

Os exemplos a seguir mostram como usar o Módulo PowerShell do Teams com a autenticação baseada no aplicativo Microsoft Entra:

  • Conectar-se usando uma impressão digital de certificado:

    Connect-MicrosoftTeams -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
    

    Quando você usa o parâmetro CertificateThumbprint, o certificado precisa ser instalado no computador em que você está executando o comando. O certificado deve ser instalado no repositório de certificados do usuário.

  • Conectar-se usando um objeto de certificado:

    Connect-MicrosoftTeams -Certificate <%X509Certificate2 object%> -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
    

    Quando você usa o parâmetro Certificate, o certificado não precisa ser instalado no computador em que você está executando o comando. O certificado pode ser armazenado & buscado remotamente quando o script é executado. O parâmetro Certificado está disponível no Módulo do PowerShell do Teams versão 4.9.2-preview ou posterior.

  • Conectar-se usando tokens de acesso:

    Os tokens de acesso podem ser recuperados por meio do ponto de extremidade login.microsoftonline.com. Ele requer dois tokens de acesso – recursos "MS Graph" e "API de Administração de Locatário do Skype e Teams".

    $ClientSecret   = "…"
    $ApplicationID = "00000000-0000-0000-0000-000000000000"
    $TenantID = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
    
    $graphtokenBody = @{   
       Grant_Type    = "client_credentials"   
       Scope         = "https://graph.microsoft.com/.default"   
       Client_Id     = $ApplicationID   
       Client_Secret = $ClientSecret   
    }  
    
    $graphToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $graphtokenBody | Select-Object -ExpandProperty Access_Token 
    
    $teamstokenBody = @{   
       Grant_Type    = "client_credentials"   
       Scope         = "48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default"   
       Client_Id     = $ApplicationID   
       Client_Secret = $ClientSecret 
    } 
    
    $teamsToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $teamstokenBody | Select-Object -ExpandProperty Access_Token 
    
    Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
    

Como funciona?

O Módulo PowerShell do Teams busca o token baseado em aplicativo usando a ID do aplicativo, a ID do locatário e a impressão digital do certificado. O objeto de aplicativo provisionado no Microsoft Entra ID tem uma Função de Diretório atribuída a ele, que é retornada no token de acesso. O RBAC (controle de acesso baseado em função) da sessão é configurado usando as informações de função de diretório disponíveis no token.

Configurar autenticação baseada em aplicativo

Uma integração inicial é necessária para autenticação usando objetos de aplicativo. O aplicativo e a entidade de serviço são usados de forma intercambiável, mas um aplicativo é como um objeto de classe, enquanto uma entidade de serviço é como uma instância da classe. Você pode saber mais sobre esses objetos em Objetos de entidade de serviço e aplicativo no Microsoft Entra ID.

As etapas de exemplo para a criação de aplicativos no Microsoft Entra ID são mencionadas abaixo. Para etapas detalhadas, consulte este artigo.

  1. Registre o aplicativo no Microsoft Entra ID.

  2. Atribua permissões de API ao aplicativo.

    Cmdlets Permissão necessária para a API do Graph
    Tudo Organization.Read.All
    Cmdlets não *-Cs User.Read.All, Group.ReadWrite.All, AppCatalog.ReadWrite.All, TeamSettings.ReadWrite.All, Channel.Delete.All, ChannelSettings.ReadWrite.All, ChannelMember.ReadWrite.All
    Todos (somente quando usado com Unidades Administrativas) RoleManagement.Read.Directory
    *-CsGroupPolicyAssignment, *-CsGroupPolicyPackageAssignment (somente quando usado com Unidades Administrativas) GroupMember.Read.All

    Nota

    Não é necessário configurar nenhuma permissão de API para "API de Administração de Locatário do Skype e Teams". A configuração dessa permissão pode resultar em falhas.

  3. Gere um certificado autoassinado

  4. Anexe o certificado ao aplicativo Microsoft Entra.

  5. Atribua funções do Microsoft Entra ao aplicativo. Consulte este procedimento Atribuir uma função , mas procure o aplicativo em vez de um usuário.

O aplicativo precisa ter as funções RBAC apropriadas atribuídas. Como os aplicativos são provisionados no Microsoft Entra ID, você pode usar qualquer uma das funções internas com suporte.