Meninjau izin yang diberikan ke aplikasi perusahaan
Dalam artikel ini, Anda mempelajari cara meninjau izin yang diberikan ke aplikasi di penyewa Microsoft Entra Anda. Anda mungkin perlu meninjau izin saat mendeteksi aplikasi berbahaya, atau aplikasi yang memiliki lebih banyak izin daripada yang diperlukan. Anda mempelajari cara mencabut izin yang diberikan ke aplikasi menggunakan Microsoft Graph API dan versi PowerShell yang ada.
Langkah-langkah dalam artikel ini berlaku untuk semua aplikasi yang ditambahkan ke penyewa Microsoft Entra Anda melalui persetujuan pengguna atau admin. Untuk informasi selengkapnya tentang menyetujui aplikasi, lihat Persetujuan pengguna dan admin.
Prasyarat
Untuk meninjau izin yang diberikan ke aplikasi, Anda memerlukan:
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Salah satu peran berikut: Administrator Aplikasi Cloud, Administrator Aplikasi.
- Pemilik perwakilan layanan yang bukan administrator dapat membatalkan token refresh.
Meninjau dan mencabut izin di pusat admin Microsoft Entra
Ujung
Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.
Anda dapat mengakses pusat admin Microsoft Entra untuk melihat izin yang diberikan ke aplikasi. Anda dapat mencabut izin yang diberikan oleh admin untuk seluruh organisasi Anda, dan Anda bisa mendapatkan skrip PowerShell kontekstual untuk melakukan tindakan lain.
Untuk informasi tentang cara memulihkan izin yang dicabut atau dihapus, lihat Memulihkan izin yang diberikan ke aplikasi.
Untuk meninjau izin aplikasi yang diberikan untuk seluruh organisasi atau ke pengguna atau grup tertentu:
- Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi Cloud.
- Telusuri aplikasi Identity>Applications>Enterprise>Semua aplikasi.
- Pilih aplikasi yang ingin Anda batasi aksesnya.
- Pilih Izin.
- Untuk melihat izin yang berlaku untuk seluruh organisasi Anda, pilih tab Persetujuan admin . Untuk melihat izin yang diberikan kepada pengguna atau grup tertentu, pilih tab Persetujuan pengguna.
- Untuk melihat detail izin yang diberikan, pilih izin dari daftar. Panel Detail Izin terbuka.
Setelah meninjau izin yang diberikan ke aplikasi, Anda dapat mencabut izin yang diberikan oleh admin untuk seluruh organisasi Anda.
Nota
Anda tidak dapat mencabut izin di tab Persetujuan pengguna menggunakan portal. Anda dapat mencabut izin ini menggunakan panggilan Microsoft Graph API atau cmdlet PowerShell. Buka tab PowerShell dan Microsoft Graph di artikel ini untuk informasi selengkapnya.
Untuk mencabut izin di tab Persetujuan admin:
- Lihat daftar izin di tab Persetujuan admin.
- Pilih izin yang ingin Anda cabut, lalu pilih kontrol ... untuk izin tersebut.
- Pilih Cabut izin.
Meninjau dan mencabut izin menggunakan Azure AD PowerShell
Gunakan skrip Azure AD PowerShell berikut untuk mencabut semua izin yang diberikan ke aplikasi. Anda perlu masuk setidaknya sebagai Administrator Aplikasi Cloud.
Connect-AzureAD
# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"
# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-AzureADOAuth2PermissionGrant -All $true| Where-Object { $_.clientId -eq $sp.ObjectId }
# Remove all delegated permissions
$spOAuth2PermissionsGrants | ForEach-Object {
Remove-AzureADOAuth2PermissionGrant -ObjectId $_.ObjectId
}
# Get all application permissions for the service principal
$spApplicationPermissions = Get-AzureADServiceAppRoleAssignedTo -ObjectId $sp.ObjectId -All $true | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-AzureADServiceAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.objectId
}
Membatalkan validasi token refresh menggunakan Azure AD PowerShell
Hapus appRoleAssignments untuk pengguna atau grup ke aplikasi menggunakan skrip berikut.
Connect-AzureAD
# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"
# Get Azure AD App role assignments using objectID of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true | Where-Object {$_.PrincipalType -eq "User"}
# Revoke refresh token for all users assigned to the application
$assignments | ForEach-Object {
Revoke-AzureADUserAllRefreshToken -ObjectId $_.PrincipalId
}
Meninjau dan mencabut izin menggunakan Microsoft Graph PowerShell
Gunakan skrip Microsoft Graph PowerShell berikut untuk mencabut semua izin yang diberikan ke aplikasi. Anda perlu masuk setidaknya sebagai Administrator Aplikasi Cloud.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "<ServicePrincipal objectID>"
Example: Get-MgServicePrincipal -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222'
# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants= Get-MgOauth2PermissionGrant -All| Where-Object { $_.clientId -eq $sp.Id }
# Remove all delegated permissions
$spOauth2PermissionsGrants |ForEach-Object {
Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}
# Get all application permissions for the service principal
$spApplicationPermissions = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $Sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -AppRoleAssignmentId $_.Id
}
Membatalkan validasi token refresh menggunakan Microsoft Graph PowerShell
Hapus appRoleAssignments untuk pengguna atau grup ke aplikasi menggunakan skrip berikut.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "<ServicePrincipal objectID>"
Example: Get-MgServicePrincipal -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222'
# Get Azure AD App role assignments using objectID of the Service Principal
$spApplicationPermissions = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalID $sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Revoke refresh token for all users assigned to the application
$spApplicationPermissions | ForEach-Object {
Remove-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $_.PrincipalId -AppRoleAssignmentId $_.Id
}
Meninjau dan mencabut izin menggunakan Microsoft Graph
Untuk meninjau izin, Masuk ke Graph Explorer sebagai setidaknya Administrator Aplikasi Cloud.
Anda perlu menyetujui izin berikut:
Application.ReadWrite.All
, , Directory.ReadWrite.All
DelegatedPermissionGrant.ReadWrite.All
, . AppRoleAssignment.ReadWrite.All
Izin yang didelegasikan
Jalankan kueri berikut untuk meninjau izin yang didelegasikan yang diberikan ke aplikasi.
Dapatkan perwakilan layanan menggunakan ID objek.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
Contoh:
GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
Mendapatkan semua izin yang didelegasikan untuk perwakilan layanan
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
Hapus izin yang didelegasikan menggunakan ID oAuth2PermissionGrants.
DELETE https://graph.microsoft.com/v1.0/oAuth2PermissionGrants/{id}
Izin aplikasi
Jalankan kueri berikut untuk meninjau izin aplikasi yang diberikan ke aplikasi.
Mendapatkan semua izin aplikasi untuk perwakilan layanan
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
Menghapus izin aplikasi menggunakan ID appRoleAssignment
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Membatalkan validasi token refresh menggunakan Microsoft Graph
Jalankan kueri berikut untuk menghapus appRoleAssignments pengguna atau grup ke aplikasi.
Dapatkan Perwakilan Layanan menggunakan objectID.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
Contoh:
GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Dapatkan penetapan peran Aplikasi Microsoft Entra menggunakan objectID dari Perwakilan Layanan.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
Cabut token refresh untuk pengguna dan grup yang ditetapkan ke aplikasi menggunakan ID appRoleAssignment.
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Nota
Mencabut izin yang diberikan saat ini tidak akan menghentikan pengguna menyetujui kembali izin yang diminta aplikasi. Anda perlu menghentikan aplikasi meminta izin melalui persetujuan dinamis. Jika Anda ingin memblokir pengguna agar tidak menyetujui sama sekali, baca Mengonfigurasi bagaimana pengguna menyetujui aplikasi.
Otorisasi lain yang perlu dipertimbangkan
Izin yang didelegasikan dan aplikasi bukan satu-satunya cara untuk memberikan aplikasi dan pengguna akses ke sumber daya yang dilindungi. Admin harus mengetahui sistem otorisasi lain yang mungkin memberikan akses ke informasi sensitif. Contoh berbagai sistem otorisasi di Microsoft termasuk peran bawaan Microsoft Entra, Exchange RBAC, dan persetujuan khusus sumber daya Teams.