Aanmelden met Azure PowerShell
Azure PowerShell ondersteunt meerdere verificatiemethoden. De eenvoudigste manier om te beginnen is met Azure Cloud Shell, waarmee u automatisch wordt ingelogd. Met een lokale installatie kunt u zich interactief aanmelden via uw browser. Bij het schrijven van scripts voor automatisering is de aanbevolen aanpak om een service-principal met de vereiste machtigingen te gebruiken. U kunt zelf bijdragen aan de beveiliging van uw Azure-resources, door de aanmeldingsmachtigingen voor uw situatie zo veel mogelijk te beperken.
Als u toegang hebt tot meer dan één abonnement, wordt u aangemeld bij het eerste abonnement dat Azure retourneert. Opdrachten worden standaard voor dit abonnement uitgevoerd. Om het actieve abonnement voor een sessie te wijzigen, gebruikt u de cmdlet Set AzContext. Als u uw actieve abonnement wilt wijzigen en ervoor wilt zorgen dat deze tussen sessies actief blijft, gebruikt u de cmdlet Select-AzContext.
Belangrijk
Uw referenties worden gedeeld tussen verschillende PowerShell-sessies, zolang u aangemeld blijft. Zie Azure PowerShell contextobjecten voor meer informatie.
Interactief aanmelden
Gebruik de cmdlet Connect-AzAccount om u interactief aan te melden.
Connect-AzAccount
Met deze cmdlet wordt standaard een interactieve aanmeldingsprompt op basis van een browser weergegeven.
Gebruik de cmdlet Get-AzContext om uw tenant-ID op te slaan in een variabele, zodat deze in de volgende twee secties van dit artikel kan worden gebruikt.
$tenantId = (Get-AzContext).Tenant.Id
Verificatie van apparaatcode
U kunt de UseDeviceAuthentication parameter opgeven om verificatie van apparaatcode te gebruiken in plaats van een browserbesturing.
Connect-AzAccount -UseDeviceAuthentication
Aanmelden met een service-principal
Service-principals zijn niet-interactieve Azure-accounts. Net als voor andere gebruikersaccounts worden hun machtigingen beheerd met Azure Active Directory. Door een service-principal alleen de machtigingen te geven die het nodig heeft, blijven uw automatiseringsscripts veilig.
Als u een service-principal wilt instellen voor gebruik met Azure PowerShell, raadpleegt u Een Azure-service-principal maken met Azure PowerShell.
Als u zich wilt aanmelden met een service-principal, gebruikt u de ServicePrincipal parameter van de Connect-AzAccount cmdlet. U hebt hiervoor de volgende gegevens nodig: de toepassings-id van de service-principal, de aanmeldingsreferenties en de tenant-id die aan de service-principal is gekoppeld. Hoe u zich aanmeldt met een service-principal, is afhankelijk van of deze is geconfigureerd voor verificatie op basis van een wachtwoord of een certificaat.
Verificatie op basis van een wachtwoord
Maak een service-principal, zodat deze kan worden gebruikt in de voorbeelden in deze sectie. Zie Een Azure-service-principal maken met Azure PowerShell voor meer informatie over het maken van service-principals.
$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName
Gebruik de cmdlet Get-Credential om de referenties van de service-principal als het juiste object te verkrijgen. Voor deze cmdlet moet u een gebruikersnaam en een wachtwoord invoeren. Gebruik de applicationID van de service-principal als gebruikersnaam en converteer de secret ervan naar platte tekst voor het wachtwoord.
# Retrieve the plain text password for use with `Get-Credential` in the next command.
$sp.PasswordCredentials.SecretText
$pscredential = Get-Credential -UserName $sp.AppId
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId
Voor automatiseringsscenario's moet u referenties maken op basis van een AppId en SecretText van een service-principal:
$SecureStringPwd = $sp.PasswordCredentials.SecretText | ConvertTo-SecureString -AsPlainText -Force
$pscredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $sp.AppId, $SecureStringPwd
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId
Zorg ervoor dat u goede procedures voor wachtwoordopslag gebruikt bij het automatiseren van verbindingen met de service-principal.
Verificatie op basis van certificaat
Voor verificatie op basis van een certificaat is het nodig dat Azure PowerShell informatie kan ophalen uit een lokaal certificaatarchief, op basis van de vingerafdruk van een certificaat.
Connect-AzAccount -ApplicationId $appId -Tenant $tenantId -CertificateThumbprint <thumbprint>
Wanneer u een service-principal gebruikt in plaats van een geregistreerde toepassing, geeft u de ServicePrincipal parameter op en geeft u de toepassings-id van de service-principal op als de waarde van de -ApplicationId parameter.
Connect-AzAccount -ServicePrincipal -ApplicationId $servicePrincipalId -Tenant $tenantId -CertificateThumbprint <thumbprint>
In PowerShell 5.1 kan het certificaatarchief worden beheerd en gecontroleerd met de module PKI. Voor PowerShell 6.x en hoger is het proces ingewikkelder. In de volgende scripts ziet u hoe u een bestaand certificaat kunt importeren in een certificaatarchief dat toegankelijk is voor PowerShell.
Een certificaat importeren 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
Een certificaat importeren in PowerShell 6.x en hoger
# 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()
Aanmelden met een beheerde identiteit
Beheerde identiteiten is een functie van Azure Active Directory. Beheerde identiteiten zijn service-principals die zijn toegewezen aan resources die worden uitgevoerd in Azure. U kunt een service-principal voor een beheerde identiteit gebruiken om u aan te melden, waarna u een token ontvangt waarmee u alleen vanuit de app toegang kunt krijgen tot andere resources. Beheerde identiteiten zijn alleen beschikbaar op resources die worden uitgevoerd in een Azure-cloud.
Dit voorbeeld maakt verbinding met de beheerde identiteit van de hostomgeving. Als deze bijvoorbeeld wordt uitgevoerd op een virtuele machine met een toegewezen Managed Service Identity, kan de code zich aanmelden met die toegewezen identiteit.
Connect-AzAccount -Identity
In dit voorbeeld wordt verbinding gemaakt met behulp van de Managed Service Identity van myUserAssignedIdentity. Hiermee wordt de door de gebruiker toegewezen identiteit toegevoegd aan de virtuele machine en wordt vervolgens verbinding gemaakt met behulp van de ClientId van de door de gebruiker toegewezen identiteit. Zie Beheerde identiteiten configureren voor Azure-resources op een Virtuele Azure-machine voor meer informatie.
$identity = Get-AzUserAssignedIdentity -ResourceGroupName 'myResourceGroup' -Name 'myUserAssignedIdentity'
Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id
Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine
Account SubscriptionName TenantId Environment
------- ---------------- -------- -----------
yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud
Meld u aan met een niet-standaard-tenant of als een Cloud Solution Provider (CSP)
Als uw account is gekoppeld aan meer dan één tenant, moet u bij het aanmelden parameter Tenant opgeven wanneer u verbinding maakt. Deze parameter werkt in combinatie met alle aanmeldingsmethoden. Tijdens het aanmelden kan de waarde van deze parameter het Azure-object-id van de tenant (tenant-id) of de volledig gekwalificeerde domeinnaam van de tenant zijn.
Als u een Cloud Solution Provider (CSP) bent, moet de waarde voor de Tenant parameter een tenant-id zijn.
Connect-AzAccount -Tenant '00000000-0000-0000-0000-000000000000'
Aanmelden bij een andere cloud
Azure-cloudservices bieden omgevingen die compatibel zijn met regionale wetgeving voor gegevensverwerking. Voor accounts in een regionale cloud stelt u de omgeving in wanneer u zich aanmeldt met de Environment parameter. Deze parameter werkt in combinatie met alle aanmeldingsmethoden. Als uw account zich bijvoorbeeld in Azure China 21Vianet bevindt:
Connect-AzAccount -Environment AzureChinaCloud
De volgende opdracht retourneert een lijst met beschikbare omgevingen:
Get-AzEnvironment | Select-Object -Property Name