Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure hizmetlerini kullanan otomatik araçlar her zaman kısıtlı izinlere sahip olmalıdır. Azure, uygulamalarda tamamen ayrıcalıklı bir kullanıcı olarak oturum açma olması yerine hizmet sorumluları sağlar.
Azure hizmet sorumlusu, Azure kaynaklarına erişmek için uygulamalar, barındırılan hizmetler ve otomatik araçlarla kullanılmak üzere oluşturulmuş bir kimliktir. Bu erişim, hizmet sorumlusuna atanan rollerle kısıtlanır ve hangi kaynaklara ve hangi düzeyde erişilebileceğini denetlemenizi sağlar. Güvenlik nedeniyle, hizmet sorumlularının kullanıcı kimliğiyle oturum açmalarına izin vermek yerine otomatik araçlarla kullanılması her zaman önerilir.
Bu makalede, Azure PowerShell ile hizmet sorumlusu oluşturma, hakkında bilgi alma ve sıfırlama adımları gösterilmektedir.
Dikkat
New-AzADServicePrincipal komutunu kullanarak bir hizmet sorumlusu oluşturduğunuzda çıkış, korumanız gereken kimlik bilgilerini içerir. Alternatif olarak, kimlik bilgilerini kullanma gereksinimini önlemek için yönetilen kimlikleri kullanmayı göz önünde bulundurun.
Önkoşullar
- Azure PowerShell'i yerel olarak kullanmayı seçerseniz:
- Az PowerShell modülünüyükleyin.
- Connect-AzAccount cmdlet'ini kullanarak Azure hesabınıza bağlanın.
- Azure Cloud Shell'i kullanmayı seçerseniz:
- Daha fazla bilgi için bkz. Azure Cloud Shell'e genel bakış .
Hizmet sorumlusu oluşturma
New-AzADServicePrincipal cmdlet'i ile bir hizmet sorumlusu oluşturun. Hizmet sorumlusu oluştururken, kullandığı oturum açma kimlik doğrulaması türünü seçersiniz.
Önemli
Az PowerShell modülünün 7.x sürümünden başlayarak , New-AzADServicePrincipal artık hizmet sorumlusuna varsayılan olarak Katkıda Bulunan rolünü atamaz. Hizmet sorumlusuna belirli bir rol atamak için bkz. Rol ataması ekleme adımları.
Uyarı
Hesabınızın hizmet ana hesabı oluşturma izni yoksa, New-AzADServicePrincipal "İşlemi tamamlamak için yetkiler yetersiz" hata mesajını döndürür. Microsoft Entra yöneticinizle iletişime geçerek bir hizmet sorumlusu oluşturun.
Microsoft Entra ID dizininde "Kullanıcılar uygulama kaydedebilir" ayarının Hayır olarak ayarlandığı bir durumda, aşağıdaki Microsoft Entra ID yerleşik rollerinden birinin üyesi olmalısınız (şu eylemi içermelidir: veya microsoft.directory/applications/createAsOwner):
- Uygulama Geliştirici
- Uygulama Yöneticisi
- Bulut Uygulaması Yöneticisi
- Genel Yönetici
- Hibrit Kimlik Yöneticisi
Daha fazla bilgi için, Microsoft Entra ID'deki kullanıcı ayarları hakkında Uygulamaları kimlerin oluşturabileceğini kısıtla'ya bakın.
Hizmet sorumluları için iki tür kimlik doğrulaması sağlanır: Parola tabanlı kimlik doğrulaması ve sertifika tabanlı kimlik doğrulaması.
Parola tabanlı kimlik doğrulaması
Önemli
Parola tabanlı kimlik doğrulama hizmet sorumlusu için varsayılan rol Katkıda Bulunan'dır. Bu rolün Bir Azure hesabını okuma ve bu hesaba yazma için tam izinleri vardır. Rol atamalarını yönetme hakkında bilgi için bkz. Hizmet sorumlusu rollerini yönetme.
Başka kimlik doğrulama parametreleri olmadan parola tabanlı kimlik doğrulaması kullanılır ve sizin için rastgele bir parola oluşturulur. Parola tabanlı kimlik doğrulaması istiyorsanız, bu yöntem önerilir.
$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName
Döndürülen nesne, oluşturulan parolayı PasswordCredentials.SecretText içeren özelliğini içerir. Hizmet sorumlusuyla kimlik doğrulaması yapmak için bu değeri güvenli bir yerde depoladığınızdan emin olun. Değeri konsol çıkışında görüntülenmez . Parolayı kaybederseniz hizmet sorumlusu kimlik bilgilerini sıfırlayın.
Aşağıdaki kod gizli diziyi dışarı aktarmanıza olanak tanır:
$sp.PasswordCredentials.SecretText
öğesinden New-AzADServicePrincipal döndürülen nesne, hizmet sorumlusuyla oturum açmak için kullanılabilecek ve Id üyelerini içerirDisplayName.
Önemli
Hizmet sorumlusuyla oturum açmak için hizmet sorumlusunun oluşturulduğu kiracı kimliği gerekir. Hizmet sorumlusu oluşturulduğunda etkin kiracıyı almak için, hizmet sorumlusu oluşturulduktan hemen sonra aşağıdaki komutu çalıştırın:
(Get-AzContext).Tenant.Id
Sertifika tabanlı kimlik doğrulaması
Önemli
Sertifika tabanlı kimlik doğrulama hizmet sorumlusu oluşturulurken varsayılan rol atanmamış. Rol atamalarını yönetme hakkında bilgi için bkz. Hizmet sorumlusu rollerini yönetme.
Sertifika tabanlı kimlik doğrulaması kullanan hizmet sorumluları parametresiyle CertValue oluşturulur. Bu parametre, ortak sertifikanın base64 kodlu ASCII dizesini alır. Bu, PEM dosyası veya metin kodlanmış bir CRT veya CER ile temsil edilir. Ortak sertifikanın ikili kodlamaları desteklenmez. Bu yönergelerde, zaten bir sertifikanız olduğu varsayılır.
$cert = <public certificate as base64-encoded string>
$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName -CertValue $cert
öğesinden New-AzADServicePrincipal döndürülen nesne, hizmet sorumlusuyla oturum açmak için kullanılabilecek ve Id özelliklerini içerirDisplayName. Hizmet sorumlusuyla oturum açan istemcilerin sertifikanın özel anahtarına da erişmesi gerekir.
Önemli
Hizmet sorumlusuyla oturum açmak için hizmet sorumlusunun oluşturulduğu kiracı kimliği gerekir. Hizmet sorumlusu oluşturulduğunda etkin kiracıyı almak için, hizmet sorumlusu oluşturulduktan hemen sonra aşağıdaki komutu çalıştırın:
(Get-AzContext).Tenant.Id
Mevcut hizmet sorumlusunu alma
Etkin kiracı için hizmet sorumlularının listesi Get-AzADServicePrincipal ile alınabilir. Varsayılan olarak bu komut bir kiracıdaki tüm hizmet sorumlularını döndürür. Büyük kuruluşlarda sonuçların döndürülmesi uzun sürebilir. Bunun yerine, isteğe bağlı sunucu tarafı filtreleme bağımsız değişkenlerinden birini kullanmanız önerilir:
-
DisplayNameBeginsWithsağlanan değerle eşleşen bir ön eki olan hizmet sorumlularını istemektedir. Hizmet sorumlusunun görünen adı, oluşturma sırasında ileDisplayNameayarlanan değerdir. -
DisplayNamebir hizmet asıl adının tam eşleşmesini istemektedir.
Hizmet sorumlusu rollerini yönet
Azure PowerShell rol atamalarını yönetmek için aşağıdaki cmdlet'lere sahiptir:
Role-Based Erişim Denetimi (RBAC) ve roller hakkında daha fazla bilgi için bkz . RBAC: Yerleşik roller.
Aşağıdaki örnek Okuyucu rolünü ekler ve Katkıda Bulunan rolünü kaldırır:
New-AzRoleAssignment -ApplicationId <service principal application ID> -RoleDefinitionName 'Reader'
Remove-AzRoleAssignment -ObjectId <service principal object ID> -RoleDefinitionName 'Contributor'
Önemli
Rol atama cmdlet'leri hizmet sorumlusu nesne kimliğini almaz. Oluşturma zamanında oluşturulan ilişkili uygulama kimliğini alır. Hizmet sorumlusunun uygulama kimliğini almak için kullanın Get-AzADServicePrincipal.
Uyarı
Hesabınızın rol atama izni yoksa, hesabınızın "'Microsoft.Authorization/roleAssignments/write' eylemini gerçekleştirmek için yetkilendirmesi olmadığını" belirten bir hata iletisi görürsünüz. Rolleri yönetmek için Microsoft Entra yöneticinize başvurun.
Rol eklemek, önceden atanmış izinleri kısıtlamaz . Hizmet sorumlusunun izinlerini kısıtlarken Katkıda Bulunan rolü kaldırılmalıdır.
Atanan roller listelenerek değişiklikler doğrulanabilir:
Get-AzRoleAssignment -ServicePrincipalName ServicePrincipalName
Hizmet sorumlusu kullanarak oturum açma
Oturum açarak yeni hizmet sorumlusunun kimlik bilgilerini ve izinlerini test edin. Hizmet sorumlusuyla oturum açmak için, kendisiyle ilişkilendirilmiş değere ve altında oluşturulduğu kiracıya ihtiyacınız vardır applicationId .
Parola kullanarak hizmet sorumlusuyla oturum açmak için:
# Use the application ID as the username, and the secret as password
$credentials = Get-Credential
Connect-AzAccount -ServicePrincipal -Credential $credentials -Tenant <tenant ID>
Sertifika tabanlı kimlik doğrulaması, Azure PowerShell'in sertifika parmak izini temel alarak yerel bir sertifika deposundan bilgi alabilmesini gerektirir.
Connect-AzAccount -ServicePrincipal -Tenant <TenantId> -CertificateThumbprint <Thumbprint> -ApplicationId <ApplicationId>
PowerShell tarafından erişilebilen bir kimlik bilgisi deposuna sertifika aktarma yönergeleri için bkz. Sertifika tabanlı kimlik doğrulaması
Kimlik bilgilerini sıfırlama
Bir hizmet sorumlusunun kimlik bilgilerini unutursanız New-AzADSpCredential komutunu kullanarak rastgele bir parolayla yeni bir kimlik bilgisi ekleyin. Bu cmdlet, parola sıfırlandığında kullanıcı tanımlı kimlik bilgilerini desteklemez.
Önemli
Yeni kimlik bilgileri atamadan önce, mevcut kimlik bilgilerini kaldırarak oturum açmalarını engellemek isteyebilirsiniz. Bunu yapmak için Remove-AzADSpCredential cmdlet'ini kullanın:
Remove-AzADSpCredential -DisplayName ServicePrincipalName
$newCredential = New-AzADSpCredential -ServicePrincipalName ServicePrincipalName
Sorun giderme
Şu hatayı alırsanız: "New-AzADServicePrincipal: IdentifierUris için aynı değere sahip başka bir nesne zaten var." aynı ada sahip bir hizmet sorumlusunun mevcut olmadığını doğrulayın.
Get-AzAdServicePrincipal -DisplayName ServicePrincipalName
Mevcut hizmet sorumlusu artık gerekli değilse, aşağıdaki örneği kullanarak kaldırabilirsiniz.
Remove-AzAdServicePrincipal -DisplayName ServicePrincipalName
Bu hata, daha önce bir Azure Active Directory uygulaması için hizmet sorumlusu oluşturduğunuzda da oluşabilir. Hizmet sorumlusunu kaldırırsanız, uygulama hala kullanılabilir durumda olur. Bu uygulama, aynı ada sahip başka bir hizmet sorumlusu oluşturmanızı engeller.
Aynı ada sahip bir Microsoft Entra uygulamasının mevcut olmadığını doğrulamak için aşağıdaki örneği kullanabilirsiniz:
Get-AzADApplication -DisplayName ServicePrincipalName
Aynı ada sahip bir uygulama varsa ve artık gerekli değilse, aşağıdaki örnek kullanılarak kaldırılabilir.
Remove-AzADApplication -DisplayName ServicePrincipalName
Aksi takdirde, oluşturmaya çalıştığınız yeni hizmet sorumlusu için alternatif bir ad seçin.
Azure PowerShell