Condividi tramite


Accedere con Sicurezza e gestione Aprire PowerShell

Sicurezza e gestione Open PowerShell supporta diversi metodi di autenticazione. Quando si scrivono script per l'automazione, l'approccio consigliato consiste nell'usare un token di accesso con le autorizzazioni necessarie. Quando si limitano il più possibile le autorizzazioni di accesso per il proprio caso d'uso, si contribuisce a proteggere le risorse di Azure.

Accedere in modo interattivo

Per accedere in modo interattivo, usare il cmdlet Connect-SecMgmtAccount .

Connect-SecMgmtAccount

Quando si esegue questo cmdlet, verrà aperto un browser in cui sarà possibile eseguire l'autenticazione. Se il sistema usato per la connessione non è un browser, verrà fornito un codice. Per eseguire l'autenticazione, copiare questo codice e incollarlo https://microsoft.com/devicelogin in un browser.

Importante

L'autorizzazione delle credenziali con nome utente/password è stata rimossa in Sicurezza e gestione Open PowerShell a causa dei requisiti di sicurezza dei partner. Se si usa l'autorizzazione delle credenziali a scopo di automazione, implementare invece il modello di applicazione sicura in modo da poter eseguire l'autenticazione usando un token di accesso generato usando un token di aggiornamento.

Accedere con un'entità servizio

Le entità servizio sono account Azure non interattivi. Come per gli altri account utente, le relative autorizzazioni vengono gestite con Azure Active Directory. Concedendo a un'entità servizio solo le autorizzazioni necessarie, viene garantita la sicurezza degli script di automazione.

Per accedere con un'entità servizio, usare l'argomento -ServicePrincipal con il cmdlet Connect-SecMgmtAccount. Sarà necessario anche l'identificatore dell'applicazione dell'entità servizio, le credenziali di accesso e l'identificatore del tenant associati all'entità servizio. La modalità di accesso con un'entità servizio dipenderà dal fatto che sia configurato per l'autenticazione basata su password o basata su certificato.

Autenticazione basata su certificati

L'autenticazione basata su certificati richiede che Security and Management Open PowerShell possa recuperare informazioni da un archivio certificati locale in base a un'identificazione personale del certificato.

Connect-SecMgmtAccount -CertificateThumbprint '<thumbprint>' -ServicePrincipal -TenantId 'xxxx-xxxx-xxxx-xxxx'

In PowerShell 5.1 è possibile gestire e controllare l'archivio certificati con il modulo PKI. Per PowerShell Core 6.x e versioni successive la procedura è più complicata. Gli script seguenti mostrano come importare un certificato esistente nell'archivio certificati accessibile a 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 a un altro cloud

I servizi cloud Microsoft offrono ambienti conformi alle leggi di gestione dei dati a livello di area. Per gli account nel cloud di un'area, impostare l'ambiente al momento dell'accesso con l'argomento -Environment. Ad esempio, se l'account si trova nel cloud cina:

Connect-SecMgmtAccount -Environment AzureChinaCloud

Il comando seguente recupera un elenco degli ambienti disponibili:

Get-PartnerEnvironment | Select-Object Name