Bejelentkezés az Azure PowerShell-lelSign in with Azure PowerShell

Az Azure PowerShell többféle hitelesítési módszert támogat.Azure PowerShell supports several authentication methods. Első lépésként a legegyszerűbb, ha az Azure Cloud Shellt használja, amely automatikusan belépteti.The easiest way to get started is with Azure Cloud Shell, which automatically logs you in. Helyi telepítés esetén interaktívan jelentkezhet be a böngészőjén keresztül.With a local install, you can sign in interactively through your browser. Automatizálási szkriptek írásakor az ajánlott módszer a szolgáltatásnév használata a szükséges engedélyekkel.When writing scripts for automation, the recommended approach is to use a service principal with the necessary permissions. Egyéni használati esetekben az Azure-erőforrások biztonságát úgy őrizheti meg, ha a lehető legnagyobb mértékben korlátozza a bejelentkezési engedélyeket.When you restrict sign-in permissions as much as possible for your use case, you help keep your Azure resources secure.

Bejelentkezés után a parancsokat a rendszer az alapértelmezett előfizetésen futtatja.After signing in, commands are run against your default subscription. Az adott munkamenethez tartozó aktív előfizetés módosításához használja a Set-AzContext parancsmagot.To change your active subscription for a session, use the Set-AzContext cmdlet. Az Azure PowerShell-lel való bejelentkezéskor használt alapértelmezett előfizetés módosításához használja a Set-AzDefault parancsmagot.To change the default subscription used when logging in with Azure PowerShell, use Set-AzDefault.

Fontos

A hitelesítő adatok megoszlanak több PowerShell-munkamenet között, ha be van jelentkezve.Your credentials are shared among multiple PowerShell sessions as long as you remain signed in. További információért tekintse meg az Állandó hitelesítő adatokat ismertető cikket.For more information, see the article on Persistent Credentials.

Interaktív bejelentkezésSign in interactively

Az interaktív bejelentkezéshez használja a Connect-AzAccount parancsmagot.To sign in interactively, use the Connect-AzAccount cmdlet.

Connect-AzAccount

A PowerShell 6-os vagy újabb verziójának futtatásakor ez a parancsmag jogkivonatsztringet jelenít meg.When run from PowerShell version 6 and higher, this cmdlet presents a token string. A bejelentkezéshez másolja és illessze be ezt a sztringet a microsoft.com/devicelogin helyre egy webböngészőben.To sign in, copy this string and paste it into microsoft.com/devicelogin in a web browser. A rendszer ekkor hitelesíti a PowerShell-munkamenetet az Azure-hoz való csatlakozáshoz.Your PowerShell session will be authenticated to connect to Azure. Megadhatja a UseDeviceAuthentication paramétert úgy, hogy jogkivonatsztringet fogadjon a Windows PowerShellen.You can specify the UseDeviceAuthentication parameter to receive a token string on Windows PowerShell.

Fontos

Az Active Directory engedélyezési folyamatának végrehajtásában történt módosítások miatt és biztonsági okokból a felhasználónévvel és jelszóval történő hitelesítés el lett távolítva az Azure PowerShellből.Username/password credential authorization has been removed in Azure PowerShell due to changes in Active Directory authorization implementations and security concerns. Ha az automatizálhatóság érdekében használta ezt a típusú hitelesítést, helyette hozzon létre egy szolgáltatásnevet.If you use credential authorization for automation purposes, instead create a service principal.

Használhatja a Get-AzContext parancsmagot a bérlőazonosító tárolásához egy változóban, mert a cikk két ezt követő szakaszában szükség lesz rá.Use the Get-AzContext cmdlet to store your tenant ID in a variable to be used in the next two sections of this article.

$tenantId = (Get-AzContext).Tenant.Id

Bejelentkezés szolgáltatásnévvel Sign in with a service principal

A szolgáltatásnevek nem interaktív Azure-fiókok.Service principals are non-interactive Azure accounts. Más felhasználói fiókokhoz hasonlóan az ezekhez tartozó engedélyek kezelését is az Azure Active Directory végzi.Like other user accounts, their permissions are managed with Azure Active Directory. Az automatizálási szkriptek biztonságát úgy garantálhatjuk, ha a szolgáltatásnevek számára csak a szükséges engedélyeket adjuk meg.By granting a service principal only the permissions it needs, your automation scripts stay secure.

Ha meg szeretné tudni, hogyan hozhat létre szolgáltatásnevet az Azure PowerShell-lel való használatra, tekintse meg az Azure-beli szolgáltatásnév Azure PowerShell használatával történő létrehozásával kapcsolatos szakaszt.To learn how to create a service principal for use with Azure PowerShell, see Create an Azure service principal with Azure PowerShell.

Szolgáltatásnévvel való bejelentkezéshez használja a -ServicePrincipal argumentumot a Connect-AzAccount parancsmaggal.To sign in with a service principal, use the -ServicePrincipal argument with the Connect-AzAccount cmdlet. Szüksége lesz a szolgáltatásnév alkalmazásazonosítójára, a bejelentkezési hitelesítő adatokra, és a szolgáltatásnévhez tartozó bérlőazonosítóra.You'll also need the service principal's application ID, sign-in credentials, and the tenant ID associate with the service principal. A szolgáltatásnévvel való bejelentkezés módja attól függ, hogy az jelszó- vagy tanúsítványalapú hitelesítésre van-e konfigurálva.How you sign in with a service principal depends on whether it's configured for password-based or certificate-based authentication.

Jelszóalapú hitelesítésPassword-based authentication

Hozzon létre egy szolgáltatásnevet, hogy használhassa ennek a szakasznak a példáiban.Create a service principal to be used in the examples in this section. További információ a szolgáltatásnevek létrehozásával kapcsolatban: Azure-beli szolgáltatásnév létrehozása az Azure PowerShell használatával.For more information on creating service principals, see Create an Azure service principal with Azure PowerShell.

$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName

Annak érdekében, hogy a szolgáltatásnév hitelesítő adatait a megfelelő objektumként kapja meg, használja a Get-Credential parancsmagot.To get the service principal's credentials as the appropriate object, use the Get-Credential cmdlet. Ez a parancsmag felhasználónév és jelszó megadását kéri.This cmdlet presents a prompt for a username and password. Használja a szolgáltatásnév applicationID azonosítóját felhasználónévként, és konvertálja annak secret paraméterét egyszerű szöveggé a jelszóhoz.Use the service principal's applicationID for the username and convert its secret to plain text for the password.

# Retrieve the plain text password for use with `Get-Credential` in the next command.
$sp.secret | ConvertFrom-SecureString -AsPlainText

$pscredential = Get-Credential -UserName $sp.ApplicationId
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId

Automatizálási forgatókönyvek esetén a hitelesítő adatokat egy szolgáltatásnév applicationId és secret paramétereiből kell létrehozni:For automation scenarios, you need to create credentials from a service principal's applicationId and secret:

$pscredential = New-Object -TypeName System.Management.Automation.PSCredential($sp.ApplicationId, $sp.Secret)
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId

Győződjön meg róla, hogy a szolgáltatásnév-kapcsolatok automatizálásakor a jelszó tárolása megfelelően történik.Make sure that you use good password storage practices when automating service principal connections.

Tanúsítványalapú hitelesítésCertificate-based authentication

A tanúsítványalapú hitelesítéshez az Azure PowerShellnek egy helyi tanúsítványtárolóból kell információkat lekérnie a tanúsítvány ujjlenyomata alapján.Certificate-based authentication requires that Azure PowerShell can retrieve information from a local certificate store based on a certificate thumbprint.

Connect-AzAccount -ApplicationId $appId -Tenant $tenantId -CertificateThumbprint <thumbprint>

Ha regisztrált alkalmazás helyett szolgáltatásnevet használ, adja hozzá a -ServicePrincipal argumentumot, és adja meg a szolgáltatásnév alkalmazásazonosítóját az -ApplicationId paraméter értékeként.When using a service principal instead of a registered application, add the -ServicePrincipal argument and provide the service principal's Application ID as the -ApplicationId parameter's value.

Connect-AzAccount -ServicePrincipal -ApplicationId $servicePrincipalId -Tenant $tenantId -CertificateThumbprint <thumbprint>

A PowerShell 5.1-ben a tanúsítványtároló a PKI-modullal felügyelhető és vizsgálható.In PowerShell 5.1, the certificate store can be managed and inspected with the PKI module. A PowerShell Core 6.x és az újabb verziókban a folyamat ennél összetettebb.For PowerShell Core 6.x and later, the process is more complicated. Az alábbi szkriptek bemutatják, hogyan importálhat egy meglévő tanúsítványt a PowerShell által hozzáférhető tanúsítványtárolóba.The following scripts show you how to import an existing certificate into the certificate store accessible by PowerShell.

Tanúsítvány importálása PowerShell 5.1-benImport a certificate 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

Tanúsítvány importálása PowerShell Core 6.x és újabb verziókbanImport a certificate in PowerShell Core 6.x and later

# 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()

Bejelentkezés felügyelt identitássalSign in using a managed identity

A felügyelt identitások az Azure Active Directory funkciójaként érhetők el.Managed identities are a feature of Azure Active Directory. A felügyelt identitások Azure-ban futó erőforrásokhoz társított szolgáltatásnevek.Managed identities are service principals assigned to resources that run in Azure. A felügyelt identitás szolgáltatásnevével bejelentkezhet, és beszerezhet egy csak alkalmazásra érvényes hozzáférési jogkivonatot az egyéb erőforrások eléréséhez.You can use a managed identity service principal for sign-in, and acquire an app-only access token to access other resources. A felügyelt identitások csak az Azure-felhőkben futó erőforrásokon érhetők el.Managed identities are only available on resources running in an Azure cloud.

Ebben a példában a kapcsolódás a gazdakörnyezet felügyelt identitásával történik.This example connects using the managed identity of the host environment. Ha például egy hozzárendelt felügyeletszolgáltatás-identitással rendelkező virtuális gépet használ, akkor a kód számára lehetővé válik a hozzárendelt identitással való bejelentkezés.For example, if executed on a VirtualMachine with an assigned Managed Service Identity, this allows the code to sign in using that assigned identity.

 Connect-AzAccount -Identity

Bejelentkezés nem alapértelmezett bérlővel vagy felhőszolgáltatóként (CSP-ként)Sign in with a non-default tenant or as a Cloud Solution Provider (CSP)

Ha a fiókja egynél több bérlőhöz van társítva, kapcsolódáskor a bejelentkezéshez a -Tenant paramétert kell megadni.If your account is associated with more than one tenant, sign-in requires the -Tenant parameter to be specified when connecting. Ez a paraméter bármely bejelentkezési módszer esetében használható.This parameter works with any sign-in method. Bejelentkezéskor a paraméter értéke a bérlő Azure-objektumazonosítója (bérlőazonosító) vagy a bérlő teljes tartományneve lehet.When logging in, this parameter value can either be the Azure object ID of the tenant (Tenant ID) or the fully qualified domain name of the tenant.

Felhőszolgáltatóként (CSP-ként) való bejelentkezés esetén a -Tenant értékének a bérlőazonosítónak kell lennie.If you're a Cloud Solution Provider (CSP), the -Tenant value must be a tenant ID.

Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx'

Bejelentkezés egy másik felhőbeSign in to another Cloud

Az Azure Cloud Services által biztosított környezetek megfelelnek a helyi szabályozásoknak.Azure cloud services offer environments compliant with regional data-handling laws. Regionális felhőszolgáltatásban található fiókok esetében a környezetet az -Environment argumentummal való bejelentkezéskor kell beállítania.For accounts in a regional cloud, set the environment when you sign in with the -Environment argument. Ez a paraméter bármely bejelentkezési módszer esetében használható.This parameter works with any sign-in method. Például ha a fiók a kínai felhőszolgáltatásban található:For example, if your account is in the China cloud:

Connect-AzAccount -Environment AzureChinaCloud

Az alábbi paranccsal olvashatja be a rendelkezésre álló környezetek listáját:The following command gets a list of available environments:

Get-AzEnvironment | Select-Object -Property Name