Oturum açma ve Azure PowerShell

Azure PowerShell kimlik doğrulama yöntemlerini destekler. Başlamanın en kolay yolu, otomatik olarak oturum açtığınız Azure BulutKabuğu'ladır. Yerel bir yükleme ile, tarayıcınız aracılığıyla etkileşimli olarak oturum açın. Otomasyona betikler yazarken, önerilen yaklaşım gerekli izinlere sahip bir hizmet sorumlusu kullanmaktır. Oturum açma izinlerini kullanım durumu için mümkün olduğu kadar kısıtlarken, Azure kaynaklarınızı güvende tutmanıza yardımcı olur.

İlk başta, birden fazla aboneliğe erişiminiz varsa Azure'ın döndür olduğu ilk abonelikte oturum amış oluruz. Komutlar varsayılan olarak bu abonelikte çalıştır açıktır. Bir oturumda etkin aboneliğinizi değiştirmek için Set-AzContext cmdlet'ini kullanın. Etkin aboneliğinizi değiştirmek ve aynı sistem oturumları arasında kalıcı olmak için Select-AzContext cmdlet'ini kullanın.

Önemli

Oturum açık kalırken kimlik bilgileriniz birden çok PowerShell oturumunda paylaşılır. Daha fazla bilgi için Kalıcı Kimlik Bilgileri ile ilgili makaleye bakın.

Etkileşimli oturum açma

Etkileşimli oturum açması için Bağlan-AzAccount cmdlet'ini kullanın.

Connect-AzAccount

Az PowerShell modülü sürüm 5.0.0'dan başarak, bu cmdlet varsayılan olarak etkileşimli bir tarayıcı tabanlı oturum açma istemi sunar. Daha önce PowerShell sürüm 6 ve daha yenileri için varsayılan olan bir belirteç dizesi UseDeviceAuthentication almak için parametreyi belirtabilirsiniz.

Önemli

Active Directory yetkilendirme uygulamaları ve güvenlik Azure PowerShell nedeniyle kullanıcı adı/parola kimlik bilgisi yetkilendirmesi bu uygulamada kaldırıldı. Otomasyon amacıyla kimlik bilgisi yetkilendirmesi kullanıyorsanız, bunun yerine bir hizmet sorumlusu oluşturun.

Kiracı kimliğinizi, bu makalenin sonraki iki bölümlerinde kullanılacak bir değişkende depolamak için Get-AzContext cmdlet'ini kullanın.

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

Hizmet sorumlusuyla oturum açma

Hizmet sorumluları etkileşimli olmayan Azure hesaplarıdır. Diğer kullanıcı hesapları gibi izinleri de aynı Azure Active Directory. Hizmet sorumlusuna yalnızca gereken izinleri vererek, otomasyon betikleri güvenli kalır.

Azure PowerShell'de kullanmak üzere hizmet sorumlusu oluşturma hakkında bilgi edinmek için bkz. Azure PowerShell ile Azure hizmet sorumlusu oluşturma.

Hizmet sorumlusuyla oturum açması için, -ServicePrincipal cmdlet'iyle bağımsız Connect-AzAccount değişkeni kullanın. Ayrıca hizmet sorumlusunun uygulama kimliğine, oturum açma kimlik bilgilerine ve hizmet sorumlusuyla kiracı kimliği ilişkilendirmeniz gerekir. Hizmet sorumlusuyla oturum açma yönteminiz, parola tabanlı mı yoksa sertifika tabanlı kimlik doğrulama için mi yapılandırıldıklarına bağlıdır.

Parola tabanlı kimlik doğrulaması

Bu bölümdeki örneklerde kullanılacak bir hizmet sorumlusu oluşturun. Hizmet sorumlularını oluşturma hakkında daha fazla bilgi için bkz. Kendileriyle Azure hizmet Azure PowerShell.

$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName

Hizmet sorumlusun kimlik bilgilerini uygun nesne olarak almak için, Get-Credential cmdlet'ini kullanın. Bu cmdlet, bir kullanıcı adı ve parola istemi sunar. Kullanıcı adı için hizmet applicationID sorumlusuna tıklayın ve parolanın secret düz metnine dönüştürebilirsiniz.

# 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ında, hizmet sorumlusundan ve : applicationId secret

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

Hizmet asıl bağlantıları otomatik hale gösterirken iyi parola depolama uygulamaları kullanmaya emin olun.

Sertifika tabanlı kimlik doğrulama

Sertifika tabanlı kimlik doğrulaması, Azure PowerShell başparmak basımlarına dayalı olarak yerel bir sertifika mağazasından bilgi alamıyor.

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

Kaydedilmiş bir uygulama yerine hizmet sorumlusu kullanırken, bağımsız değişkeni ekleyin ve parametrenin değeri olarak hizmet sorumlusunun Uygulama -ServicePrincipal -ApplicationId Kimliğini girin.

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

PowerShell 5.1'de, sertifika deposu PKI modülüyle yönetilebilir ve denetleniyor. PowerShell Core 6.x ve sonrakileri için bu işlem daha karmaşıktır. Aşağıdaki betikler, var olan bir sertifikayı PowerShell tarafından erişilebilen sertifika deposuna nasıl aktaracağız?

PowerShell 5.1'de sertifika içeri aktarma

# 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 bir x'te sertifika içeri aktarma

# 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çma

Yönetilen kimlikler, kimlik yönetiminin bir Azure Active Directory. Yönetilen kimlikler, Azure'da çalıştırdığı kaynaklara atanmış hizmet sorumlularıdır. Oturum açma için yönetilen bir kimlik hizmet sorumlusu kullanabilir ve diğer kaynaklara erişmek için yalnızca uygulama erişim belirteci edinebilirsiniz. Yönetilen kimlikler yalnızca Azure bulutlarında çalışan kaynaklarda kullanılabilir.

Bu örnek, ana ortamın yönetilen kimliğini kullanarak bağlanır. Örneğin, atanmış bir Yönetilen Hizmet Kimliği ile bir VirtualMachine üzerinde yürütülürse, bu kod atanan kimliği kullanarak oturum açmasını sağlar.

 Connect-AzAccount -Identity

Varsayılan olmayan bir kiracıyla veya kiracı olarak (CSP) Bulut Çözümü Sağlayıcısı açma

Hesabınız birden çok kiracıyla ilişkilendirilmişse, oturum açma için bağlanırken -Tenant parametrenin belirtilmelidir. Bu parametre herhangi bir oturum açma yöntemiyle çalışır. Oturum airken, bu parametre değeri kiracının Azure nesne kimliği (Kiracı Kimliği) veya kiracının tam etki alanı adı olabilir.

KIRACı (CSP) Bulut Çözümü Sağlayıcısı, -Tenant değerin kiracı kimliği olması gerekir.

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

Başka bir Bulutta oturum açma

Azure bulut hizmetleri, bölgesel veri işleme yasalarına uygun ortamlar sunar. Bölgesel bir buluttaki hesaplar için, bağımsız değişkenle oturum atıca ortamı -Environment ayarlayın. Bu parametre herhangi bir oturum açma yöntemiyle çalışır. Örneğin, hesabınız Çin bulutunda ise:

Connect-AzAccount -Environment AzureChinaCloud

Aşağıdaki komut, kullanılabilir ortamların listesini alır:

Get-AzEnvironment | Select-Object -Property Name