Utilizar o Microsoft Entra ID para autenticar no Azure
O serviço Microsoft Entra ID permite várias 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 módulos do Microsoft Entra
Você pode habilitar o Microsoft Entra ID por meio dos seguintes módulos do PowerShell:
Azure Ative Directory PowerShell for 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 credenciais de usuário (OrgId) do Microsoft Entra. Consulte Microsoft Entra ID 2.0.2.76.
Microsoft Entra ID para Windows PowerShell (módulo MSOnline). Este módulo permite interações com o Microsoft Online, incluindo o Microsoft 365.
Nota
O PowerShell Core não oferece suporte ao módulo MSOnline. Para usar os cmdlets do módulo, você deve executá-los a partir do Windows PowerShell. Você é incentivado a usar os módulos mais recentes do Azure Ative Directory PowerShell for Graph em vez do módulo MSOnline.
Nota
Os módulos Azure AD e MSOnline PowerShell foram preteridos a partir de 30 de março de 2024. Para saber mais, leia a atualização de descontinuação. Após essa data, o suporte para esses módulos é limitado à assistência de migração para o SDK do Microsoft Graph PowerShell e correções de segurança. Os módulos preteridos continuarão a funcionar até 30 de março de 2025.
Recomendamos migrar para o Microsoft Graph PowerShell para interagir com o Microsoft Entra ID (anteriormente Azure AD). Para perguntas comuns sobre migração, consulte as Perguntas frequentes sobre migração. Nota: As versões 1.0.x do MSOnline podem sofrer interrupções após 30 de junho de 2024.
Pré-instalação
Antes de instalar os módulos do Microsoft Entra no seu computador:
Desinstale todas as versões anteriores do módulo AzureRM/Az e do módulo MSOnline.
Desinstale o Assistente de Início de Sessão do Microsoft Online Services para garantir o funcionamento correto dos novos módulos do PowerShell.
Instalar os módulos AzureRM e Az
Nota
Para trabalhar com esses módulos, você deve usar o PowerShell versão 5.1 ou posterior com uma versão de 64 bits do Windows.
Instale o Windows Management Framework (WMF) 5.1. Consulte Instalar e configurar o WMF 5.1.
Instale o AzureRM e/ou Az usando instruções em Instalar o Azure PowerShell no Windows com PowerShellGet.
Instalar o módulo MSOnline
Nota
Para instalar o módulo MSOnline, você deve ser membro de uma função de administrador. Consulte Sobre funções de admin.
Verifique se o recurso Microsoft .NET Framework 3.5.x está habilitado no seu computador. É provável que seu 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 Início de Sessão do Microsoft Online Services.
Execute o Windows PowerShell como administrador para criar um prompt de comando elevado do Windows PowerShell.
Implante o Microsoft Entra ID a partir do MSOnline 1.0.
Se você for solicitado a instalar o provedor NuGet, digite Y e pressione ENTER.
Se lhe for pedido para instalar o módulo a partir do PSGallery, escreva Y e prima ENTER.
Instalar suporte para PSCredential
A Automação do Azure usa a classe PSCredential para representar um ativo de credencial. Seus scripts recuperam PSCredential
objetos usando o Get-AutomationPSCredential
cmdlet. Para obter mais informações, consulte Ativos de credenciais na Automação do Azure.
Atribuir um administrador de subscrição
Você deve atribuir um administrador para a assinatura do Azure. Essa pessoa tem a função de Proprietário para o escopo da assinatura. Consulte Controlo de acesso baseado em funções na Automatização do Azure.
Alterar a palavra-passe do utilizador do Microsoft Entra
Para alterar a senha do usuário do Microsoft Entra:
Faça logout do Azure.
Faça com que o administrador inicie sessão no Azure como o utilizador do Microsoft Entra que acabou de criar, utilizando o nome de utilizador completo (incluindo o domínio) e uma palavra-passe temporária.
Peça ao administrador para alterar 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 a ID do Microsoft Entra, você deve recuperar as credenciais associadas à conexão do Azure com a ID do Microsoft Entra. Exemplos dessas credenciais são ID de locatário, ID de assinatura e similares. Para obter mais informações sobre a conexão entre o Azure e o Microsoft Entra ID, consulte Conectar sua organização ao Microsoft Entra ID.
Criar um ativo de credencial
Com as credenciais do Azure para o Microsoft Entra disponíveis, é hora de criar um ativo de credenciais da Automação do Azure para armazenar com segurança as credenciais do Microsoft Entra para que runbooks e scripts de Configuração de Estado de Desejo (DSC) possam acessá-los. Você pode fazer isso usando o portal do Azure ou cmdlets do PowerShell.
Criar o ativo de credencial no portal do Azure
Você pode usar o portal do Azure para criar o ativo de credencial. Faça esta operação a partir da sua conta de automação usando credenciais em Recursos compartilhados. Consulte Ativos de credenciais na Automação do Azure.
Criar o ativo de credenciais com o Windows PowerShell
Para preparar um novo ativo de credencial no Windows PowerShell, seu script primeiro cria um PSCredential
objeto 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. Consulte Ativos de credenciais na Automação do Azure.
Gerenciar recursos do Azure a partir de um runbook de Automação do Azure
Você pode gerenciar recursos do Azure a partir de runbooks de Automação do Azure usando o ativo de credencial. Abaixo está 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. Este runbook usa Get-AutomationPSCredential
primeiro 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óximos passos
- Para obter detalhes sobre o uso de credenciais, consulte Gerenciar credenciais na Automação do Azure.
- Para obter informações sobre módulos, consulte Gerenciar módulos na Automação do Azure.
- Se você precisar iniciar um runbook, consulte Iniciar um runbook na Automação do Azure.
- Para obter detalhes do PowerShell, consulte Documentos do PowerShell.