Autenticação somente de aplicativo para scripts autônomos em Exchange Online PowerShell e Segurança & Conformidade do PowerShell

Cenários de auditoria e relatórios no Microsoft 365 geralmente envolvem scripts autônomos no PowerShell do Exchange Online e na Segurança e Conformidade do PowerShell. No passado, a entrada autônoma exigia que você armazenasse o nome de usuário e a senha em um arquivo local ou em um cofre secreto acessado no tempo de execução. Mas, como todos sabemos, armazenar credenciais de usuário localmente não é uma boa prática de segurança.

A CBA (autenticação baseada em certificado) ou autenticação somente aplicativo, conforme descrito neste artigo, dá suporte a cenários de script e automação autônomos usando Microsoft Entra aplicativos e certificados autoassinados.

Observação

  • Você sabia que pode se conectar ao Exchange Online PowerShell usando identidades gerenciadas no Azure? Confira Usar identidades gerenciadas do Azure para se conectar ao Exchange Online PowerShell.

  • Os recursos e procedimentos descritos neste artigo exigem as seguintes versões do módulo Exchange Online PowerShell:

    • Powershell do Exchange Online (Connect-ExchangeOnline): versão 2.0.3 ou posterior.
    • Segurança & PowerShell de Conformidade (Connect-IPPSSession): Versão 3.0.0 ou posterior.

    Para obter instruções sobre como instalar ou atualizar o módulo, consulte Instalar e manter o módulo Exchange Online PowerShell. Para obter instruções sobre como usar o módulo na automação do Azure, consulte Gerenciar módulos em Automação do Azure.

  • As conexões de API REST no módulo Exchange Online PowerShell V3 exigem os módulos PowerShellGet e PackageManagement. Para obter mais informações, consulte PowerShellGet para conexões baseadas em REST no Windows.

    Se os procedimentos neste artigo não funcionarem para você, verifique se você não tem versões Beta dos módulos PackageManagement ou PowerShellGet instalados executando o seguinte comando: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions.

  • No PowerShell do Exchange Online, não é possível usar os procedimentos neste artigo com os seguintes cmdlets do Grupo do Microsoft 365:

    Você pode usar o Microsoft Graph para substituir a maior parte da funcionalidade desses cmdlets. Para obter mais informações, consulte Trabalhar com grupos no Microsoft Graph.

  • No PowerShell de Conformidade & segurança, você não pode usar os procedimentos neste artigo com os seguintes cmdlets do Grupo microsoft 365:

  • Há suporte para cenários delegados em Exchange Online. O método recomendado para se conectar com a delegação é usar o GDAP e o Consentimento do Aplicativo. Para obter mais informações, consulte Usar o módulo Exchange Online PowerShell v3 com o Consentimento do GDAP e do Aplicativo. Você também pode usar aplicativos multilocatários quando as relações CSP não forem criadas com o cliente. As etapas necessárias para o uso de aplicativos multilocatários são chamadas dentro das instruções regulares deste artigo.

  • Use a opção SkipLoadingFormatData no cmdlet Connect-ExchangeOnline se você receber o seguinte erro ao usar o SDK Windows PowerShell para se conectar:The term 'Update-ModuleManifest' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Como funciona?

O módulo Exchange Online PowerShell usa a Biblioteca de Autenticação do Active Directory para buscar um token somente de aplicativo usando a ID do aplicativo, a ID do locatário (organização) 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.

Exemplos de conexão

Os exemplos a seguir mostram como usar o módulo Exchange Online PowerShell com autenticação somente aplicativo:

Importante

Nos comandos de conexão a seguir, use o domínio primário .onmicrosoft.com para sua organização como o valor do parâmetro Organização .

Os comandos de conexão a seguir têm muitas das mesmas opções disponíveis, conforme descrito no Connect to Exchange Online PowerShell e Connect to Security & Compliance PowerShell. Por exemplo:

  • Os ambientes microsoft 365 GCC High ou Microsoft 365 DoD exigem os seguintes parâmetros e valores adicionais:

    • Connect-ExchangeOnline no GCC High: -ExchangeEnvironmentName O365USGovGCCHigh.
    • Connect-IPPSSession no GCC High: -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common.
    • Connect-ExchangeOnline no DoD: -ExchangeEnvironmentName O365USGovDoD.
    • Connect-IPPSSession in DoD: -ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common.
  • Se um comando Connect-IPPSSession apresentar um prompt de logon, execute o comando: $Global:IsWindows = $true antes do comando Connect-IPPSSession .

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

    Observação

    O parâmetro CertificateThumbprint só tem suporte no Microsoft Windows.

    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.

    • PowerShell do Exchange Online:

      Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Segurança e Conformidade do PowerShell:

      Connect-IPPSSession -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
  • Conecte-se usando um objeto de certificado:

    O certificado não precisa ser instalado no computador em que você está executando o comando. Você pode armazenar o objeto de certificado remotamente. O certificado é buscado quando o script é executado.

    • PowerShell do Exchange Online:

      Connect-ExchangeOnline -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Segurança e Conformidade do PowerShell:

      Connect-IPPSSession -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
  • Conecte-se usando um certificado local:

    Observação

    Usar um comando ConvertTo-SecureString para armazenar a senha do certificado derrota localmente a finalidade de um método de conexão seguro para cenários de automação. Usar um comando Get-Credential para solicitar a senha do certificado com segurança não é ideal para cenários de automação. Em outras palavras, não há realmente nenhuma maneira automatizada e segura de se conectar usando um certificado local.

    • PowerShell do Exchange Online:

      Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Segurança e Conformidade do PowerShell:

      Connect-IPPSSession -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      

Configurar autenticação somente no aplicativo

A integração inicial é necessária para autenticação usando objetos do 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. Para obter mais informações, consulte Objetos de entidade de serviço e aplicativo no Microsoft Entra ID.

Para obter um fluxo visual detalhado sobre a criação de aplicativos no Microsoft Entra ID, consulte https://aka.ms/azuread-app.

  1. Registre o aplicativo no Microsoft Entra ID.

  2. Atribuir permissões de API para o aplicativo.

    Um objeto de aplicativo tem a permissão de API DelegadaMicrosoft Graph>User.Read por padrão. Para que o objeto de aplicativo acesse recursos no Exchange, ele precisa da permissão da API de AplicativoOffice 365 Exchange Online>Exchange.ManageAsApp.

  3. Gerar um certificado autoassinado

    • Para autenticação somente aplicativo em Microsoft Entra ID, normalmente você usa um certificado para solicitar acesso. Qualquer pessoa que tenha o certificado e sua chave privada pode usar o aplicativo com as permissões concedidas ao aplicativo.

    • Crie e configure um certificado X.509 autoassinado, que é usado para autenticar seu aplicativo no Microsoft Entra ID, ao mesmo tempo em que solicita o token de acesso somente aplicativo.

    • Esse procedimento é semelhante à geração de uma senha para contas de usuário. O certificado pode ser auto-assinado também. Confira esta seção mais tarde neste artigo para obter instruções para gerar certificados no PowerShell.

      Observação

      Criptografia: certificados CNG (Próxima Geração) não têm suporte para autenticação somente aplicativo com o Exchange. Os certificados CNG são criados por padrão em versões modernas do Windows. Você deve usar um certificado de um provedor de chave CSP. Esta seção aborda dois métodos com suporte para criar um certificado CSP.

  4. Anexar o certificado ao aplicativo Microsoft Entra

  5. Atribuir Microsoft Entra funções ao aplicativo

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

Etapa 1: registrar o aplicativo no Microsoft Entra ID

Observação

Se você encontrar problemas, verifique as permissões necessárias para verificar se sua conta pode criar a identidade.

  1. Abra o centro de administração do Microsoft Entra em https://portal.azure.com/.

  2. Na caixa Pesquisar na parte superior da página, comece a digitar Registros de aplicativo e selecione Registros de aplicativo nos resultados na seção Serviços.

    Captura de tela que mostra Registros de aplicativo nos resultados da Pesquisa na página inicial do portal do Azure.

    Ou, para ir diretamente para a página Registros de aplicativo, use https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.

  3. Na página registros de aplicativo, selecione novo registro.

    Selecione Novo registro na página de registros de Aplicativos.

    Na página Registrar um aplicativo que é aberta, defina as seguintes configurações:

    • Nome: digite algo descritivo. Por exemplo, ExO Windows PowerShell CBA.

    • Tipos de conta com suporte: verifique se as contas neste diretório organizacional somente (<Somente YourOrganizationName> – locatário único) estão selecionadas.

      Observação

      Para tornar o aplicativo multilocatário para Exchange Online cenários delegados, selecione o valor Contas em qualquer diretório organizacional (Qualquer diretório Microsoft Entra – Multilocatário).

    • URI de redirecionamento (opcional): essa configuração é opcional. Se você precisar usá-lo, configure as seguintes configurações:

      • Plataforma: selecione Web.
      • URI: insira o URI para onde o token de acesso é enviado.

      Observação

      Não é possível criar credenciais para aplicativos nativos, pois não é possível usar aplicativos nativos para aplicativos automatizados.

      Registre um aplicativo.

    Quando terminar na página Registros de aplicativo, selecione Registrar.

  4. Você é levado para a página Visão geral do aplicativo que acabou de registrar. Deixe esta página aberta. Você precisará usá-las na próxima etapa.

Etapa 2: atribuir permissões de API para o aplicativo

Escolha um dos seguintes métodos nesta seção para atribuir permissões de API ao aplicativo:

  • Selecione e atribua as permissões de API no portal.
  • Modifique o manifesto do aplicativo para atribuir permissões de API. (As organizações Microsoft 365 GCC High e DoD devem usar esse método)

Selecione e atribua as permissões de API no portal

  1. Na página Visão geral do aplicativo, selecione permissões de API na seção Gerenciar .

    Selecione permissões de API na página de visão geral do aplicativo.

  2. Na página Permissões de API do aplicativo, selecione Adicionar uma permissão.

    Selecione Adicionar uma permissão na página de permissões de API do aplicativo.

  3. No flyout Solicitar permissões de API que é aberto, selecione as APIs que minha organização usa, comece a digitar Office 365 Exchange Online na caixa Pesquisar e selecione-a nos resultados.

    Localize e selecione Office 365 Exchange Online na guia APIs que minha organização usa.

  4. No tipo de permissões que seu aplicativo requer? Flyout exibido, selecione Permissões de aplicativo.

  5. Na lista de permissões exibida, expanda Exchange, selecione Exchange.ManageAsApp e selecione Adicionar permissões.

    Localize e selecione permissões Exchange.ManageAsApp na guia Permissão do aplicativo.

  6. De volta à página de permissões de API do aplicativo, verifique se Office 365 Exchange Online>Exchange.ManageAsApp está listado e contém os seguintes valores:

    • Tipo: Aplicativo.

    • Administração consentimento necessário: Sim.

    • Status: o valor incorreto atual não é concedido para <Organização>.

      Altere esse valor selecionando Conceder consentimento de administrador para <Organização>, lendo a caixa de diálogo de confirmação que é aberta e selecionando Sim.

      Administração consentimento necessário, mas não concedido para permissões Exchange.ManageAsApp.

      O valor status agora é concedido para <organização>.

      Administração consentimento concedido para permissões Exchange.ManageAsApp.

  7. Para a entrada padrão Microsoft Graph>User.Read , selecione ...>Revogue o consentimento do administrador e selecioneSim na caixa de diálogo de confirmação que abre para retornar Status de volta ao valor em branco padrão.

    Administração consentimento removido das permissões padrão do Microsoft Graph User.Read.

  8. Feche a página atual de permissões da API (não a guia do navegador) para retornar à página de registros de aplicativos. Use a página Registros de aplicativo em uma próxima etapa.

Modificar o manifesto do aplicativo para atribuir permissões de API

Observação

Os procedimentos nesta seção acrescentam as permissões padrão existentes no aplicativo (permissões delegadas user.read no Microsoft Graph) com as permissões necessárias do aplicativo Exchange.ManageAsApp em Office 365 Exchange Online.

  1. Na página Visão geral do aplicativo, selecione Manifesto na seção Gerenciar .

    Selecione Manifesto na página de visão geral do aplicativo.

  2. Na página Manifesto do aplicativo, localize a requiredResourceAccess entrada (na ou sobre a linha 42) e faça com que a entrada pareça com o seguinte snippet de código:

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
            "resourceAccess": [
                {
                    "id": "dc50a0fb-09a3-484d-be87-e023b12c6440",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    

    Observação

    Os ambientes Microsoft 365 GCC High ou DoD têm acesso somente ao PowerShell de Conformidade do & de Segurança. Use os seguintes valores para a requiredResourceAccess entrada:

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000007-0000-0ff1-ce00-000000000000",
            "resourceAccess": [
                {
                    "id": "455e5cd2-84e8-4751-8344-5672145dfa17",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    

    Quando terminar na página Manifesto , selecione Salvar.

  3. Ainda na página Manifesto , selecione permissões de API na seção Gerenciar .

    Selecione permissões de API na página Manifesto.

  4. Na página permissões de API, verifique se Office 365 Exchange Online>Exchange.ManageAsApp está listado e contém os seguintes valores:

    • Tipo: Aplicativo.

    • Administração consentimento necessário: Sim.

    • Status: o valor incorreto atual não é concedido para Organização> para < a entrada Office 365 Exchange Online>Exchange.ManageAsApp.

      Altere o valor status selecionando Conceder consentimento de administrador para <Organização>, lendo a caixa de diálogo de confirmação que é aberta e selecionando Sim.

      Administração consentimento necessário, mas não concedido para permissões Exchange.ManageAsApp.

      O valor status agora é concedido para <organização>.

      Administração consentimento concedido para permissões Exchange.ManageAsApp.

  5. Para a entrada padrão Microsoft Graph>User.Read , selecione ...>Revogue o consentimento do administrador e selecioneSim na caixa de diálogo de confirmação que abre para retornar Status de volta ao valor em branco padrão.

    Administração consentimento removido das permissões padrão do Microsoft Graph User.Read.

  6. Feche a página atual de permissões da API (não a guia do navegador) para retornar à página de registros de aplicativos. Use a página Registros de aplicativo em uma próxima etapa.

Etapa 3: Criar um certificado autoassinado

Crie um certificado X.509 auto-assinado usando um dos seguintes métodos:

  • (Recomendado) Use os cmdlets New-SelfSignedCertificate, Exportar-e Certificar e Export-PfxCertificate em uma sessão elevada (executar como administrador) do Windows PowerShell para solicitar um certificado autoassinado.cer e .pfx exportá-lo para e (SHA1 por padrão). Por exemplo:

    # Create certificate
    $mycert = New-SelfSignedCertificate -DnsName "contoso.org" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange
    
    # Export certificate to .pfx file
    $mycert | Export-PfxCertificate -FilePath mycert.pfx -Password (Get-Credential).password
    
    # Export certificate to .cer file
    $mycert | Export-Certificate -FilePath mycert.cer
    
  • Use o script de script Create-SelfSignedCertificate para gerar certificados SHA1.

    .\Create-SelfSignedCertificate.ps1 -CommonName "MyCompanyName" -StartDate 2021-01-06 -EndDate 2022-01-06
    

Etapa 4: anexar o certificado ao aplicativo Microsoft Entra

Depois de registrar o certificado com seu aplicativo, você pode usar a chave privada (.pfx arquivo) ou a miniatura para autenticação.

  1. Na guia Aplicativos próprios na página De registro de aplicativos no final da Etapa 2, selecione seu aplicativo.

    Se você precisar voltar para a página de registro de aplicativos , use https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps, verifique se a guia Aplicativos próprios está selecionada e selecione seu aplicativo.

    Página de registro de aplicativos onde você seleciona seu aplicativo.

  2. Na página do aplicativo que é aberta, selecione Certificados & segredos na seção Gerenciar .

    Selecione Certificados & Segredos na página de propriedades do aplicativo.

  3. Na página Certificados & segredos , selecione Carregar certificado.

    Selecione Carregar certificado na página Certificados & segredos.

    Na caixa de diálogo que é aberta, navegue até o certificado autoassinado (.cerarquivo) que você criou na Etapa 3.

    Navegue até o certificado e selecione Adicionar.

    Ao terminar, selecione Adicionar.

    O certificado agora é mostrado na seção Certificados.

    Página do aplicativo mostrando que o certificado foi adicionado.

  4. Feche a página atual de Certificados e segredos e, em seguida, a página de registros de aplicativoshttps://portal.azure.com/ para retornar à página principal. Você precisará usá-las na próxima etapa.

Se você fez o aplicativo multilocatário para Exchange Online cenários delegados na Etapa 1, precisará conceder o consentimento do administrador à permissão Exchange.ManageAsApp para que o aplicativo possa executar cmdlets em Exchange Online em cada organização de locatário. Para fazer isso, gere uma URL de consentimento do administrador para cada locatário do cliente. Antes que qualquer pessoa use o aplicativo multilocatário para se conectar a Exchange Online na organização do locatário, um administrador no locatário do cliente deve abrir a seguinte URL:

https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<client-id>&scope=https://outlook.office365.com/.default

  • <tenant-id> é a ID do locatário do cliente.
  • <client-id> é a ID do aplicativo multilocatário.
  • O escopo padrão é usado para conceder permissões de aplicativo.

Para obter mais informações sobre a sintaxe de URL, consulte Solicitar as permissões de um administrador de diretório.

Etapa 5: Atribuir funções Microsoft Entra ao aplicativo

Você tem duas opções:

  • Atribuir Microsoft Entra funções ao aplicativo
  • Atribua grupos de funções personalizados ao aplicativo usando entidades de serviço: esse método só tem suporte quando você se conecta a Exchange Online PowerShell ou Segurança & Conformidade do PowerShell no modo de API REST. O PowerShell de conformidade & de segurança dá suporte ao modo de API REST no v3.2.0 ou posterior.

Observação

Você também pode combinar ambos os métodos para atribuir permissões. Por exemplo, você pode usar Microsoft Entra funções para a função "Administrador de Destinatário do Exchange" e também atribuir sua função RBAC personalizada para estender as permissões.

Para aplicativos multilocatários em Exchange Online cenários delegados, você precisa atribuir permissões em cada locatário do cliente.

Atribuir Microsoft Entra funções ao aplicativo

As funções de Microsoft Entra com suporte são descritas na seguinte tabela:

Função Exchange Online
PowerShell
Conformidade e Segurança
PowerShell
Administrador de Conformidade
Administrador do Exchange*
Administrador do Destinatário do Exchange
Administrador Global*
Leitor Global
Administrador do Helpdesk
Administrador de segurança*
Leitor de Segurança

* As funções Administrador global e Administrador do Exchange fornecem as permissões necessárias para qualquer tarefa no PowerShell do Exchange Online. Por exemplo:

  • Gerenciamento de destinatários.
  • Recursos de proteção e segurança. Por exemplo, relatórios antispam, antimalware, antiphishing e relatórios associados.

A função Administrador de Segurança não tem as permissões necessárias para essas mesmas tarefas.

Para obter instruções gerais sobre como atribuir funções em Microsoft Entra ID, consulte Atribuir Microsoft Entra funções aos usuários.

Observação

As etapas a seguir são ligeiramente diferentes para o PowerShell do Exchange Online vs. a Segurança e Conformidade do PowerShell. As etapas para ambos os ambientes são mostradas. Para configurar funções para ambos os ambientes, repita as etapas nesta seção.

  1. Em centro de administração do Microsoft Entra em https://portal.azure.com/, comece a digitar funções e administradores na caixa Pesquisar na parte superior da página e selecione Microsoft Entra funções e administradores na seção Serviços.

    Captura de tela que mostra Microsoft Entra funções e administradores nos resultados da Pesquisa na página inicial do portal do Azure.

    Ou, para ir diretamente para a página Microsoft Entra funções e administradores, use https://portal.azure.com/#view/Microsoft_AAD_IAM/AllRolesBlade.

  2. Na página Funções e administradores que é aberta, localize e selecione uma das funções suportadas por clicando no nome da função (não na caixa de seleção) nos resultados.

    • Exchange Online PowerShell: por exemplo, localize e selecione a função de administrador do Exchange.

      Localize e selecione uma função do PowerShell do Exchange Online com suporte clicando no nome da função.

    • Segurança & Conformidade Do PowerShell: por exemplo, localize e selecione a função administrador de conformidade .

      Localize e selecione uma função do PowerShell de Conformidade & segurança com suporte clicando no nome da função.

  3. Na página Atribuições que é aberta, selecione Adicionar atribuições.

    • PowerShell do Exchange Online:

      Selecione Adicionar atribuições na página de atribuições de função do PowerShell do Exchange Online.

    • Segurança e Conformidade do PowerShell:

      Selecione Adicionar atribuições na página atribuições de função para o PowerShell de Conformidade do & de Segurança.

  4. No menu desdobrável Adicionar atribuições que é aberto, encontre e selecione o aplicativo que você criou na Etapa 1.

    Localize e selecione seu aplicativo no menu desdobrável Adicionar atribuições.

    Quando terminar no flyout Adicionar atribuições , selecione Adicionar.

  5. De volta à página Atribuições , verifique se a função foi atribuída ao aplicativo.

    • PowerShell do Exchange Online:

      A página de atribuições de função depois de adicionar o aplicativo à função do PowerShell do Exchange Online.

    • Segurança e Conformidade do PowerShell:

      A página atribuições de função após para adicionar o aplicativo à função de Segurança & Conformidade do PowerShell.

Atribuir grupos de funções personalizados ao aplicativo usando entidades de serviço

Observação

Você precisa se conectar a Exchange Online PowerShell ou Segurança & o PowerShell de Conformidade antes de concluir as etapas para criar uma nova entidade de serviço. A criação de uma nova entidade de serviço sem se conectar ao PowerShell não funcionará (sua ID de Azure App e A ID do Objeto são necessárias para criar a nova entidade de serviço).

Esse método só tem suporte quando você se conecta a Exchange Online PowerShell ou Segurança & Conformidade do PowerShell no modo de API REST. O PowerShell de conformidade & de segurança dá suporte ao modo de API REST no v3.2.0 ou posterior.

Para obter informações sobre como criar grupos de funções personalizados, consulte Criar grupos de funções no Exchange Online e Criar grupos de funções de colaboração Email & no portal Microsoft Defender. O grupo de funções personalizado que você atribui ao aplicativo pode conter qualquer combinação de funções internas e personalizadas.

Para atribuir grupos de função personalizados ao aplicativo usando entidades de serviço, siga as seguintes etapas:

  1. No Microsoft Graph PowerShell, execute os seguintes comandos para armazenar os detalhes do aplicativo Microsoft Entra que você registrou na Etapa 1 em uma variável:

    Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
    
    $<VariableName1> = Get-MgServicePrincipal -Filter "DisplayName eq '<AppName>'"
    

    Por exemplo:

    Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
    
    $AzureADApp = Get-MgServicePrincipal -Filter "DisplayName eq 'ExO PowerShell CBA'"
    

    Para obter informações detalhadas sobre sintaxe e parâmetro, consulte Get-MgServicePrincipal.

  2. Na mesma janela do PowerShell, conecte-se a Exchange Online PowerShell ou Segurança & Conformidade do PowerShell e execute os seguintes comandos para:

    • Crie um objeto de entidade de serviço para o aplicativo Microsoft Entra.
    • Armazene os detalhes da entidade de serviço em uma variável a ser usada na próxima etapa.
    New-ServicePrincipal -AppId $<VariableName1>.AppId -ObjectId $<VariableName1>.Id -DisplayName "<Descriptive Name>"
    
    $<VariableName2> = Get-ServicePrincipal -Identity "<Descriptive Name>"
    

    Por exemplo:

    New-ServicePrincipal -AppId $AzureADApp.AppId -ObjectId $AzureADApp.Id -DisplayName "SP for Azure AD App ExO PowerShell CBA"
    
    $SP = Get-ServicePrincipal -Identity "SP for Azure AD App ExO PowerShell CBA"
    

    Para obter informações detalhadas sobre sintaxe e parâmetro, consulte New-ServicePrincipal.

  3. Em Exchange Online PowerShell ou Security & Compliance PowerShell, execute o seguinte comando para adicionar a entidade de serviço como membro do grupo de funções personalizado:

    Add-RoleGroupMember -Identity "<CustomRoleGroupName>" -Member <$<VariableName2>.Identity | $<VariableName2>.ObjectId | $<VariableName2>.Id>
    

    Por exemplo:

    Add-RoleGroupMember -Identity "Contoso View-Only Recipients" -Member $SP.Identity
    

    Para obter informações detalhadas sobre sintaxe e parâmetro, consulte Add-RoleGroupMember.