Compartilhar via


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.

  1. Instalar o Windows Management Framework (WMF) 5.1. Veja Instalar e configurar o WMF 5.1.

  2. 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.

  1. 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.

  2. Instale a versão de 64 bits do Assistente de conexão do Microsoft Online Services.

  3. Execute o Windows PowerShell como administrador para criar um prompt de comando elevado do Windows PowerShell.

  4. Implantar o Microsoft Entra ID pelo MSOnline 1.0.

  5. Se precisar instalar o provedor do NuGet, digite Y e pressione ENTER.

  6. 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:

  1. Faça logoff do Azure.

  2. 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.

  3. 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