Automatizar as tarefas de governança do Microsoft Entra ID por meio da Automação do Azure e do Microsoft Graph
Automação do Azure é um serviço de nuvem do Azure que permite automatizar processos e gerenciamento de sistemas comuns ou repetitivos. Microsoft Graph é o ponto de extremidade da API unificada da Microsoft para os recursos do Microsoft Entra que gerenciam usuários, grupos, pacotes de acesso, revisões de acesso e outros recursos no diretório. Gerencie o Microsoft Entra ID em escala na linha de comando do PowerShell usando o SDK do PowerShell do Microsoft Graph. Também pode incluir os cmdlets do PowerShell do Microsoft Graph de um runbook baseado no PowerShell na Automação do Azure, para poder automatizar as tarefas do Microsoft Entra usando um script simples.
A Automação do Azure e o SDK do Graph do PowerShell dão suporte à autenticação baseada em certificado e às permissões de aplicativo, para que os runbooks da Automação do Azure se autentiquem no Microsoft Entra ID sem precisarem de um contexto de usuário.
Este artigo mostra como começar a usar a Automação do Azure para a governança do Microsoft Entra ID, criando um runbook simples que consulta o gerenciamento de direitos por meio do PowerShell do Microsoft Graph.
Criar uma conta de Automação do Azure
Dica
As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.
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 um agendamento ou ser disparados por webhooks ou por Aplicativos Lógicos.
O uso da Automação do Azure requer que você tenha uma assinatura do Azure.
Função de pré-requisito: assinatura do Azure ou proprietário do grupo de recursos do Azure
Iniciar sessão no portal do Azure. Verifique se você tem acesso à assinatura ou ao grupo de recursos em que a conta de Automação do Azure estará localizada.
Selecione a assinatura ou o grupo de recursos e clique em Criar. Digite Automação, selecione o serviço do Azure Automação da Microsoft e clique em Criar.
Após a criação da conta de usuário da Automação do Azure, selecione Controle de acesso (IAM). Em seguida, selecione Exibir em Exibir acesso a esse recurso. Esses usuários e entidades de serviço poderão interagir mais tarde com o serviço Microsoft por meio dos scripts a serem criados nessa conta de Automação do Azure.
Examine os usuários e as entidades de serviço listadas lá e verifique se estão autorizados. Remova todos os usuários não autorizados.
Criar um par de chaves autoassinadas e um certificado no computador
Para que possa operar sem precisar das credenciais pessoais, a conta de Automação do Azure criada precisará se autenticar no Microsoft Entra ID com um certificado.
Se você já tiver um par de chaves para autenticar o 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,
Siga as instruções em como criar um certificado autoassinado, opção 2, para criar e exportar um certificado com uma chave privada.
Exibir a impressão digital do certificado.
$cert | ft Thumbprint
Depois de exportar os arquivos, você poderá remover o certificado e o par de chaves do repositório de certificados de usuário local. Nas próximas etapas, você também removerá os arquivos
.pfx
e.crt
, depois que o certificado e a chave privada forem carregados nos serviços de Automação do Azure e do Microsoft Entra.
Carregar o par de chaves na Automação do Azure
O seu runbook na Automação do Azure recupera a chave privada do arquivo .pfx
e a utiliza para autenticação no Microsoft Graph.
No portal do Azure da conta de Automação do Azure, selecione Certificados e Adicionar um certificado.
Carregue o arquivo
.pfx
já criado e digite a senha que você forneceu quando criou o arquivo.Depois que a chave privada for carregada, registre a data de validade do certificado.
Agora você pode excluir o arquivo
.pfx
do computador local. Porém, não exclua o arquivo.crt
ainda, pois você precisará dele em uma próxima etapa.
Adicionar módulos do Microsoft Graph à conta de Automação do Azure
Por padrão, a Automação do Azure não tem módulos do PowerShell pré-carregados para o Microsoft Graph. Você precisa adicionar Microsoft.Graph.Authentication e depois módulos adicionais da galeria à conta de Automação.
No portal do Azure da conta Automação do Azure, selecione Módulos e Procurar na galeria.
Na barra de pesquisa, digite Microsoft.Graph.Authentication. Selecione o módulo, clique em Importar e OK para que o Microsoft Entra ID comece a importar o módulo. Depois de selecionar OK, a importação de um módulo poderá demorar alguns minutos. Não tente adicionar mais módulos do Microsoft Graph até que a importação do módulo Microsoft.Graph.Authentication seja concluída, pois os outros módulos têm esse como pré-requisito.
Retorne à lista Módulos e selecione Atualizar. Depois que o status do Microsoft.Graph.Authentication for alterado para Disponível você poderá importar o próximo módulo.
Se você usa os cmdlets para os recursos de governança do Microsoft Entra ID, como o gerenciamento de direitos, repita o processo de importação para o módulo Microsoft.Graph.Identity.Governance.
Importe outros módulos que seu script possa exigir, como Microsoft.Graph.Users. Por exemplo, se você usa o Identity Protection, talvez deseje importar o módulo Microsoft.Graph.Identity.SignIns.
Criar um registro de aplicativo e atribuir permissões
Em seguida, você criará 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 a autenticação.
- Iniciar sessão no centro de administração do Microsoft Entra como, no mínimo, Administrador de Aplicativos.
- Navegue até Identidade>Aplicativos>Registros do aplicativo.
- Selecione Novo registro.
- Digite um nome para o aplicativo e selecione Registrar.
- Depois que o registro de aplicativo for criado, anote a ID do aplicativo (cliente) e a ID do diretório (locatário), pois você precisará desses itens mais tarde.
- Selecione Certificados e segredos>Certificados>Carregar certificado.
- Carregue o arquivo
.crt
criado anteriormente.
- Carregue o arquivo
- Selecione Permissões de API>Adicionar uma permissão.
- Selecione Microsoft Graph>Permissões de aplicativo.
Selecione cada uma das permissões que o usuário da Automação do Azure exige e depois selecione Adicionar permissões.
- Quando o runbook executa apenas consultas ou atualizações em um único catálogo, você não precisa atribuir permissões de aplicativo em todo o locatário. Em vez disso, atribua a entidade de serviço ao Proprietário do catálogo ou à função Leitor de catálogo.
- Se o runbook estiver executando apenas consultas para gerenciamento de direitos, ele poderá usar a EntitlementManagement.Read.All.
- Quando o runbook faz alterações no gerenciamento de direitos, por exemplo, para criar atribuições em diversos catálogos, use a permissão EntitlementManagement.ReadWrite.All.
- Para outras APIs, verifique se a permissão necessária foi adicionada. Por exemplo, para o Microsoft Entra ID Protection, a permissão IdentityRiskyUser.Read.All pode ser necessária.
Conceder consentimento do administrador
O aplicativo criado na seção anterior tem permissões que exigem que alguém com pelo menos a função de Administrador de funções com privilégios aprove antes de funcionar conforme o esperado.
- Iniciar sessão no centro de administração do Microsoft Entra como, pelo menos, Administrador de funções com privilégios.
- Navegue até Identidade>Aplicativos>Registros de aplicativo>Todos os aplicativos.
- Selecione o aplicativo criado na seção anterior.
- Selecione Permissões da API e revise as permissões necessárias.
- Se apropriado, selecione Conceder consentimento do administrador para "Nome do locatário" para conceder essas permissões ao aplicativo.
Criar variáveis da Automação do Azure
Nesta etapa, você criará na conta de Automação do Azure três variáveis que o runbook usa para determinar como se autenticar no Microsoft Entra ID.
No portal do Azure, retorne à conta da Automação do Azure.
Selecione Variáveis e Adicionar variável.
Crie uma variável chamada Impressão Digital. Digite, como o valor da variável, a impressão digital do certificado que já foi gerada.
Crie uma variável chamada ClientId. Como o valor da variável, digite a ID do cliente para o aplicativo registrado no Microsoft Entra ID.
Crie uma variável chamada TenantId. Como o valor da variável, digite a ID do locatário do diretório em que o aplicativo foi registrado.
Criar um runbook do PowerShell da Automação do Azure que possa usar o Graph
Nesta etapa, você criará um runbook inicial. Dispare esse runbook para verificar se a autenticação que usa o certificado já criado foi bem-sucedida.
Selecione Runbooks e Criar um runbook.
Digite o nome do runbook, selecione PowerShell como o tipo de runbook a ser criado e selecione Criar.
Depois que o runbook for criado, um painel de edição de texto é exibido para você digitar o código-fonte do PowerShell do runbook.
Digite o PowerShell a seguir 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
Selecione Painel de teste e Iniciar. Aguarde alguns segundos até a conclusão do processamento do script de runbook realizado pela Automação do Azure.
Quando a sequência do runbook é bem-sucedida, a mensagem Boas-vindas ao Microsoft Graph! é exibida.
Agora que você verificou que o runbook pode se autenticar no Microsoft Graph, estenda-o adicionando cmdlets para interagir com os recursos do Microsoft Entra.
Estender o runbook para usar o gerenciamento de direitos
Quando o registro de aplicativo do runbook tiver as permissões EntitlementManagement.Read.All ou EntitlementManagement.ReadWrite.All, ele pode usar as APIs de gerenciamento de direitos.
- Por exemplo, para obter uma lista de pacotes de acesso de gerenciamento de direitos do Microsoft Entra, atualize 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
}
Selecione Painel de teste e Iniciar. Aguarde alguns segundos até a conclusão do processamento do script de runbook realizado pela Automação do Azure.
Quando a execução é bem-sucedida, a saída é uma matriz JSON em vez da mensagem de boas-vindas. 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 runbook adicionando uma seção Param
na parte superior do script do PowerShell. Por exemplo,
Param
(
[String] $AccessPackageAssignmentId
)
O formato dos parâmetros permitidos depende do serviço de chamada. Quando o runbook requer parâmetros do chamador, você precisa adicionar uma lógica de validação ao runbook para garantir que os valores do parâmetro fornecidos sejam apropriados para a forma como o runbook pode ser iniciado. Por exemplo, se o runbook for iniciado por um webhook, a Automação do Azure não executará nenhuma autenticação em uma solicitação de webhook, já que foi 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, ao testar seu runbook, informe valores por meio da página Teste. Posteriormente, 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 da Automação do Azure nos Aplicativos Lógicos (opcional)
Depois que o runbook for publicado, você poderá criar um agendamento na Automação do Azure e vincular o runbook para que ele seja executado automaticamente. O agendamento de runbooks a partir da Automação do Azure é adequado para os runbooks que não precisam interagir com outros serviços do Azure ou do Office 365 que não têm interfaces PowerShell.
Se você quiser enviar a saída do runbook para outro serviço, considere usar os Aplicativos Lógicos do Azure para iniciar o runbook da Automação do Azure, pois os Aplicativos Lógicos também podem analisar os resultados.
Nos Aplicativos Lógicos do Azure, crie um Aplicativo Lógico no Designer de Aplicativos Lógicos começando com Recorrência.
Adicione a operação Criar trabalho da Automação do Azure. Autentique-se no Microsoft Entra ID e selecione a Assinatura, o Grupo de recursos e a Conta de automação já criados. Selecione Aguardar Trabalho.
Adicione o parâmetro Nome do runbook e digite o nome do runbook a ser iniciado. Se o runbook tiver parâmetros de entrada, então forneça valores para eles.
Selecione Nova etapa e adicione a operação Obter saída do trabalho. Selecione os mesmos itens da etapa anterior: Assinatura, Grupo de Recursos e Conta de Automação e escolha o valor dinâmico da ID do Trabalho da etapa anterior.
Depois, você poderá 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 estiver gerando automaticamente o esquema Analisar JSON a partir de uma carga de exemplo, considere o script do PowerShell que pode retornar nulo; talvez seja necessário alterar parte do
"type": "string"
para"type": ["string", "null"]
no esquema.)
Na Automação do Azure, um runbook do PowerShell poderá não ser concluído se tentar gravar uma grande quantidade de dados no fluxo de saída de uma só vez. Normalmente, é possível resolver esse problema fazendo com que o runbook emita apenas as informações necessárias para o Aplicativo Lógico, como usando o cmdlet Select-Object -Property
para excluir as propriedades desnecessárias.
Planejar a atualização constante do certificado
Se você criou um certificado autoassinado seguindo as etapas acima para autenticação, tenha em mente que o certificado tem um tempo de vida limitado antes de expirar. Você precisará regenerar o certificado e carregar o novo certificado antes da data de validade dele.
Há dois locais em que você pode ver a data de validade no portal do Azure.
- No Automação do Azure, a tela Certificados exibe a data de validade do certificado.
- No Microsoft Entra ID, no registro de aplicativo, a tela Certificados e segredos exibe a data do término do certificado usado para a conta de Automação do Azure.