Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi perlu didaftarkan di Microsoft Entra ID sebelum platform identitas Microsoft dapat mengotorisasinya untuk mengakses data yang disimpan di penyewa Microsoft Entra atau Microsoft 365. Kondisi ini berlaku untuk aplikasi yang Anda kembangkan sendiri, yang dimiliki penyewa Anda, atau yang Anda akses melalui langganan aktif.
Banyak pengaturan untuk aplikasi dicatat sebagai objek yang dapat diakses, diperbarui, atau dihapus menggunakan Microsoft Entra PowerShell. Objek ini mencakup aplikasi, prinsipal layanan, dan penetapan peran aplikasi.
Dalam artikel ini, Anda mempelajari cara mengelola pendaftaran aplikasi dan objek perwakilan layanan menggunakan Microsoft Entra PowerShell. Ini mencakup mendaftarkan aplikasi, mengonfigurasi properti, menetapkan izin, dan mengelola kepemilikan aplikasi.
Prasyarat
Untuk mengelola aplikasi dengan Microsoft Entra PowerShell, Anda memerlukan:
- Akun pengguna Microsoft Entra. Jika Anda belum memilikinya, Anda dapat membuat akun secara gratis.
- Salah satu peran berikut:
- Berikan kepada diri Anda izin delegasian dengan hak istimewa paling rendah yang ditunjukkan untuk operasi.
- Modul PowerShell Microsoft Entra telah diinstal. Ikuti panduan menginstal modul PowerShell Microsoft Entra untuk menginstal modul.
Daftarkan aplikasi
Permintaan berikut membuat aplikasi dengan hanya menentukan properti yang diperlukan displayName .
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
Aplikasi ini diberi ID yang unik untuk aplikasi dalam tenant tersebut, dan appId yang unik secara global di seluruh ekosistem Microsoft Entra.
Membuat service principal bagi aplikasi
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
Mengonfigurasi properti dasar untuk aplikasi Anda
Anda dapat mengonfigurasi beberapa properti untuk aplikasi Anda. Contoh berikut menunjukkan cara memperbarui nama tampilan aplikasi.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraApplication -ApplicationId $application.Id -DisplayName 'Contoso application'
Atau, gunakan pipelining untuk memperbarui properti aplikasi.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraApplication -Filter "DisplayName eq 'My new application'" | Set-EntraApplication -DisplayName 'Contoso application'
Untuk informasi selengkapnya, lihat Set-EntraApplication.
Batasi masuk aplikasi hanya untuk identitas yang ditetapkan
Membatasi rincian masuk aplikasi hanya untuk identitas yang ditetapkan menggunakan Microsoft Entra PowerShell memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses aplikasi Anda, meningkatkan keamanan dan kontrol.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraServicePrincipal -ServicePrincipalId $application.Id -AppRoleAssignmentRequired $true
Menetapkan izin ke aplikasi
Anda menetapkan izin ke aplikasi melalui pusat admin Microsoft Entra atau dengan menggunakan Microsoft Entra PowerShell. Di PowerShell, Anda memperbarui properti aplikasi requiredResourceAccess , termasuk izin yang sudah ada dan baru. Jika hanya memberikan izin baru, izin yang sudah ada dan belum disetujui akan dihapus.
Memberikan izin tidak secara otomatis memberikannya kepada aplikasi. Anda masih harus memberikan persetujuan admin menggunakan pusat admin Microsoft Entra.
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
Kelola pemilik
Dapatkan pemilik service principal
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'
Atau, gunakan pipelining untuk mengambil pemilik perwakilan layanan.
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'" | Get-EntraServicePrincipalOwner | Select-Object Id, DisplayName, '@odata.type'
Menetapkan pemilik ke perwakilan layanan
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
Contoh ini menunjukkan cara menambahkan pemilik ke perwakilan layanan.
-
-ServicePrincipalId- menentukan pengidentifikasi unik (ObjectId) dari perwakilan layanan yang ingin Anda tambahkan pemiliknya. -
-OwnerId- menetapkan pengidentifikasi unik (ObjectId) dari pengguna atau grup yang ingin Anda tambahkan sebagai pemilik prinsipal layanan yang ditentukan.
Mendapatkan daftar semua aplikasi tanpa penetapan pengguna
Untuk mendapatkan daftar semua aplikasi yang tidak memerlukan penetapan pengguna, gunakan perintah berikut.
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
Mengambil objek yang dimiliki atau dibuat oleh prinsipal layanan
Objek yang dibuat oleh perwakilan layanan
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalCreatedObject -ServicePrincipalId $servicePrincipal.Id
Objek yang dimiliki oleh prinsipal layanan
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'
Aplikasi dengan rahasia dan sertifikat yang akan kedaluwarsa
Rahasia atau kata sandi aplikasi yang kedaluwarsa
$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
Sertifikat kedaluwarsa
$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