Usar o Microsoft Entra ID para autenticar no Azure
O serviço Microsoft Entra ID permite uma série de tarefas administrativas, como gerenciamento de usuários, gerenciamento de domínio e configuração de logon único. Este artigo descreve como usar o Microsoft Entra ID na Automação do Azure como o provedor para autenticação no Azure.
Instalar os módulos do Microsoft Entra
É possível habilitar o Microsoft Entra ID por meio dos seguintes módulos do PowerShell:
PowerShell do Azure Active Directory para Microsoft Azure AD Graph (módulos AzureRM e Az). A Automação do Azure é fornecida com o módulo AzureRM e sua atualização recente, o módulo Az. A funcionalidade inclui autenticação não interativa para o Azure usando a autenticação baseada em credencial do usuário do Microsoft Entra (OrgId). Confira Microsoft Entra ID 2.0.2.76.
Microsoft Entra ID para Windows PowerShell (módulo MSOnline). Este módulo permite interações com a Microsoft Online, incluindo o Microsoft 365.
Observação
O PowerShell Core não é compatível com o módulo MSOnline. Para usar os cmdlets do módulo, você deve executá-los pelo Windows PowerShell. Recomendamos usar os módulos mais recentes do PowerShell do Azure Active Directory para Graph em vez do módulo MSOnline.
Observação
Os módulos Azure AD e MSOnline PowerShell estão preteridos desde 30 de março de 2024. Para saber mais, leia a atualização de preterição. Após essa data, o suporte a esses módulos se limitará à assistência à migração para o SDK do Microsoft Graph PowerShell e às correções de segurança. Os módulos preteridos continuarão funcionando até 30 de março de 2025.
Recomendamos migrar para o Microsoft Graph PowerShell para interagir com o Microsoft Entra ID (antigo Azure AD). Para perguntas comuns sobre migração, consulte as Perguntas Frequentes sobre Migração. Observação: As versões 1.0.x do MSOnline poderão sofrer interrupções após 30 de junho de 2024.
Pré-instalação
Antes de instalar os módulos do Microsoft Entra em seu computador:
Desinstale todas as versões anteriores do módulo AzureRM/Az e do módulo MSOnline.
Desinstale o Assistente de Conexão do Microsoft Online Services para garantir a operação correta dos novos módulos do PowerShell.
Instalar os módulos AzureRM e Az
Observação
Para trabalhar com esses módulos, é preciso usar o PowerShell versão 5.1 ou posterior com uma versão de 64 bits do Windows.
Instalar o Windows Management Framework (WMF) 5.1. Veja Instalar e configurar o WMF 5.1.
Instale o AzureRM e/ou Az usando as instruções em Instalar Azure PowerShell no Windows com o PowerShellGet.
Instalar o módulo MSOnline
Observação
Para instalar o módulo MSOnline, você deve ser membro de uma função de administrador. Consulte Sobre funções de administrador.
Verifique se o recurso Microsoft .NET Framework 3.5.x está habilitado no seu computador. É provável que o computador tenha uma versão mais recente instalada, mas a compatibilidade com versões anteriores do .NET Framework pode ser habilitada ou desabilitada.
Instale a versão de 64 bits do Assistente de conexão do Microsoft Online Services.
Execute o Windows PowerShell como administrador para criar um prompt de comando elevado do Windows PowerShell.
Implantar o Microsoft Entra ID pelo MSOnline 1.0.
Se precisar instalar o provedor do NuGet, digite Y e pressione ENTER.
Se você for solicitado a instalar o módulo a partir de PSGallery, digite Y e pressione ENTER.
Suporte de instalação para PSCredential
A Automação do Azure usa a classe PSCredential para representar um ativo de credencial. Seus scripts recuperam objetos PSCredential
usando o cmdlet Get-AutomationPSCredential
. Para obter mais informações, veja Ativos de credencial na Automação do Azure.
Atribuir um administrador de assinatura
Você deve atribuir um administrador para a assinatura do Azure. Essa pessoa tem a função de proprietário no escopo da assinatura. Veja Controle de acesso com base em função na Automação do Azure.
Alterar a senha do usuário do Microsoft Entra
Para alterar a senha do usuário do Microsoft Entra:
Faça logoff do Azure.
Peça para o administrador fazer logon no Azure como o usuário do Microsoft Entra recém-criado, usando o nome de usuário completo (incluindo o domínio) e uma senha temporária.
Peça para o administrador mudar a senha quando solicitado.
Configurar a Automação do Azure para gerenciar a assinatura do Azure
Para que a Automação do Azure se comunique com o Microsoft Entra ID, é preciso recuperar as credenciais associadas à conexão do Azure com o Microsoft Entra ID. Exemplos dessas credenciais são ID de locatário, ID da assinatura e similares. Para obter mais informações sobre a conexão entre o Azure e o Microsoft Entra ID, veja Conectar sua organização ao Microsoft Entra ID.
Cria um ativo de credencial
Com as credenciais do Azure para o Microsoft Entra disponíveis, é hora de criar um ativo de credencial de Automação do Azure para armazenar com segurança as credenciais do Microsoft Entra para que os runbooks e os scripts de Desired State Configuration (DSC) possam acessá-las. Faça isso usando o portal do Azure ou cmdlets do PowerShell.
Criar o ativo de credencial no portal do Azure
É possível usar o portal do Azure para criar o ativo de credencial. Execute esta operação em sua conta de Automação usando Credenciais em Recursos Compartilhados. Veja Ativos de credenciais na Automação do Azure.
Criar o ativo de credencial com o Windows PowerShell
Para preparar um novo ativo de credencial no Windows PowerShell, seu script cria primeiro um objeto PSCredential
usando o nome de usuário e a senha atribuídos. Em seguida, o script usa esse objeto para criar o ativo por meio de uma chamada para o cmdlet New-AzureAutomationCredential. Como alternativa, o script pode chamar o cmdlet Get-Credential para solicitar que o usuário digite um nome e uma senha. Veja Ativos de credenciais na Automação do Azure.
Gerenciar recursos do Azure a partir de um runbook de Automação do Azure
É possível gerenciar recursos do Azure a partir de runbooks de Automação do Azure usando o ativo de credencial. Veja abaixo um exemplo de runbook do PowerShell que coleta o ativo de credencial a ser usado para parar e iniciar máquinas virtuais em uma assinatura do Azure. Esse runbook usa primeiro Get-AutomationPSCredential
para recuperar a credencial a ser usada para autenticar no Azure. Em seguida, ele chama o cmdlet Connect-AzAccount para se conectar ao Azure usando a credencial.
Workflow Workflow
{
Param
(
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]
[String]
$AzureSubscriptionId,
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]
[String]
$AzureVMList="All",
[Parameter(Mandatory=$true)][ValidateSet("Start","Stop")]
[String]
$Action
)
# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process
# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext
# get credential
$credential = Get-AutomationPSCredential -Name "AzureCredential"
# Connect to Azure with credential
$AzureContext = (Connect-AzAccount -Credential $credential -TenantId $AzureContext.Subscription.TenantId).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
-TenantId $AzureContext.Subscription.TenantId `
-DefaultProfile $AzureContext
if($AzureVMList -ne "All")
{
$AzureVMs = $AzureVMList.Split(",")
[System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs
}
else
{
$AzureVMs = (Get-AzVM -DefaultProfile $AzureContext).Name
[System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs
}
foreach($AzureVM in $AzureVMsToHandle)
{
if(!(Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM}))
{
throw " AzureVM : [$AzureVM] - Does not exist! - Check your inputs "
}
}
if($Action -eq "Stop")
{
Write-Output "Stopping VMs";
foreach -parallel ($AzureVM in $AzureVMsToHandle)
{
Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Stop-AzVM -DefaultProfile $AzureContext -Force
}
}
else
{
Write-Output "Starting VMs";
foreach -parallel ($AzureVM in $AzureVMsToHandle)
{
Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Start-AzVM -DefaultProfile $AzureContext
}
}
}
Próximas etapas
- Para obter detalhes sobre o uso de credenciais, veja Gerenciar credenciais na Automação do Azure.
- Para obter informações sobre módulos, veja Gerenciar módulos na Automação do Azure.
- Para iniciar um runbook, veja Iniciar um runbook na Automação do Azure.
- Para obter detalhes do PowerShell, veja Documentos do PowerShell.