Partilhar via


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.

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

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

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

  2. Instale a versão de 64 bits do Assistente de Início de Sessão do Microsoft Online Services.

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

  4. Implante o Microsoft Entra ID a partir do MSOnline 1.0.

  5. Se você for solicitado a instalar o provedor NuGet, digite Y e pressione ENTER.

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

  1. Faça logout do Azure.

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

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