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 hizmetleri kullanan otomatik araçlar her zaman kısıtlı izinlere sahip olmalıdır. uygulamaların tam ayrıcalıklı bir kullanıcı olarak oturum açması yerine, Azure hizmet ilkeleri sunar.
Azure hizmet sorumlusu, Azure kaynaklara 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 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 kullanmayı seçerseniz:
- Daha fazla bilgi için bakınız Azure Cloud Shell 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. Hizmet sorumlusu oluşturmak için Microsoft Entra yöneticinize başvurun.
Microsoft Entra ID dizininde "Users can register applications" kullanıcı ayarı No olarak ayarlandığında, aşağıdaki Microsoft Entra ID yerleşik rollerinden birinin üyesi olmanız gerekir (bu rollerin eylemi: microsoft.directory/applications/createAsOwner veya microsoft.directory/applications/create olan):
- Uygulama Geliştirici
- Uygulama Yöneticisi
- Bulut Uygulaması Yöneticisi
- Genel Yönetici
- Hibrit Kimlik Yöneticisi
Microsoft Entra ID kullanıcı ayarları hakkında daha fazla bilgi için bkz. Uygulama oluşturabilecek kişileri kısıtlama.
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 Azure hesabı 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
döndürülen nesne New-AzADServicePrincipal öğesinden, Id ve DisplayName üyelerini içerir ve bunlardan her biri hizmet ilkesi ile oturum açmak için kullanılabilir.
Ö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
New-AzADServicePrincipal öğesinden döndürülen nesne, hizmet sorumlusuyla oturum açmak için kullanılabilecek Id ve DisplayName özelliklerini içerir; bunlardan herhangi biriyle oturum açılabilir. 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 ilkesinin görünen adı, oluşturma sırasındaDisplayNameile ayarlanan 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 Access Control (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şturulma anında yaratılan ilişkili uygulama kimliğini alırlar. Hizmet sorumlusunun uygulama kimliğini almak için kullanın Get-AzADServicePrincipal.
Uyarı
Hesabınızın rol atama yetkisi yoksa, hesabınızın "Microsoft.Authorization/roleAssignments/write eylemini gerçekleştirme yetkisi yok" hatasını belirten bir ileti 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şkilendirilen değere ve orada oluşturulmuş olduğ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 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 mevcut.", aynı ada sahip bir hizmet ilkesinin 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