Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure PowerShell supporta diversi metodi di autenticazione. Il modo più semplice per iniziare è usare Azure Cloud Shell, che esegue automaticamente l'accesso. Con un'installazione locale, è possibile accedere in modo interattivo tramite il browser. Quando si scrivono script per l'automazione l'approccio consigliato è usare un principale del servizio con le autorizzazioni necessarie. Quando si limitano le autorizzazioni di accesso il più possibile per il caso d'uso, è possibile proteggere le risorse di Azure.
Dopo l'accesso, i comandi vengono eseguiti sulla sottoscrizione predefinita. Per modificare la sottoscrizione attiva per una sessione, usare il cmdlet Set-AzContext . Per modificare la sottoscrizione predefinita usata durante l'accesso con Azure PowerShell, usare Set-AzDefault.
Importante
Le credenziali vengono condivise tra più sessioni di PowerShell, purché rimangano connessi. Per altre informazioni, vedere l'articolo sulle credenziali persistenti.
Accedere in modo interattivo
Per accedere in modo interattivo, usare il cmdlet Connect-AzAccount .
Connect-AzAccount
Quando viene eseguito, questo cmdlet presenterà una stringa di token. Per accedere, copiare questa stringa e incollarla https://microsoft.com/devicelogin in un browser. La sessione di PowerShell verrà autenticata per connettersi ad Azure.
Importante
L'autorizzazione delle credenziali nome utente/password è stata rimossa in Azure PowerShell a causa delle modifiche apportate alle implementazioni di autorizzazione di Active Directory e ai problemi di sicurezza. Se utilizzi l'autorizzazione delle credenziali a scopo di automazione, crea invece un'entità di servizio.
Accedere con un'entità principal del servizio
I principiali del servizio sono account Azure non interattivi. Analogamente ad altri account utente, le relative autorizzazioni vengono gestite con Microsoft Entra ID. Concedendo a un'entità servizio solo le autorizzazioni necessarie, gli script di automazione rimangono protetti.
Per informazioni su come creare un'entità servizio da usare con Azure PowerShell, vedere Creare un'entità servizio di Azure con Azure PowerShell.
Per accedere con un'entità del servizio, usare l'argomento -ServicePrincipal
con il cmdlet Connect-AzAccount
. Saranno necessari anche l'ID applicazione dell'entità di servizio, le credenziali di accesso e l'ID del tenant associati all'entità di servizio. La modalità con cui si accede a un principal del servizio dipenderà dal fatto che sia stato configurato per l'autenticazione basata su password o su certificato.
Autenticazione basata su password
Per ottenere le credenziali del principale del servizio come oggetto appropriato, usare il cmdlet Get-Credential. Questo cmdlet presenterà una richiesta di nome utente e password. Usare l'identificativo del principale del servizio come nome utente.
$pscredential = Get-Credential
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId
Per gli scenari di automazione, è necessario creare credenziali da un nome utente e una stringa sicura:
$passwd = ConvertTo-SecureString <use a secure password here> -AsPlainText -Force
$pscredential = New-Object System.Management.Automation.PSCredential('service principal name/id', $passwd)
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId
Assicurarsi di usare buone pratiche per l'archiviazione delle password durante l'automazione delle connessioni ai principali del servizio.
Autenticazione basata su certificati
L'autenticazione basata su certificati richiede che Azure PowerShell possa recuperare informazioni da un archivio certificati locale in base all'impronta digitale del certificato.
Connect-AzAccount -ApplicationId $appId -Tenant $tenantId -CertificateThumbprint <thumbprint>
Quando si usa un principale del servizio anziché un'applicazione registrata, aggiungere l'argomento -ServicePrincipal
e specificare l'ID applicazione del principale del servizio come valore del parametro -ApplicationId
.
Connect-AzAccount -ServicePrincipal -ApplicationId $servicePrincipalId -Tenant $tenantId -CertificateThumbprint <thumbprint>
In PowerShell 5.1 l'archivio certificati può essere gestito e controllato con il modulo PKI . Per PowerShell Core 6.x e versioni successive, il processo è più complesso. Gli script seguenti illustrano come importare un certificato esistente nell'archivio certificati accessibile da PowerShell.
Importare un certificato in PowerShell 5.1
# Import a PFX
$credentials = Get-Credential -Message "Provide PFX private key password"
Import-PfxCertificate -FilePath <path to certificate> -Password $credentials.Password -CertStoreLocation cert:\CurrentUser\My
Importare un certificato in PowerShell Core 6.x e versioni successive
# Import a PFX
$storeName = [System.Security.Cryptography.X509Certificates.StoreName]::My
$storeLocation = [System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser
$store = [System.Security.Cryptography.X509Certificates.X509Store]::new($storeName, $storeLocation)
$certPath = <path to certificate>
$credentials = Get-Credential -Message "Provide PFX private key password"
$flag = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($certPath, $credentials.Password, $flag)
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$store.Add($Certificate)
$store.Close()
Accedere con un'identità gestita
Le identità gestite sono una funzionalità di Microsoft Entra ID. Le identità gestite sono entità servizio assegnate alle risorse eseguite in Azure. È possibile usare un'entità servizio con identità gestita per l'accesso e acquisire un token di accesso esclusivo per app per accedere ad altre risorse. Le identità gestite sono disponibili solo nelle risorse in esecuzione in un cloud di Azure.
Questo comando si connette usando l'identità gestita dell'ambiente host. Ad esempio, se eseguito in una virtualmachine con un'identità del servizio gestita assegnata, questo consente al codice di accedere usando tale identità assegnata.
Connect-AzAccount -Identity
Accedere con un tenant non predefinito o come provider di soluzioni cloud (CSP)
Se l'account è associato a più tenant, l'accesso richiede l'uso del parametro -Tenant
durante la connessione. Questo parametro funzionerà con qualsiasi metodo di accesso. Durante l'accesso, questo valore di parametro può essere l'ID oggetto di Azure del tenant (ID tenant) o il nome di dominio completo del tenant.
Se si è un Cloud Solution Provider (CSP), il -Tenant
valore deve essere un ID tenant.
Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx'
Accedere a un altro cloud
I servizi cloud di Azure offrono ambienti conformi alle leggi di gestione dei dati a livello di area.
Per gli account in un cloud regionale, imposta l'ambiente al momento dell'accesso con l'argomento -Environment
.
Questo parametro funzionerà con qualsiasi metodo di accesso. Ad esempio, se l'account si trova nel cloud Cina:
Connect-AzAccount -Environment AzureChinaCloud
Il comando seguente ottiene un elenco di ambienti disponibili:
Get-AzEnvironment | Select-Object Name