Azure PowerShell ile oturum açmaSign in with Azure PowerShell

Azure PowerShell, çeşitli kimlik doğrulama yöntemlerini destekler.Azure PowerShell supports several authentication methods. Başlangıç yapmanın en kolay yolu, oturumunuzu otomatik olarak açan Azure Cloud Shell'i kullanmaktır.The easiest way to get started is with Azure Cloud Shell, which automatically logs you in. Yerel yüklemeyle, tarayıcınızdan etkileşimli oturum açabilirsiniz.With a local install, you can sign in interactively through your browser. Otomasyon betikleri yazarken önerilen yaklaşım, gerekli izinlere sahip bir hizmet sorumlusu kullanmaktır.When writing scripts for automation, the recommended approach is to use a service principal with the necessary permissions. Kendi kullanım örneğinizde oturum açma izinlerini olabildiğince kısıtladığınızda, Azure kaynaklarınızın güvenliğini korumaya yardım etmiş olursunuz.When you restrict sign-in permissions as much as possible for your use case, you help keep your Azure resources secure.

Birden fazla aboneliğe erişiminiz varsa başlangıçta Azure’ın ilk döndürdüğü abonelikte oturumunuz açılır.Initially, you're signed into the first subscription Azure returns if you have access to more than one subscription. Komutlar varsayılan olarak bu abonelikte çalıştırılır.Commands are run against this subscription by default. Bir oturumda etkin aboneliğinizi değiştirmek için Set-AzContext cmdlet'ini kullanın.To change your active subscription for a session, use the Set-AzContext cmdlet. Etkin aboneliğinizi değiştirmek ve aynı sistemde oturum değiştirdiğinizde bu değişikliğin geçerliliğini korumasını sağlamak için Select-AzContext cmdlet’ini kullanın.To change your active subscription and have it persist between sessions on the same system, use the Select-AzContext cmdlet.

Önemli

Oturumunuz açık kaldığı sürece kimlik bilgileriniz birden çok PowerShell oturumu arasında paylaşılır.Your credentials are shared among multiple PowerShell sessions as long as you remain signed in. Daha fazla bilgi için, Kalıcı Kimlik Bilgileri makalesine bakın.For more information, see the article on Persistent Credentials.

Etkileşimli olarak oturum açmaSign in interactively

Etkileşimli olarak oturum açmak için Connect-AzAccount cmdlet'ini kullanın.To sign in interactively, use the Connect-AzAccount cmdlet.

Connect-AzAccount

Bu cmdlet PowerShell sürüm 6 veya üzerinde çalıştırıldığında bir belirteç dizesi gösterir.When run from PowerShell version 6 and higher, this cmdlet presents a token string. Oturum açmak için bu dizeyi kopyalayıp bir web tarayıcısında microsoft.com/devicelogin sayfasına yapıştırın.To sign in, copy this string and paste it into microsoft.com/devicelogin in a web browser. Azure’a bağlanmak için PowerShell oturumunuzun kimliği doğrulanır.Your PowerShell session will be authenticated to connect to Azure. Windows PowerShell’de belirteç dizesi almak için UseDeviceAuthentication parametresini belirtebilirsiniz.You can specify the UseDeviceAuthentication parameter to receive a token string on Windows PowerShell.

Önemli

Active Directory yetkilendirme uygulamalarında yapılan değişiklikler ve güvenlik kaygıları nedeniyle, kullanıcı adı/parola kimlik bilgisi yetkilendirmesi Azure PowerShell’den kaldırıldı.Username/password credential authorization has been removed in Azure PowerShell due to changes in Active Directory authorization implementations and security concerns. Kimlik bilgisi yetkilendirmesini otomasyon amacıyla kullanıyorsanız, bunun yerine hizmet sorumlusu oluşturun.If you use credential authorization for automation purposes, instead create a service principal.

Kiracı kimliğinizi bu makalenin sonraki iki bölümünde kullanılacak bir değişkende depolamak için Get-AzContext cmdlet’ini kullanın.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

Hizmet sorumlusu ile oturum açma Sign in with a service principal

Hizmet sorumluları etkileşimli olmayan Azure hesaplarıdır.Service principals are non-interactive Azure accounts. Diğer kullanıcı hesapları gibi onların izinleri de Azure Active Directory ile yönetilir.Like other user accounts, their permissions are managed with Azure Active Directory. Otomasyon betikleriniz hizmet sorumlusuna yalnızca ihtiyacı olan izinleri vererek güvenliğini korur.By granting a service principal only the permissions it needs, your automation scripts stay secure.

Azure PowerShell'le kullanmak üzere hizmet sorumlusu oluşturmayı öğrenmek için, bkz. Azure PowerShell ile Azure hizmet sorumlusu oluşturma.To learn how to create a service principal for use with Azure PowerShell, see Create an Azure service principal with Azure PowerShell.

Hizmet sorumlusuyla oturum açmak için Connect-AzAccount cmdlet'iyle -ServicePrincipal bağımsız değişkenini kullanın.To sign in with a service principal, use the -ServicePrincipal argument with the Connect-AzAccount cmdlet. Hizmet sorumlusunun uygulama kimliğine, oturum açma kimlik bilgilerine ve hizmet sorumlusuyla ilişkilendirilmiş kiracı kimliğine de ihtiyacınız vardır.You'll also need the service principal's application ID, sign-in credentials, and the tenant ID associate with the service principal. Hizmet sorumlusu ile nasıl oturum açacağınız, parola tabanlı veya sertifika tabanlı kimlik doğrulaması yöntemlerinden hangisini kullandığına bağlıdır.How you sign in with a service principal depends on whether it's configured for password-based or certificate-based authentication.

Parola tabanlı kimlik doğrulamasıPassword-based authentication

Bu bölümdeki örneklerde kullanılmak üzere bir hizmet sorumlusu oluşturun.Create a service principal to be used in the examples in this section. Hizmet sorumluları oluşturma hakkında daha fazla bilgi için bkz. Azure PowerShell ile Azure hizmet sorumlusu oluşturma.For more information on creating service principals, see Create an Azure service principal with Azure PowerShell.

$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName

Hizmet sorumlusunun kimlik bilgilerini uygun bir nesne olarak almak için Get-Credential cmdlet'ini kullanın.To get the service principal's credentials as the appropriate object, use the Get-Credential cmdlet. Bu cmdlet bir kullanıcı adı ve parola için istem gösterir.This cmdlet presents a prompt for a username and password. Kullanıcı adı için hizmet sorumlusunun applicationID kimliğini kullanın ve parola için secret gizli dizisini düz metne dönüştürün.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

Otomasyon senaryoları için, hizmet sorumlusunun applicationId kimliğinden ve secret gizli dizisinden kimlik bilgileri oluşturmanız gerekir: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

Hizmet sorumlusu bağlantılarını otomatikleştirirken, iyi parola depolama yöntemlerini kullandığınızdan emin olun.Make sure that you use good password storage practices when automating service principal connections.

Sertifika tabanlı kimlik doğrulamasıCertificate-based authentication

Sertifika tabanlı kimlik doğrulaması, Azure PowerShell’in sertifika parmak izini temel alarak bir yerel sertifika deposundan bilgi alabilir olmasını gerektirir.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>

Kayıtlı uygulama yerine hizmet sorumlusu kullanırken -ServicePrincipal bağımsız değişkenini ekleyin ve -ApplicationId parametresinin değeri olarak hizmet sorumlusunun Uygulama kimliğini sağlayın.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>

PowerShell 5.1'de, sertifika deposu PKI modülü ile yönetilebilir ve denetlenebilir.In PowerShell 5.1, the certificate store can be managed and inspected with the PKI module. PowerShell Core 6.x ve sonraki sürümleri için işlem daha karmaşıktır.For PowerShell Core 6.x and later, the process is more complicated. Aşağıdaki betikler, mevcut sertifikayı PowerShell tarafından erişilebilir sertifika deposuna nasıl aktarabileceğinizi gösterir.The following scripts show you how to import an existing certificate into the certificate store accessible by PowerShell.

PowerShell 5.1'de sertifikayı içeri aktarmaImport 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

PowerShell Core 6.x ve sonraki sürümlerinde sertifikayı içeri aktarmaImport 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()

Yönetilen kimlik kullanarak oturum açmaSign in using a managed identity

Yönetilen kimlikler Azure Active Directory’nin bir özelliğidir.Managed identities are a feature of Azure Active Directory. Yönetilen kimlikler, Azure'da çalıştırılan kaynaklara atanmış hizmet sorumlularıdır.Managed identities are service principals assigned to resources that run in Azure. Oturum açmak için bir yönetilen kimlik hizmet sorumlusu kullanabilir ve diğer kaynaklara erişmek için yalnızca uygulamaya yönelik bir erişim belirteci alabilirsiniz.You can use a managed identity service principal for sign-in, and acquire an app-only access token to access other resources. Yönetilen kimlikler yalnızca Azure bulutunda çalıştırılan kaynaklarda kullanılabilir.Managed identities are only available on resources running in an Azure cloud.

Bu örnekte, barındırma ortamının yönetilen kimliği kullanılarak bağlanılır.This example connects using the managed identity of the host environment. Örneğin, atanmış bir Yönetilen Hizmet Kimliğine sahip bir Sanal Makine üzerinde yürütülürse, kodun bu atanmış kimliği kullanarak oturum açmasını sağlar.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

Varsayılan olmayan bir kiracıyla veya Bulut Çözümü Sağlayıcısı (CSP) olarak oturum açmaSign in with a non-default tenant or as a Cloud Solution Provider (CSP)

Hesabınız birden fazla kiracıyla ilişkilendirildiyse bağlantı kurarken oturum açmak için -Tenant parametresinin belirtilmesi gerekir.If your account is associated with more than one tenant, sign-in requires the -Tenant parameter to be specified when connecting. Bu parametre tüm oturum açma yöntemleriyle çalışır.This parameter works with any sign-in method. Oturum açılırken, bu parametre değeri kiracının Azure nesne kimliği (Kiracı Kimliği) veya kiracının tam etki alanı adı olabilir.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.

Bulut Çözümü Sağlayıcısıysanız (CSP), -Tenant değerin kiracı kimliği olması gerekir.If you're a Cloud Solution Provider (CSP), the -Tenant value must be a tenant ID.

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

Başka bir bulut oturumu açmaSign in to another Cloud

Azure bulut hizmetleri, bölgesel veri işlemeyle ilgili yasalara uygun ortamlar sunar.Azure cloud services offer environments compliant with regional data-handling laws. Bölgesel buluttaki hesaplar için, oturum açarken -Environment bağımsız değişkeniyle ortamı ayarlayın.For accounts in a regional cloud, set the environment when you sign in with the -Environment argument. Bu parametre tüm oturum açma yöntemleriyle çalışır.This parameter works with any sign-in method. Örneğin, hesabınız Çin bulutundaysa:For example, if your account is in the China cloud:

Connect-AzAccount -Environment AzureChinaCloud

Aşağıdaki komut, kullanılabilir ortamların listesini alır:The following command gets a list of available environments:

Get-AzEnvironment | Select-Object -Property Name