Condividi tramite


Usare Microsoft Entra ID per eseguire l'autenticazione in Azure

Il servizio Microsoft Entra ID consente diverse attività amministrative, ad esempio la gestione degli utenti, la gestione del dominio e la configurazione dell'accesso Single Sign-On. Questo articolo descrive come usare l'ID Microsoft Entra all'interno di Automazione di Azure come provider per l'autenticazione in Azure.

Installare i moduli Microsoft Entra

È possibile abilitare Microsoft Entra ID tramite i moduli di PowerShell seguenti:

  • Azure Active Directory PowerShell per Graph (moduli AzureRM e Az). Automazione di Azure viene fornito con il modulo AzureRM e l'aggiornamento recente relativo, il modulo AZ. La funzionalità include l'autenticazione non interattiva in Azure usando l'autenticazione basata sulle credenziali dell'utente Microsoft Entra (OrgId). Vedere Microsoft Entra ID 2.0.2.76.

  • MICROSOFT Entra ID per Windows PowerShell (modulo MSOnline). Questo modulo abilita le interazioni con Microsoft Online, incluso Microsoft 365.

Nota

PowerShell Core non supporta il modulo MSOnline. Per usare i cmdlet del modulo, è necessario eseguirli da Windows PowerShell. Si consiglia di usare la versione più recente di Azure Active Directory PowerShell per i moduli Graph anziché il modulo MSOnline.

Nota

I moduli Azure AD e MSOnline PowerShell sono deprecati a partire dal 30 marzo 2024. Per maggiori informazioni, leggere l'aggiornamento sulla deprecazione. Dopo questa data, il supporto per questi moduli è limitato all'assistenza alla migrazione a Microsoft Graph PowerShell SDK e alle correzioni di sicurezza. I moduli deprecati continueranno a funzionare fino al 30 marzo 2025.

È consigliabile eseguire la migrazione a Microsoft Graph PowerShell per interagire con Microsoft Entra ID (in precedenza Azure AD). Per domande comuni sulla migrazione, consultare le Domande frequenti sulla migrazione. Nota: le versioni 1.0.x di MSOnline potrebbero subire interruzioni dopo il 30 giugno 2024.

Preinstallazione

Prima di installare i moduli Microsoft Entra nel computer:

  • Disinstallare le versioni precedenti del modulo AzureRM/Az e del modulo MSOnline.

  • Disinstallare Assistente per l'accesso ai Microsoft Online Services per verificare il corretto funzionamento dei nuovi moduli di PowerShell.

Installare i moduli AzureRM e Az

Nota

Per usare questi moduli, è necessario usare PowerShell versione 5.1 o successiva con una versione di Windows a 64 bit.

  1. Installare Windows Management Framework (WMF) 5.1. Vedere Installare e configurare WMF 5.1.

  2. Installare AzureRM e/o Az seguendo le istruzioni indicate in Installare Azure PowerShell in Windows con PowerShellGet.

Installare il modulo MSonline

Nota

Per installare il modulo MSOnline, è necessario essere membri di un ruolo di amministratore. Vedi Informazioni sui ruoli amministrativi.

  1. Verificare che la funzionalità Microsoft .NET Framework 3.5. x sia abilitata nel computer. È probabile che nel computer sia installata una versione più recente, ma la compatibilità con le versioni precedenti del .NET Framework può essere abilitata o disabilitata.

  2. Installare la versione a 64 bit dell'Assistente per l'accesso ai Microsoft Online Services.

  3. Eseguire Windows PowerShell come amministratore per creare un prompt dei comandi di Windows PowerShell con privilegi elevati.

  4. Distribuire l'ID Microsoft Entra da MSOnline 1.0.

  5. Se viene richiesto di installare il provider NuGet, digitare S e premere INVIO.

  6. Se viene richiesto di installare il modulo da PSGallery, digitare S e premere INVIO.

Installare il supporto per PSCredential

Automazione di Azure usa la classe PSCredential per rappresentare un asset di credenziali. Gli script recuperano gli oggetti PSCredential tramite il cmdlet Get-AutomationPSCredential. Per altre informazioni, vedere Asset di credenziali in Automazione di Azure.

Assegnare un amministratore della sottoscrizione

È necessario assegnare un amministratore per la sottoscrizione di Azure. Tale persona ha il ruolo di proprietario per l'ambito della sottoscrizione. Vedere Controllo degli accessi in base al ruolo in Automazione di Azure

Modificare la password dell'utente di Microsoft Entra

Per modificare la password dell'utente di Microsoft Entra:

  1. Disconnettersi da Azure.

  2. Chiedere all'amministratore di accedere ad Azure come utente di Microsoft Entra appena creato, usando il nome utente completo (incluso il dominio) e una password temporanea.

  3. Chiedere all'amministratore di modificare la password, quando richiesto.

Configurare Automazione di Azure per gestire la sottoscrizione di Azure

Per Automazione di Azure comunicare con Microsoft Entra ID, è necessario recuperare le credenziali associate alla connessione di Azure all'ID Microsoft Entra. Esempi di tali credenziali sono l'ID tenant, l'ID sottoscrizione e il tipo. Per altre informazioni sulla connessione tra Azure e Microsoft Entra ID, vedere Connessione'organizzazione all'ID Microsoft Entra.

Creare un asset di credenziali

Con le credenziali di Azure per Microsoft Entra disponibili, è possibile creare un asset di credenziali Automazione di Azure per archiviare in modo sicuro le credenziali di Microsoft Entra in modo che i runbook e gli script DSC (Desire State Configuration) possano accedervi. Questa operazione può essere eseguita nel portale di Azure o usando cmdlet di PowerShell.

Creare l'asset di credenziali nel portale di Azure

È possibile usare la portale di Azure per creare l'asset di credenziali. Eseguire questa operazione dall'account di automazione tramite Credenziali in Risorse condivise. Vedere Asset di credenziali in Automazione di Azure

Creare l'asset di credenziali con Windows PowerShell

Per preparare un nuovo asset di credenziali in Windows PowerShell, lo script crea prima un oggetto PSCredential usando il nome utente e la password assegnati. Lo script usa quindi questo oggetto per creare l'asset tramite una chiamata al cmdlet New-AzureAutomationCredential. In alternativa, lo script può chiamare il cmdlet Get-Credential per richiedere all'utente di digitare un nome e una password. Vedere Asset di credenziali in Automazione di Azure

Gestire le risorse di Azure da un runbook di automazione di Azure

È possibile gestire le risorse di Azure da runbook di Automazione di Azure usando l'asset di credenziali. Di seguito è riportato un esempio di runbook di PowerShell che raccoglie l'asset di credenziali da usare per arrestare e avviare le macchine virtuali in una sottoscrizione di Azure. Tale runbook usa prima di tutto Get-AutomationPSCredential per recuperare le credenziali da usare per l'autenticazione in Azure. Chiama quindi il cmdlet Connect-AzAccount per connettersi ad Azure usando le credenziali.

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
        } 
    } 
}

Passaggi successivi