Automatize as tarefas de Governança do Microsoft Entra ID por meio da Automação do Azure e do Microsoft Graph

A Automação do Azure é um serviço de nuvem do Azure que permite automatizar processos e gerenciamento de sistemas comuns ou repetitivos. O Microsoft Graph é o ponto de extremidade da API unificada da Microsoft para recursos do Microsoft Entra que gerenciam usuários, grupos, pacotes de acesso, revisões de acesso e outros recursos no diretório. Você pode gerenciar a ID do Microsoft Entra em escala a partir da linha de comando do PowerShell, usando o SDK do Microsoft Graph PowerShell. Você também pode incluir os cmdlets do Microsoft Graph PowerShell a partir de um runbook baseado em PowerShell na Automação do Azure, para que possa automatizar tarefas do Microsoft Entra a partir de um script simples.

A Automação do Azure e o SDK do PowerShell Graph dão suporte à autenticação baseada em certificado e às permissões de aplicativos, para que você possa autenticar runbooks da Automação do Azure na ID do Microsoft Entra sem precisar de um contexto de usuário.

Este artigo mostra como começar a usar a Automação do Azure para Governança de ID do Microsoft Entra, criando um runbook simples que consulta o gerenciamento de direitos por meio do Microsoft Graph PowerShell.

Crie uma conta de Automatização do Azure

Gorjeta

As etapas neste artigo podem variar ligeiramente com base no portal a partir do qual você começou.

A Automação do Azure fornece um ambiente hospedado na nuvem para execução de runbook. Esses runbooks podem ser iniciados automaticamente com base em uma programação ou ser acionados por webhooks ou por aplicativos lógicos.

Usar a Automação do Azure exige que você tenha uma assinatura do Azure.

Função de pré-requisito: proprietário da assinatura do Azure ou do grupo de recursos

  1. Inicie sessão no portal do Azure. Verifique se você tem acesso à assinatura ou ao grupo de recursos onde a conta de Automação do Azure estará localizada.

  2. Selecione a assinatura ou o grupo de recursos e selecione Criar. Digite Automação, selecione o serviço Azure de Automação da Microsoft e selecione Criar.

  3. Depois que a conta de Automação do Azure tiver sido criada, selecione Controle de acesso (IAM). Em seguida, selecione Exibir em Exibir acesso a este recurso. Esses usuários e entidades de serviço poderão posteriormente interagir com o serviço da Microsoft por meio dos scripts a serem criados nessa conta de Automação do Azure.

  4. Analise os usuários e entidades de serviço que estão listados lá e verifique se eles estão autorizados. Remova todos os usuários não autorizados.

Criar um par de chaves auto-assinado e um certificado no seu computador

Para que possa operar sem precisar de suas credenciais pessoais, a conta de Automação do Azure que você criou precisará se autenticar na ID do Microsoft Entra com um certificado.

Se você já tiver um par de chaves para autenticar seu serviço no Microsoft Entra ID e um certificado recebido de uma autoridade de certificação, pule para a próxima seção.

Para gerar um certificado autoassinado,

  1. Siga as instruções em como criar um certificado autoassinado, opção 2, para criar e exportar um certificado com sua chave privada.

  2. Exiba a impressão digital do certificado.

     $cert | ft Thumbprint
    
  3. Depois de exportar os arquivos, você pode remover o certificado e o par de chaves do armazenamento de certificados do usuário local. Nas etapas subsequentes, você também remove os .pfx arquivos e .crt depois que o certificado e a chave privada forem carregados para os serviços de Automação do Azure e Microsoft Entra.

Carregue o par de chaves para a Automação do Azure

Seu runbook na Automação do Azure recupera a chave privada do .pfx arquivo e a usa para autenticação no Microsoft Graph.

  1. No portal do Azure para a conta de Automação do Azure, selecione Certificados e Adicionar um certificado.

  2. Carregue o .pfx arquivo criado anteriormente e digite a senha que você forneceu quando criou o arquivo.

  3. Depois que a chave privada for carregada, registre a data de validade do certificado.

  4. Agora você pode excluir o .pfx arquivo do seu computador local. No entanto, não exclua o .crt arquivo ainda, pois você precisa desse arquivo em uma etapa subsequente.

Adicionar módulos para o Microsoft Graph à sua conta de Automação do Azure

Por padrão, a Automação do Azure não tem nenhum módulo do PowerShell pré-carregado para o Microsoft Graph. Você precisa adicionar Microsoft.Graph.Authentication e, em seguida, módulos adicionais, da galeria para sua conta de automação.

  1. No portal do Azure para a conta de Automação do Azure, selecione Módulos e, em seguida, Procurar galeria.

  2. Na barra de pesquisa, digite Microsoft.Graph.Authentication. Selecione o módulo, selecione Importar e selecione OK para que o Microsoft Entra ID comece a importar o módulo. Depois de selecionar OK, a importação de um módulo pode levar vários minutos. Não tente adicionar mais módulos do Microsoft Graph até que a importação do módulo Microsoft.Graph.Authentication tenha sido concluída, pois esses outros módulos têm Microsoft.Graph.Authentication como pré-requisito.

  3. Retorne à lista Módulos e selecione Atualizar. Depois que o Status do módulo Microsoft.Graph.Authentication for alterado para Disponível, você poderá importar o próximo módulo.

  4. Se você estiver usando os cmdlets para os recursos de Governança de ID do Microsoft Entra, como gerenciamento de direitos, repita o processo de importação para o módulo Microsoft.Graph.Identity.Governance.

  5. Importe outros módulos que seu script pode exigir, como Microsoft.Graph.Users. Por exemplo, se você estiver usando a Proteção de Identidade, poderá importar o módulo Microsoft.Graph.Identity.SignIns .

Criar um registo de aplicação e atribuir permissões

Em seguida, crie um registro de aplicativo no Microsoft Entra ID, para que o Microsoft Entra ID reconheça o certificado do runbook de Automação do Azure para autenticação.

Função de pré-requisito: Administrador Global ou outro administrador que possa consentir aplicativos com permissões de aplicativo

  1. Entre no centro de administração do Microsoft Entra como pelo menos um Administrador Global.

  2. Navegue até Registros do >aplicativo Identity>Applications.>

  3. Selecione Novo registo.

  4. Digite um nome para o aplicativo e selecione Registrar.

  5. Depois que o registro do aplicativo for criado, anote o ID do aplicativo (cliente) e o ID do diretório (locatário), pois você precisará desses itens mais tarde.

  6. Selecione Certificados e Segredos e Carregar certificado.

  7. Carregue o .crt ficheiro criado anteriormente.

  8. Selecione Permissões de API e Adicionar uma permissão.

  9. Selecione Permissões do Microsoft Graph e do Aplicativo.

  10. Selecione cada uma das permissões que sua conta de Automação do Azure requer e selecione Adicionar permissões.

    • Se o runbook estiver executando apenas consultas ou atualizações em um único catálogo, você não precisará atribuir permissões de aplicativo em todo o locatário; em vez disso, você pode atribuir a entidade de serviço à função Proprietário do catálogo ou Leitor de catálogo.
    • Se seu runbook estiver executando apenas consultas para gerenciamento de direitos, ele poderá usar a permissão EntitlementManagement.Read.All .
    • Se o runbook estiver fazendo alterações no gerenciamento de direitos, por exemplo, para criar atribuições em vários catálogos, use a permissão EntitlementManagement.ReadWrite.All .
    • Para outras APIs, certifique-se de que a permissão necessária seja adicionada. Por exemplo, para proteção de identidade, a permissão IdentityRiskyUser.Read.All deve ser adicionada.
  11. Selecione Conceder permissões de administrador para conceder essas permissões ao seu aplicativo.

Criar variáveis de Automação do Azure

Nesta etapa, você cria na conta de Automação do Azure três variáveis que o runbook usa para determinar como autenticar a ID do Microsoft Entra.

  1. No portal do Azure, retorne à conta de Automação do Azure.

  2. Selecione Variáveis e Adicionar variável.

  3. Crie uma variável chamada Thumbprint. Digite, como o valor da variável, a impressão digital do certificado que foi gerada anteriormente.

  4. Crie uma variável chamada ClientId. Digite, como o valor da variável, o ID do cliente para o aplicativo registrado no Microsoft Entra ID.

  5. Crie uma variável chamada TenantId. Digite, como o valor da variável, o ID do locatário do diretório onde o aplicativo foi registrado.

Criar um runbook do PowerShell de Automação do Azure que possa usar o Graph

Nesta etapa, você cria um runbook inicial. Você pode acionar esse runbook para verificar se a autenticação usando o certificado criado anteriormente foi bem-sucedida.

  1. Selecione Runbooks e Create a runbook.

  2. Digite o nome do runbook, selecione PowerShell como o tipo de runbook a ser criado e selecione Criar.

  3. Depois que o runbook é criado, um painel de edição de texto é exibido para você digitar o código-fonte do PowerShell do runbook.

  4. Digite o seguinte PowerShell no editor de texto.

Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
Connect-MgGraph -clientId $ClientId -tenantId $TenantId -certificatethumbprint $Thumbprint
  1. Selecione Painel de teste e selecione Iniciar. Aguarde alguns segundos até que o processamento da Automação do Azure do seu script de runbook seja concluído.

  2. Se a execução do seu runbook for bem-sucedida, a mensagem Bem-vindo ao Microsoft Graph! aparecerá.

Agora que você verificou que seu runbook pode se autenticar no Microsoft Graph, estenda seu runbook adicionando cmdlets para interagir com os recursos do Microsoft Entra.

Estender o runbook para usar o Gerenciamento de Direitos

Se o registro do aplicativo para seu runbook tiver as permissões EntitlementManagement.Read.All ou EntitlementManagement.ReadWrite.All , ele poderá usar as APIs de gerenciamento de direitos.

  1. Por exemplo, para obter uma lista de pacotes de acesso de gerenciamento de direitos do Microsoft Entra, você pode atualizar o runbook criado acima e substituir o texto pelo PowerShell a seguir.
Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
$auth = Connect-MgGraph -clientId $ClientId -tenantid $TenantId -certificatethumbprint $Thumbprint
Import-Module Microsoft.Graph.Identity.Governance
$ap = @(Get-MgEntitlementManagementAccessPackage -All -ErrorAction Stop)
if ($null -eq $ap -or $ap.Count -eq 0) {
   ConvertTo-Json @()
} else {
   $ap | Select-Object -Property Id,DisplayName | ConvertTo-Json -AsArray
}
  1. Selecione Painel de teste e selecione Iniciar. Aguarde alguns segundos até que o processamento da Automação do Azure do seu script de runbook seja concluído.

  2. Se a execução foi bem-sucedida, a saída em vez da mensagem de boas-vindas será uma matriz JSON. A matriz JSON inclui a ID e o nome de exibição de cada pacote de acesso retornado da consulta.

Fornecer parâmetros para o runbook (opcional)

Você também pode adicionar parâmetros de entrada ao seu runbook, adicionando uma Param seção na parte superior do script do PowerShell. Por exemplo,

Param
(
    [String] $AccessPackageAssignmentId
)

O formato dos parâmetros permitidos depende do serviço de chamada. Se o runbook pegar parâmetros do chamador, você precisará adicionar lógica de validação ao runbook para garantir que os valores de parâmetro fornecidos sejam apropriados para como o runbook pode ser iniciado. Por exemplo, se seu runbook for iniciado por um webhook, a Automação do Azure não executará nenhuma autenticação em uma solicitação de webhook, desde que ela seja feita na URL correta, portanto, você precisará de um meio alternativo de validar a solicitação.

Depois de configurar os parâmetros de entrada do runbook, quando você testar seu runbook, poderá fornecer valores através da página Teste. Mais tarde, quando o runbook for publicado, você poderá fornecer parâmetros ao iniciar o runbook a partir do PowerShell, da API REST ou de um Aplicativo Lógico.

Analisar a saída de uma conta de Automação do Azure em Aplicativos Lógicos (opcional)

Depois que seu runbook for publicado, você poderá criar uma agenda na Automação do Azure e vincular seu runbook a essa agenda para ser executado automaticamente. O agendamento de runbooks da Automação do Azure é adequado para runbooks que não precisam interagir com outros serviços do Azure ou do Office 365 que não têm interfaces do PowerShell.

Se você deseja enviar a saída do seu runbook para outro serviço, considere usar os Aplicativos Lógicos do Azure para iniciar seu runbook de Automação do Azure, pois os Aplicativos Lógicos também podem analisar os resultados.

  1. Em Aplicativos Lógicos do Azure, crie um Aplicativo Lógico no Designer de Aplicativos Lógicos começando com Recorrência.

  2. Adicione a operação Criar trabalho a partir da Automação do Azure. Autentique-se na ID do Microsoft Entra e selecione a Assinatura, Grupo de Recursos e Conta de Automação criada anteriormente. Selecione Esperar pelo trabalho.

  3. Adicione o parâmetro Runbook name e digite o nome do runbook a ser iniciado. Se o runbook tiver parâmetros de entrada, então você pode fornecer os valores para eles.

  4. Selecione Nova etapa e adicione a operação Obter saída do trabalho. Selecione a mesma Assinatura, Grupo de Recursos e Conta de Automação da etapa anterior e selecione o valor Dinâmico da ID do Trabalho da etapa anterior.

  5. Em seguida, você pode adicionar mais operações ao Aplicativo Lógico, como a ação Analisar JSON que usa o Conteúdo retornado quando o runbook é concluído. (Se você estiver gerando automaticamente o Analise o esquema JSON de uma carga útil de exemplo, certifique-se de considerar o script do PowerShell potencialmente retornando null; talvez seja necessário alterar alguns dos "type": ​"string" para "type": [​"string",​ "null"​] no esquema.)

Na Automação do Azure, um runbook do PowerShell pode falhar ao ser concluído se tentar gravar uma grande quantidade de dados no fluxo de saída de uma só vez. Normalmente, você pode contornar esse problema fazendo com que a saída do runbook apenas as informações necessárias para o aplicativo lógico, como usando o Select-Object -Property cmdlet para excluir propriedades desnecessárias.

Planeje manter o certificado atualizado

Se você criou um certificado autoassinado seguindo as etapas acima para autenticação, lembre-se de que o certificado tem um tempo de vida limitado antes de expirar. Você precisa regenerar o certificado e carregar o novo certificado antes de sua data de validade.

Há dois locais onde você pode ver a data de expiração no portal do Azure.

  • Na Automação do Azure, a tela Certificados exibe a data de expiração do certificado.
  • No Microsoft Entra ID, no registro do aplicativo, a tela Certificados & segredos exibe a data de expiração do certificado usado para a conta de Automação do Azure.

Próximos passos