Usare Microsoft Entra ID per eseguire l'autenticazione in Azure
Il servizio Microsoft Entra ID consente di eseguire una serie di attività amministrative, ad esempio la gestione degli utenti e del dominio e la configurazione dell'accesso Single Sign-On. Questo articolo descrive come usare Microsoft Entra ID in Automazione di Azure come provider per l'autenticazione in Azure.
Installare i moduli per 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 tramite l'autenticazione basata su credenziali dell'utente di Microsoft Entra (OrgId). Vedere Microsoft Entra ID 2.0.2.76.
Microsoft Entra ID per Windows PowerShell (modulo MSOnline). Questo modulo consente 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 per 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.
Installare Windows Management Framework (WMF) 5.1. Vedere Installare e configurare WMF 5.1.
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 membro di un ruolo di amministratore. Vedi Informazioni sui ruoli amministrativi.
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.
Installare la versione a 64 bit dell'Assistente per l'accesso ai Microsoft Online Services.
Eseguire Windows PowerShell come amministratore per creare un prompt dei comandi di Windows PowerShell con privilegi elevati.
Distribuire Microsoft Entra ID da MSOnline 1.0.
Se viene richiesto di installare il provider NuGet, digitare S e premere INVIO.
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
Cambiare la password dell'utente di Microsoft Entra
Per cambiare la password dell'utente di Microsoft Entra:
Disconnettersi da Azure.
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.
Chiedere all'amministratore di modificare la password, quando richiesto.
Configurare Automazione di Azure per gestire la sottoscrizione di Azure
Per consentire la comunicazione tra Automazione di Azure e Microsoft Entra ID, è necessario recuperare le credenziali associate alla connessione di Azure a Microsoft Entra ID. 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 Connettere l'organizzazione a Microsoft Entra ID.
Creare un asset di credenziali
Con le credenziali di Azure per Microsoft Entra disponibili, è il momento di creare un asset di credenziali di Automazione di Azure per archiviare in modo sicuro le credenziali di Microsoft Entra in modo che i runbook e gli script DSC (Desidered 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
- Per informazioni dettagliate sull'uso delle credenziali, vedere Gestire le credenziali in Automazione di Azure.
- Per informazioni sui moduli, vedere Gestire i moduli in Automazione di Azure.
- Se è necessario avviare un runbook, vedere Avviare un runbook in Automazione di Azure.
- Per informazioni dettagliate su PowerShell, vedere Documentazione di PowerShell.