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.
Microsoft kimlik platformunun, Microsoft Entra veya Microsoft 365 kiracılarında depolanan verilere erişmesine yetki verebilmesi için, bir uygulamanın önce Microsoft Entra ID’ye kaydedilmesi gerekir. Bu koşul, kendi geliştirdiğiniz, kiracınızın sahip olduğu veya etkin bir abonelik üzerinden eriştiğiniz uygulamalar için geçerlidir.
Uygulamaların birçok ayarı, PowerShell Microsoft Entra kullanılarak erişilebilen, güncelleştirilebilen veya silinebilen nesneler olarak kaydedilir. Bu nesneler arasında uygulamalar, hizmet sorumluları ve uygulama rolü atamaları bulunur.
Bu makalede, Microsoft Entra PowerShell kullanarak uygulama kayıtlarını ve hizmet sorumlusu nesnelerini yönetmeyi öğreneceksiniz. Uygulama kaydetmeyi, özellikleri yapılandırmayı, izinleri atamayı ve uygulama sahipliğini yönetmeyi kapsar.
Prerequisites
Microsoft Entra PowerShell ile uygulamaları yönetmek için şunları yapmanız gerekir:
- Microsoft Entra kullanıcı hesabı. Henüz bir hesabınız yoksa ücretsiz olarak bir hesap oluşturabilirsiniz.
- Aşağıdaki rollerden biri:
- Bulut Uygulaması Yöneticisi
- Uygulama Yöneticisi
- kendinize işlem için belirtilen en düşük ayrıcalıklı temsilci iznini verin.
- Microsoft Entra PowerShell modülü yüklü. Modülü yüklemek için Microsoft Entra PowerShell modülünü yükleme kılavuzunu izleyin.
Bir uygulamayı kaydetme
Aşağıdaki istek, yalnızca gerekli displayName özelliği belirterek bir uygulama oluşturur.
Connect-Entra -Scopes 'Application.ReadWrite.All'
New-EntraApplication -DisplayName 'My new application'
DisplayName Id AppId SignInAudience PublisherDomain
----------- -- ----- -------------- -----------
My new application aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb bbbbbbbb-1111-2222-3333-cccccccccccc MyOrg
Uygulamaya kiracıdaki uygulamalar için benzersiz bir kimlik ve Microsoft Entra ekosisteminde genel olarak benzersiz olan bir appId atanır.
Uygulama için hizmet sorumlusu oluşturma
Connect-Entra -Scopes 'Application.ReadWrite.All'
$myApp = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
New-EntraServicePrincipal -AppId $myApp.AppId -DisplayName 'My new service principal'
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
My new application bbbbbbbb-1111-2222-3333-cccccccccccc 00001111-aaaa-2222-bbbb-3333cccc4444 MyOrg Application
Uygulamanız için temel özellikleri yapılandırma
Uygulamanız için birden çok özellik yapılandırabilirsiniz. Aşağıdaki örnekte, bir uygulamanın görünen adını güncelleştirme gösterilmektedir.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraApplication -ApplicationId $application.Id -DisplayName 'Contoso application'
Alternatif olarak, bir uygulamanın özelliklerini güncelleştirmek için kanal çizgisini kullanın.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraApplication -Filter "DisplayName eq 'My new application'" | Set-EntraApplication -DisplayName 'Contoso application'
Daha fazla bilgi için bkz. Set-EntraApplication.
Uygulama oturum açmayı yalnızca atanan kimlikler ile sınırlandırma
Uygulama oturum açma işlemleri yalnızca Microsoft Entra PowerShell kullanılarak atanan kimliklerle sınırlanması, uygulamalarınıza yalnızca yetkili kullanıcıların erişebilmesini sağlayarak güvenlik ve denetimi geliştirir.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraServicePrincipal -ServicePrincipalId $application.Id -AppRoleAssignmentRequired $true
Uygulamaya izin atama
Microsoft Entra yönetim merkezi aracılığıyla veya Microsoft Entra PowerShell kullanarak bir uygulamaya izinler atarsınız. PowerShell'de, hem mevcut hem de yeni izinler dahil olmak üzere uygulamanın requiredResourceAccess özelliğini güncelleştirirsiniz. Yalnızca yeni izinlerin geçirilmesi, onaylanmayan mevcut izinleri kaldırır.
İzinlerin atanması, bu izinleri uygulamaya otomatik olarak vermez. yine de Microsoft Entra yönetim merkezi kullanarak yönetici onayı vermelisiniz.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
$requiredResourceAccess = @(
@{resourceAppId = '00000003-0000-0000-c000-000000000000'
resourceAccess = @(
@{
id = 'c79f8feb-a9db-4090-85f9-90d820caa0eb'
type = 'Scope'
}
@{
id = '9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30'
type = 'Role'
} )
})
Set-EntraApplication -ApplicationId $application.Id -RequiredResourceAccess $requiredResourceAccess
Sahipleri yönetin
Bir hizmet asıl öğesinin sahibini alma
Connect-Entra -Scopes 'Application.ReadWrite.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalOwner -ServicePrincipalId $servicePrincipal.Id -All | Select-Object Id, DisplayName, '@odata.type'
Alternatif olarak, hizmet asıl sorumlusunun sahibini almak için ardışık düzen kullanarak ilerleyin.
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'" | Get-EntraServicePrincipalOwner | Select-Object Id, DisplayName, '@odata.type'
Hizmet sorumlusuna sahip atama
Connect-Entra -Scopes 'Application.ReadWrite.All', 'Application.ReadWrite.OwnedBy'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
$owner = Get-EntraUser -UserId 'SawyerM@contoso.com'
Add-EntraServicePrincipalOwner -ServicePrincipalId $servicePrincipal.Id -OwnerId $owner.Id
Bu örnek, bir hizmet asıl öğesine nasıl sahip ekleneceğini gösterir.
-
-ServicePrincipalId- Sahip eklemek istediğiniz hizmet sorumlusunun benzersiz tanımlayıcısını (ObjectId) belirtir. -
-OwnerId- Belirtilen hizmet sorumlusunun sahibi olarak eklemek istediğiniz kullanıcı veya grubun benzersiz tanımlayıcısını (ObjectId) belirtir.
Kullanıcı ataması olmayan tüm uygulamaların listesini alma
Kullanıcı ataması gerektirmeyen tüm uygulamaların listesini almak için aşağıdaki komutu kullanın.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraServicePrincipal -All | Where-Object {$_.appRoleAssignmentRequired -ne 'True'}
DisplayName Id AppId SignInAudience ServicePrincipalType
----------------------------------- ----------------------------------- --------------------------------- ----------------- ------------------
Microsoft password reset service 00aa00aa-bb11-cc22-dd33-44ee44ee44ee 93625bc8-bfe2-437a-97e0-3d0060024faa AzureADMultipleOrgs Application
Microsoft.Azure.SyncFabric 11bb11bb-cc22-dd33-ee44-55ff55ff55ff 00000014-0000-0000-c000-000000000000 AzureADMultipleOrgs Application
Azure Security Insights 22cc22cc-dd33-ee44-ff55-66aa66aa66aa 98785600-1bb7-4fb9-b9fa-19afe2c8a360 AzureADMultipleOrgs Application
Hizmet sorumlusu tarafından sahip olunan veya oluşturulan nesneleri alma
Hizmet sorumlusu tarafından oluşturulan nesneler
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalCreatedObject -ServicePrincipalId $servicePrincipal.Id
Hizmet sorumlusuna ait nesneler
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalOwnedObject -ServicePrincipalId $servicePrincipal.Id -All | Select-Object Id, DisplayName, '@odata.type'
Süresi dolan gizli anahtarlara ve sertifikalara sahip uygulamalar
Süresi dolan uygulama gizli anahtarları veya parolaları
$expirationThreshold = (Get-Date).AddDays(30)
$appsWithExpiringPasswords = Get-EntraApplication -All | Where-Object { $_.PasswordCredentials } |
ForEach-Object {
$app = $_
$app.PasswordCredentials | Where-Object { $_.EndDate -le $expirationThreshold } |
ForEach-Object {
[PSCustomObject]@{
DisplayName = $app.DisplayName
AppId = $app.AppId
SecretDisplayName = $_.DisplayName
KeyId = $_.KeyId
ExpiringSecret = $_.EndDate
}
}
}
$appsWithExpiringPasswords | Format-Table DisplayName, AppId, SecretDisplayName, KeyId, ExpiringSecret -AutoSize
Süresi dolan sertifikalar
$expirationThreshold = (Get-Date).AddDays(30)
$appsWithExpiringKeys = Get-EntraApplication -All | Where-Object { $_.KeyCredentials } |
ForEach-Object {
$app = $_
$app.KeyCredentials | Where-Object { $_.EndDate -le $expirationThreshold } |
ForEach-Object {
[PSCustomObject]@{
DisplayName = $app.DisplayName
AppId = $app.AppId
CertificateDisplayName = $_.DisplayName
KeyId = $_.KeyId
ExpiringKeys = $_.EndDate
}
}
}
$appsWithExpiringKeys | Format-Table DisplayName, AppId, CertificateDisplayName, KeyId, ExpiringKeys -AutoSize