Mengelola kebijakan persetujuan aplikasi

Kebijakan persetujuan aplikasi adalah cara untuk mengelola izin yang harus diakses aplikasi di organisasi Anda. Mereka digunakan untuk mengontrol aplikasi apa yang dapat disetujui pengguna dan untuk memastikan bahwa aplikasi memenuhi kriteria tertentu sebelum mereka dapat mengakses data. Kebijakan ini membantu organisasi mempertahankan kontrol atas data mereka dan memastikan mereka hanya memberikan akses ke aplikasi tepercaya.

Dalam artikel ini, Anda mempelajari cara mengelola kebijakan persetujuan aplikasi bawaan dan kustom untuk mengontrol kapan persetujuan dapat diberikan.

Dengan Microsoft Graph dan Microsoft Graph PowerShell, Anda dapat melihat dan mengelola kebijakan persetujuan aplikasi.

Kebijakan persetujuan aplikasi terdiri dari satu atau beberapa kumpulan kondisi "sertakan" dan nol atau lebih kumpulan kondisi "kecualikan". Agar peristiwa dipertimbangkan dalam kebijakan persetujuan aplikasi, peristiwa harus cocok dengan setidaknya satu kumpulan kondisi "sertakan", dan tidak boleh cocok dengan kumpulan kondisi "kecualikan".

Setiap kumpulan kondisi terdiri dari beberapa ketentuan. Agar peristiwa cocok dengan kumpulan kondisi, semua kondisi dalam kumpulan kondisi harus dipenuhi.

Kebijakan persetujuan aplikasi dengan ID yang diawali dengan "microsoft-" adalah kebijakan bawaan. Beberapa kebijakan bawaan ini digunakan dalam peran direktori bawaan yang ada. Misalnya, kebijakan persetujuan aplikasi microsoft-application-admin menjelaskan kondisi yang mengizinkan peran Administrator Aplikasi dan Administrator Aplikasi Cloud untuk memberikan persetujuan admin seluruh tenant. Kebijakan bawaan dapat digunakan dalam peran direktori kustom dan untuk mengonfigurasi pengaturan persetujuan pengguna, tetapi tidak dapat diedit atau dihapus.

Prasyarat

  • Pengguna atau layanan dengan salah satu peran berikut:

Untuk mengelola kebijakan persetujuan aplikasi untuk aplikasi dengan Microsoft Graph PowerShell, sambungkan ke Microsoft Graph PowerShell.

Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"

Ada baiknya untuk memulai dengan memahami kebijakan persetujuan aplikasi yang ada di organisasi Anda:

  1. Membuat daftar semua kebijakan izin aplikasi:

    Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
    
  2. Lihat kumpulan kondisi "sertakan" dari kebijakan:

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    
  3. Lihat kumpulan kondisi "kecualikan":

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    

Ikuti langkah-langkah berikut untuk membuat kebijakan persetujuan aplikasi kustom:

  1. Buat kebijakan persetujuan aplikasi kosong baru.

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-policy" `
        -DisplayName "My first custom consent policy" `
        -Description "This is a sample custom app consent policy."
    
  2. Tambahkan kumpulan kondisi "sertakan".

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -PermissionClassification "low" `
        -ClientApplicationsFromVerifiedPublisherOnly
    

    Ulangi langkah ini untuk menambahkan lebih banyak kumpulan kondisi "sertakan".

  3. Secara opsional, tambahkan kumpulan kondisi "kecualikan".

    # Retrieve the service principal for the Azure Management API
    $azureApi = Get-MgServicePrincipal -Filter "servicePrincipalNames/any(n:n eq 'https://management.azure.com/')"
    
    # Exclude delegated permissions for the Azure Management API
    New-MgPolicyPermissionGrantPolicyExclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -ResourceApplication $azureApi.AppId
    

    Ulangi langkah ini untuk menambahkan lebih banyak kumpulan kondisi "kecualikan".

Setelah membuat kebijakan persetujuan aplikasi, Anda perlu menetapkannya ke peran kustom di ID Microsoft Entra. Anda kemudian perlu menetapkan pengguna ke peran kustom tersebut, yang dilampirkan ke kebijakan persetujuan aplikasi yang Anda buat. Untuk informasi selengkapnya tentang cara menetapkan kebijakan persetujuan aplikasi ke peran kustom, lihat Izin persetujuan aplikasi untuk peran kustom.

Cmdlet berikut menunjukkan bagaimana Anda dapat menghapus kebijakan persetujuan aplikasi kustom.

   Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"

Untuk mengelola kebijakan persetujuan aplikasi, masuk ke Graph Explorer dengan salah satu peran yang tercantum di bagian prasyarat.

Anda perlu menyetujui izin tersebut Policy.ReadWrite.PermissionGrant .

Ada baiknya untuk memulai dengan memahami kebijakan persetujuan aplikasi yang ada di organisasi Anda:

  1. Membuat daftar semua kebijakan izin aplikasi:

    GET /policies/permissionGrantPolicies?$select=id,displayName,description
    
  2. Lihat kumpulan kondisi "sertakan" dari kebijakan:

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
    
  3. Lihat kumpulan kondisi "kecualikan":

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
    

Ikuti langkah-langkah berikut untuk membuat kebijakan persetujuan aplikasi kustom:

  1. Buat kebijakan persetujuan aplikasi kosong baru.

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies
    Content-Type: application/json
    
    {
      "id": "my-custom-policy",
      "displayName": "My first custom consent policy",
      "description": "This is a sample custom app consent policy"
    }
    
  2. Tambahkan kumpulan kondisi "sertakan".

    Sertakan izin yang didelegasikan yang diklasifikasikan "rendah" untuk aplikasi dari penerbit terverifikasi

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "PermissionClassification": "low",
      "clientApplicationsFromVerifiedPublisherOnly": true
    }
    

    Ulangi langkah ini untuk menambahkan lebih banyak kumpulan kondisi "sertakan".

  3. Secara opsional, tambahkan kumpulan kondisi "kecualikan". Mengecualikan izin yang didelegasikan untuk AZURE Management API (appId 46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b)

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/my-custom-policy /excludes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "resourceApplication": "46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b "
    }
    

    Ulangi langkah ini untuk menambahkan lebih banyak kumpulan kondisi "kecualikan".

Setelah membuat kebijakan persetujuan aplikasi, Anda perlu menetapkannya ke peran kustom di ID Microsoft Entra. Anda kemudian perlu menetapkan pengguna ke peran kustom tersebut, yang dilampirkan ke kebijakan persetujuan aplikasi yang Anda buat. Untuk informasi selengkapnya tentang cara menetapkan kebijakan persetujuan aplikasi ke peran kustom, lihat Izin persetujuan aplikasi untuk peran kustom.

  1. Berikut ini menunjukkan cara menghapus kebijakan persetujuan aplikasi kustom.

    DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
    

Peringatan

Kebijakan persetujuan aplikasi yang dihapus tidak dapat dipulihkan. Jika Anda tidak sengaja menghapus kebijakan persetujuan aplikasi kustom, Anda harus membuat ulang kebijakan tersebut.

Ketentuan yang didukung

Tabel berikut ini menyediakan daftar ketentuan yang didukung untuk kebijakan persetujuan aplikasi.

Kondisi Deskripsi
PermissionClassification Klasifikasi izin untuk izin yang diberikan, atau "semua" agar cocok dengan klasifikasi izin apa pun (termasuk izin yang tidak diklasifikasikan). Defaultnya adalah "semua."
PermissionType Jenis izin dari izin yang diberikan. Gunakan "aplikasi" untuk izin aplikasi (misalnya, peran aplikasi) atau "didelegasikan" untuk izin yang didelegasikan.

Catatan: Nilai "delegatedUserConsentable" menunjukkan izin yang didelegasikan yang tidak dikonfigurasi oleh penerbit API untuk memerlukan persetujuan admin. Nilai ini dapat digunakan dalam kebijakan pemberian izin bawaan, tetapi tidak dapat digunakan dalam kebijakan pemberian izin kustom. Harus diisi.
ResourceApplication AppId aplikasi sumber daya (misalnya, API) yang izinnya diberikan, atau "apa pun" untuk dicocokkan dengan aplikasi sumber daya atau API apa pun. Defaultnya adalah "any."
Izin Daftar ID izin untuk izin tertentu yang akan dicocokkan, atau daftar dengan nilai tunggal "semua" untuk dicocokkan dengan izin apa pun. Defaultnya adalah nilai tunggal "semua."
- ID izin yang didelegasikan dapat ditemukan di properti OAuth2Permissions dari objek ServicePrincipal API.
- ID izin aplikasi dapat ditemukan di properti AppRoles dari objek ServicePrincipal API.
ClientApplicationIds Daftar nilai AppId untuk dicocokkan dengan aplikasi klien, atau daftar dengan nilai tunggal "semua" untuk dicocokkan dengan aplikasi klien apa pun. Defaultnya adalah nilai tunggal "semua."
ClientApplicationTenantIds Daftar ID penyewa Microsoft Entra tempat aplikasi klien terdaftar, atau daftar dengan nilai tunggal "semua" untuk dicocokkan dengan aplikasi klien yang terdaftar di penyewa mana pun. Defaultnya adalah nilai tunggal "semua."
ClientApplicationPublisherIds Daftar ID Microsoft Partner Network (MPN) untuk penerbit terverifikasi dari aplikasi klien, atau daftar dengan nilai tunggal "semua" untuk dicocokkan dengan aplikasi klien dari penerbit mana pun. Defaultnya adalah nilai tunggal "semua."
ClientApplicationsFromVerifiedPublisherOnly Atur sakelar ini ke hanya cocok pada aplikasi klien dengan penerbit terverifikasi. Nonaktifkan sakelar ini (-ClientApplicationsFromVerifiedPublisherOnly:$false) agar cocok pada aplikasi klien apa pun, meskipun tidak memiliki penerbit terverifikasi. Defaultnya adalah $false.
scopeType Lingkup sumber daya mengetikkan preapproval berlaku untuk. Nilai yang mungkin: group untuk grup dan tim, chat untuk obrolan, atau tenant untuk akses di seluruh penyewa. Harus diisi.
sensitivitasLabels Label sensitivitas yang berlaku untuk jenis cakupan dan tidak disetujui sebelumnya. Ini memungkinkan Anda untuk melindungi data organisasi sensitif. Pelajari tentang label sensitivitas. Catatan: Sumber daya obrolan belum mendukung sensitivitasLabels.

Langkah berikutnya

Untuk mendapatkan bantuan atau menemukan jawaban atas pertanyaan Anda: