Bagikan melalui


Membuat paket akses dalam pengelolaan pemberian hak untuk aplikasi dengan satu peran menggunakan PowerShell

Dalam pengelolaan pemberian hak Microsoft Entra, paket akses mencakup kebijakan tentang bagaimana pengguna dapat memperoleh penugasan untuk satu atau beberapa peran sumber daya. Sumber daya dapat mencakup grup, aplikasi, dan situs SharePoint Online.

Artikel ini menjelaskan cara membuat paket akses untuk satu aplikasi dengan satu peran, menggunakan Microsoft Graph PowerShell. Skenario ini terutama berlaku untuk lingkungan yang menggunakan pengelolaan pemberian hak untuk mengotomatiskan akses yang sedang berlangsung untuk aplikasi bisnis atau middleware tertentu. Organisasi yang memiliki beberapa sumber daya atau sumber daya dengan beberapa peran juga dapat memodelkan kebijakan akses mereka dengan paket akses:

Prasyarat

Menggunakan fitur ini memerlukan lisensi Tata Kelola ID Microsoft Entra atau Microsoft Entra Suite. Untuk menemukan lisensi yang tepat untuk kebutuhan Anda, lihat Tata Kelola ID Microsoft Entra dasar-dasar lisensi.

Sebelum mulai membuat paket akses, Anda harus mengintegrasikan aplikasi dengan ID Microsoft Entra. Jika aplikasi Anda belum ada di penyewa MICROSOFT Entra ID Anda, ikuti instruksi dalam artikel tersebut untuk membuat aplikasi dan perwakilan layanan untuk objek tersebut. Pastikan juga bahwa penyewa ID Microsoft Entra Anda telah memenuhi prasyarat sebelum mengonfigurasi ID Microsoft Entra untuk tata kelola identitas.

Untuk membuat paket akses dan kebijakan dan penugasan terkait, Anda harus menyiapkan informasi berikut:

Gunakan huruf besar Pengaturan Konfigurasi Variabel PowerShell
Semua Nama aplikasi di penyewa MICROSOFT Entra ID Anda $servicePrincipalName
Semua Nama peran aplikasi $servicePrincipalRoleName
Semua Nama katalog yang berisi paket akses $catalogName
Semua Nama untuk memberikan paket akses $accessPackageName
Semua Deskripsi untuk memberikan paket akses $accessPackageDescription
Pemisahan persyaratan tugas dengan paket akses yang tidak kompatibel ID paket akses yang tidak kompatibel $incompatibleAccessPackageId (jika diperlukan)
Pengguna yang belum memiliki tugas dan tidak akan ditetapkan secara otomatis daftar pengguna $inputpath (jika diperlukan)
Pengguna dengan atribut tertentu secara otomatis memiliki penugasan ekspresi kueri untuk pengguna dalam cakupan $autoAssignmentPolicyFilter (jika diperlukan)
Mengizinkan pengguna yang tidak memiliki tugas untuk meminta penugasan cakupan pengguna yang dapat meminta, pemberi persetujuan, dan periode tinjauan akses tergantung pada persyaratan
Mengotomatiskan pembuatan atau penghapusan tugas berdasarkan alur kerja gabungan atau biarkan dalam alur kerja siklus hidup nama alur kerja yang memberikan dan menghapus akses tergantung pada persyaratan

Mengautentikasi ke ID Microsoft Entra

Bagian ini memperlihatkan cara berinteraksi dengan Tata Kelola ID Microsoft Entra dengan menggunakan cmdlet Microsoft Graph PowerShell.

Pertama kali organisasi Anda menggunakan cmdlet ini untuk skenario ini, Anda harus berada dalam peran Administrator Global agar Microsoft Graph PowerShell dapat digunakan di penyewa Anda. Interaksi selanjutnya dapat menggunakan peran dengan hak istimewa yang lebih rendah, seperti:

  1. Buka PowerShell.

  2. Jika Anda belum menginstal modul Microsoft Graph PowerShell , instal modul Microsoft.Graph.Identity.Governance dan lainnya dengan menggunakan perintah ini:

    Install-Module Microsoft.Graph
    

    Jika Anda sudah menginstal modul, pastikan Anda menggunakan versi terbarunya:

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Sambungkan ke ID Microsoft Entra:

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Jika ini pertama kalinya Anda menggunakan perintah ini, Anda mungkin perlu menyetujui untuk mengizinkan alat Baris Perintah Microsoft Graph memiliki izin ini.

Membuat katalog di pengelolaan pemberian izin Microsoft Entra

Secara default, ketika administrator pertama kali berinteraksi dengan pengelolaan pemberian hak, maka katalog default dibuat secara otomatis. Namun, paket akses untuk aplikasi yang diatur harus berada dalam katalog yang ditunjuk.

  1. Tentukan nama katalog.

    $catalogName = "Business applications"
    
  2. Jika Anda sudah memiliki katalog untuk skenario tata kelola aplikasi Anda, lanjutkan di langkah 4 bagian ini.

  3. Jika Anda belum memiliki katalog untuk skenario tata kelola aplikasi Anda, buat katalog.

    $catalog = New-MgEntitlementManagementCatalog -DisplayName $catalogName
    
  4. Cari ID katalog.

    $catalogFilter = "displayName eq '" + $catalogName + "'"
    $catalog = Get-MgEntitlementManagementCatalog -Filter $catalogFilter -All -expandProperty resources,accessPackages
    if ($catalog -eq $null) { throw "catalog $catalogName not found" }
    $catalogId = $catalog.Id
    

Menambahkan aplikasi sebagai sumber daya ke katalog

Setelah katalog dibuat, tambahkan aplikasi sebagai sumber daya dalam katalog tersebut.

  1. Tentukan nama aplikasi dan nama peran aplikasi. Gunakan nama aplikasi Anda sebagai nilai servicePrincipalName.

    $servicePrincipalName = "SAP Cloud Identity Services"
    $servicePrincipalRoleName = "User"
    
  2. Cari ID perwakilan layanan aplikasi.

    $servicePrincipalFilter = "displayName eq '" + $applicationName + "'"
    $servicePrincipal = Get-MgServicePrincipal -Filter $servicePrincipalFilter -all
    if ($servicePrincipal -eq $null) { throw "service principal $servicePrincipalName not found" }
    $servicePrincipalId = $servicePrincipal.Id
    
  3. Periksa apakah aplikasi sudah ada di katalog sebagai sumber daya. Jika sudah ada, lanjutkan pada langkah 6 bagian ini.

    $resourceId = $null
    foreach ($r in $catalog.Resources) { if ($r.OriginId -eq $servicePrincipalId) { $resourceId = $r.id; break } }
    if ($resourceId -ne $null) { write-output "resource already in catalog" } else {write-output "resource not yet in catalog"}
    
  4. Tambahkan perwakilan layanan aplikasi sebagai sumber daya ke katalog.

    $resourceAddParams = @{
      requestType = "adminAdd"
      resource = @{
        originId = $servicePrincipalId
        originSystem = "AadApplication"
      }
      catalog = @{ id = $catalogId }
    }
    
    $resourceAdd = New-MgEntitlementManagementResourceRequest -BodyParameter $resourceAddParams
    if ($resourceAdd -eq $null) { throw "resource could not be added" }
    sleep 5
    
  5. Ambil ID dan cakupan sumber daya dalam katalog tersebut.

    $resource = $null
    $resourceId = $null
    $resourceScope = $null
    $catalogResources = Get-MgEntitlementManagementCatalogResource -AccessPackageCatalogId $CatalogId -ExpandProperty "scopes" -all
    
    foreach ($r in $catalogResources) { if ($r.OriginId -eq $servicePrincipalId) { $resource = $r; $resourceId = $r.id; $resourceScope = $r.Scopes[0]; break } }
    if ($resourceId -eq $null) { throw "resource was not added" }
    
  6. Ambil peran aplikasi.

    $resourceRoleFilter = "(originSystem eq 'AadApplication' and resource/id eq '" + $resourceId + "')"
    $resourceRoles = @(get-mgentitlementmanagementcatalogresourcerole  -AccessPackageCatalogId $catalogId -Filter $resourceRoleFilter -All -ExpandProperty "resource")
    if ($resourceRoles -eq $null -or $resourceRoles.count -eq 0) { throw "no roles available" }
    
  7. Pilih peran yang akan disertakan dalam paket akses.

    $resourceRole = $null
    foreach ($r in $resourceRoles) { if ($r.DisplayName -eq $servicePrincipalRoleName) { $resourceRole = $r; break; } }
    if ($resourceRole -eq $null) { throw "role $servicePrincipalRoleName not located" }
    

Membuat paket akses untuk aplikasi

Selanjutnya Anda akan menggunakan PowerShell untuk membuat paket akses dalam katalog yang menyertakan peran aplikasi.

  1. Tentukan nama dan deskripsi paket akses.

    $accessPackageName = "SAP Cloud Identity Services"
    $accessPackageDescription = "A user of SAP Cloud Identity Services"
    $accessPackageHidden = $true
    
  2. Periksa apakah paket akses belum ada.

    foreach ($a in $catalog.AccessPackages) { if ($a.DisplayName -eq $accessPackageName) { throw "access package $accessPackageName already exists" } }
    
  3. Buat paket akses.

    $accessPackageParams = @{
        displayName = $accessPackageName
        description = $accessPackageDescription
        isHidden = $accessPackageHidden
        catalog = @{
            id = $catalog.id
        }
    }
    $accessPackage = New-MgEntitlementManagementAccessPackage -BodyParameter $accessPackageParams
    $accessPackageId = $accessPackage.Id
    

Menambahkan peran aplikasi ke paket akses

Setelah Anda membuat paket akses, maka Anda menautkan peran sumber daya dalam katalog ke paket akses.

$rrsParams = @{
 role = @{
     id =  $resourceRole.Id
     displayName =  $resourceRole.DisplayName
     description =  $resourceRole.Description
     originSystem =  $resourceRole.OriginSystem
     originId =  $resourceRole.OriginId
     resource = @{
         id = $resource.Id
         originId = $resource.OriginId
         originSystem = $resource.OriginSystem
     }
 }
 scope = @{
     id = $resourceScope.Id
     originId = $resourceScope.OriginId
     originSystem = $resourceScope.OriginSystem
 }
}

$roleAddRes = New-MgEntitlementManagementAccessPackageResourceRoleScope -AccessPackageId $accessPackageId -BodyParameter $rrsParams

Membuat kebijakan penetapan paket akses untuk penugasan langsung

Di bagian ini Anda akan membuat kebijakan penetapan paket akses pertama dalam paket akses, kebijakan penetapan paket akses untuk penugasan langsung, yang dapat digunakan untuk melacak pengguna yang sudah memiliki akses ke aplikasi. Dalam contoh kebijakan yang dibuat di bagian ini, hanya administrator atau manajer penetapan paket akses yang dapat menetapkan akses, pengguna mempertahankan akses tanpa batas waktu, dan tidak ada persetujuan atau tinjauan akses.

  1. Buat kebijakan.

    $policy1Name = "Direct assignment policy"
    $policy1Description = "policy for administrative assignment"
    
    $policy1params = @{
     displayName = $policy1Name
     description = $policy1Description
     allowedTargetScope = "notSpecified"
     specificAllowedTargets = @(
     )
     expiration = @{
         endDateTime = $null
         duration = $null
         type = "noExpiration"
     }
     requestorSettings = @{
         enableTargetsToSelfAddAccess = $true
         enableTargetsToSelfUpdateAccess = $false
         enableTargetsToSelfRemoveAccess = $true
         allowCustomAssignmentSchedule = $true
         enableOnBehalfRequestorsToAddAccess = $false
         enableOnBehalfRequestorsToUpdateAccess = $false
         enableOnBehalfRequestorsToRemoveAccess = $false
         onBehalfRequestors = @(
         )
     }
     requestApprovalSettings = @{
         isApprovalRequiredForAdd = $false
         isApprovalRequiredForUpdate = $false
         stages = @(
         )
     }
     accessPackage = @{
         id = $accessPackageId
     }
    }
    
    $policy1Res = New-MgEntitlementManagementAssignmentPolicy -BodyParameter $policy1params
    $directAssignmentPolicyId = $policy1Res.Id
    
    

Mengonfigurasi pemisahan batasan tugas

Pengelolaan pemberian hak Microsoft Entra dapat memberlakukan pemisahan pemeriksaan tugas untuk mencegah pengguna yang sudah memiliki penugasan yang ada ke paket akses lain yang ditunjuk, atau keanggotaan grup yang ditunjuk, dari meminta paket akses.

Jika Anda tidak memiliki pemisahan persyaratan tugas untuk aplikasi ini, lanjutkan di bagian berikutnya.

Jika Anda memiliki persyaratan pemisahan tugas, konfigurasikan paket akses yang tidak kompatibel atau grup yang ada untuk paket akses Anda.

Untuk setiap paket akses yang akan ditandai sebagai tidak kompatibel dengan paket lain, Anda dapat menggunakan Paket akses konfigurasi PowerShell sebagai tidak kompatibel.

  1. Tentukan paket akses lain yang tidak kompatibel dengan paket ini. Ubah nilai incompatibleAccessPackageId ke ID paket akses lain dalam pengelolaan pemberian hak Microsoft Entra.

    $incompatibleAccessPackageId = "67cc7175-7a3d-4cb2-860f-4d9217ba96ca"
    
  2. Buat referensi yang tidak kompatibel pada paket akses ini.

    $incompatible1params = @{
     "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $incompatibleAccessPackageId
    }
    New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $accessPackageId -BodyParameter $incompatible1params
    
  3. Buat referensi yang tidak kompatibel pada paket akses lainnya.

    $incompatible2params = @{
     "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $accessPackageId
    }
    New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $incompatibleAccessPackageId -BodyParameter $incompatible2params
    
  4. Ulangi untuk paket akses lainnya.

  5. Jika skenario Anda memerlukan kemampuan untuk mengambil alih pemeriksaan pemisahan tugas, maka Anda juga dapat menyiapkan paket akses tambahan untuk skenario penimpaan tersebut.

Menambahkan penugasan pengguna yang sudah ada yang sudah memiliki akses ke aplikasi

Tambahkan penugasan pengguna yang ada, yang sudah memiliki akses ke aplikasi, ke paket akses dan kebijakan penugasan langsungnya. Anda dapat langsung menetapkan setiap pengguna ke paket akses.

  1. Ambil penetapan peran aplikasi yang ada.

    $existingAppRoleAssignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $servicePrincipalId -All)
    
  2. Untuk menghindari pembuatan tugas duplikat, ambil tugas yang ada ke paket akses.

    $existingAssignments1filter = "accessPackage/id eq '" + $accessPackageId + "' and state eq 'Delivered'"
    $existingassignments1 = @(Get-MgEntitlementManagementAssignment -Filter $existingAssignments1filter -ExpandProperty target -All -ErrorAction Stop)
    $existingusers1 = @()
    foreach ($a in $existingassignments1) { $existingusers1 += $a.Target.ObjectId}
    
  3. Buat tugas baru.

    foreach ($ar in $existingAppRoleAssignments) {
     if ($ar.principalType -ne "User") {
       write-warning "non-user assigned to application role"
     }
     $arpid = $ar.principalId
     if ($existingusers1.contains($arpId)) { continue }
    
     $params = @{
       requestType = "adminAdd"
       assignment = @{
          targetId = $arpId
          assignmentPolicyId = $directAssignmentPolicyId
          accessPackageId = $accessPackageId
       }
     }
     try {
       New-MgEntitlementManagementAssignmentRequest -BodyParameter $params
     } catch {
       write-error "cannot create request for user $upn"
     }
    }
    

Menambahkan pengguna tambahan yang harus memiliki akses ke aplikasi

Skrip ini mengilustrasikan menggunakan cmdlet Microsoft Graph PowerShell untuk menambahkan pengguna tambahan ke aplikasi. Jika Anda tidak memiliki pengguna yang memerlukan akses, dan tidak akan menerimanya secara otomatis, lanjutkan di bagian berikutnya.

Skrip ini mengasumsikan Anda memiliki file CSV input yang berisi satu kolom, UserPrincipalName, untuk menetapkan pengguna tersebut ke paket akses melalui kebijakan penetapan langsungnya.

  1. Tentukan nama file input.

    $inputpath = "users.csv"
    
  2. Untuk menghindari pembuatan tugas duplikat, ambil tugas yang ada ke paket akses.

    $existingAssignments2filter = "accessPackage/id eq '" + $accessPackageId + "' and state eq 'Delivered'"
    $existingassignments2 = @(Get-MgEntitlementManagementAssignment -Filter $existingAssignments2filter -ExpandProperty target -All -ErrorAction Stop)
    $existingusers2 = @()
    foreach ($a in $existingassignments2) { $existingusers2 += $a.Target.ObjectId}
    
  3. Buat tugas baru.

    $users = import-csv -Path $inputpath
    foreach ($userrecord in $users) {
       $upn = $userrecord.UserPrincipalName
       if ($null -eq $upn) {throw "no UserPrincipalName" }
       $u = $null
       try {
          $u = Get-MgUser -UserId $upn
       } catch {
          write-error "no user $upn"
       }
       if ($u -eq $null) { continue }
       if ($existingusers2.contains($u.Id)) { continue }
    
       $params = @{
          requestType = "adminAdd"
          assignment = @{
             targetId = $u.Id
             assignmentPolicyId = $directAssignmentPolicyId
             accessPackageId = $accessPackageId
          }
       }
       try {
          New-MgEntitlementManagementAssignmentRequest -BodyParameter $params
       } catch {
          write-error "cannot create request for user $upn"
       }
    }
    

Menambahkan kebijakan ke paket akses untuk penetapan otomatis

Jika kebijakan organisasi Anda untuk siapa yang dapat ditetapkan akses ke aplikasi menyertakan aturan berdasarkan atribut pengguna untuk menetapkan dan menghapus akses secara otomatis berdasarkan atribut tersebut, Anda dapat mewakilinya menggunakan kebijakan penugasan otomatis. Paket akses dapat memiliki paling banyak satu kebijakan penugasan otomatis. Jika Anda tidak memiliki persyaratan untuk penugasan otomatis, lanjutkan di bagian berikutnya.

  1. Tentukan ekspresi filter penugasan otomatis bagi pengguna untuk menerima penugasan. Ubah nilai autoAssignmentPolicyFilter menjadi filter untuk pengguna di ID Microsoft Entra Anda yang berada dalam cakupan. Sintaksis dan atribut yang diizinkan disediakan dalam aturan keanggotaan dinamis untuk grup di ID Microsoft Entra.

    $autoAssignmentPolicyFilter = '(user.city -eq "Redmond")'
    
  2. Gunakan PowerShell untuk membuat kebijakan penugasan otomatis dalam paket akses.

    $policy2Name = "Automatic assignment policy"
    $policy2Description = "policy for automatic assignment"
    
    $policy2Params = @{
     DisplayName = $policy2Name
     Description = $policy2Description
     AllowedTargetScope = "specificDirectoryUsers"
     SpecificAllowedTargets = @( @{
         "@odata.type" = "#microsoft.graph.attributeRuleMembers"
         description = $policy2Description
         membershipRule = $autoAssignmentPolicyFilter
     } )
     AutomaticRequestSettings = @{
         RequestAccessForAllowedTargets = $true
     }
     AccessPackage = @{
       Id = $accessPackageId
     }
    }
    New-MgEntitlementManagementAssignmentPolicy -BodyParameter $policy2Params
    

Membuat kebijakan tambahan untuk memungkinkan pengguna meminta akses

Jika pengguna yang belum memiliki akses diizinkan untuk meminta ditetapkan ke aplikasi, maka Anda juga dapat mengonfigurasi kebijakan penetapan paket akses untuk memungkinkan pengguna meminta paket akses. Anda dapat menambahkan kebijakan tambahan ke paket akses, dan di setiap kebijakan menentukan pengguna mana yang dapat meminta dan siapa yang harus menyetujui. Jika Anda hanya ingin pengguna diberi akses secara otomatis atau oleh administrator, lanjutkan di bagian berikutnya.

Untuk contoh selengkapnya, lihat Membuat kebijakan penugasan melalui PowerShell, accessPackageAssignmentPolicy dan Membuat assignmentPolicy.

  1. Tentukan nama, deskripsi kebijakan, dan ID pengguna Microsoft Entra yang akan menjadi pemberi persetujuan.

    $policy3Name = "example policy"
    $policy3Description = "example of a policy for users to request assignment"
    $policy3ApproverSingleUserId = "1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5"
    
  2. Buat kebijakan.

    $policy3Params = @{
     displayName = $policy3Name
     description = $policy3Description
     allowedTargetScope = "allMemberUsers"
     expiration = @{
         type = "noExpiration"
     }
     requestorSettings = @{
         enableTargetsToSelfAddAccess = "true"
         enableTargetsToSelfUpdateAccess = "true"
         enableTargetsToSelfRemoveAccess = "true"
     }
     requestApprovalSettings = @{
         isApprovalRequiredForAdd = "true"
         isApprovalRequiredForUpdate = "true"
         stages = @(
             @{
                 durationBeforeAutomaticDenial = "P7D"
                 isApproverJustificationRequired = "false"
                 isEscalationEnabled = "false"
                 fallbackPrimaryApprovers = @(
                 )
                 escalationApprovers = @(
                 )
                 fallbackEscalationApprovers = @(
                 )
                 primaryApprovers = @(
                     @{
                         "@odata.type" = "#microsoft.graph.singleUser"
                         userId = $policy3ApproverSingleUserId
                     }
                 )
             }
         )
     }
     accessPackage = @{
         id = $accessPackageId
     }
    }
    
    New-MgEntitlementManagementAssignmentPolicy -BodyParameter $policy3Params
    

Mengonfigurasi tugas alur kerja siklus hidup

Jika Anda menggunakan alur kerja siklus hidup Microsoft Entra untuk gabungan karyawan, pindahkan acara, maka Anda juga dapat menambahkan tugas ke alur kerja tersebut untuk menambahkan atau menghapus tugas ke paket akses ini. Jika Anda tidak menggunakan alur kerja siklus hidup, lanjutkan di bagian berikutnya.

Contoh ini menggambarkan cara membuat perubahan pada alur kerja gabungan dan meninggalkan peristiwa.

  1. joiner Ambil alur kerja kategori dan tugasnya, menggunakan perintah Get-MgIdentityGovernanceLifecycleWorkflow.

  2. Tambahkan tugas ke daftar tugas dalam alur kerja tersebut.

    Nama tampilan tugas taskDefinitionId arguments
    Meminta penetapan paket akses pengguna c1ec1e76-f374-4375-aaa6-0bb6bd4c60be nama: assignmentPolicyId
    nilai: ID kebijakan penugasan, seperti nilai dari $directAssignmentPolicyId jika tidak ada persetujuan yang diperlukan, untuk paket akses yang ingin Anda tetapkan pengguna.

    nama: accessPackageId
    nilai: ID paket akses, $accessPackageId, untuk paket akses yang ingin Anda tetapkan kepada pengguna.
  3. Buat versi baru alur kerja, termasuk tugas baru, menggunakan perintah New-MgIdentityGovernanceLifecycleWorkflowNewVersion .

  4. leaver Ambil alur kerja kategori dan tugasnya, menggunakan perintah Get-MgIdentityGovernanceLifecycleWorkflow.

  5. Tambahkan tugas ke daftar tugas dalam alur kerja tersebut.

    Nama tampilan tugas taskDefinitionId arguments
    Menghapus penetapan paket akses untuk pengguna 4a0b64f2-c7ec-46ba-b117-18f262946c50 nama: accessPackageId
    nilai: ID paket akses yang valid, accessPackageId untuk paket akses yang ingin Anda batalkan penetapannya dari pengguna.
  6. Buat versi baru alur kerja, termasuk tugas baru, menggunakan perintah New-MgIdentityGovernanceLifecycleWorkflowNewVersion .

Mengelola penugasan

Setelah paket akses, kebijakan, dan penugasan awal dibuat, maka pengguna diberi akses ke peran aplikasi.

Nantinya, Anda dapat memantau perubahan pada tugas, atau menambahkan atau menghapus tugas secara terprogram.

Mengambil penugasan yang sudah ada

Skrip ini mengilustrasikan menggunakan filter untuk mengambil tugas ke paket akses yang dalam status Delivered. Skrip menghasilkan file assignments.csv CSV dengan daftar pengguna yang memiliki penugasan, dengan satu baris per penugasan.

$assignmentFilter = "accessPackage/id eq '" + $accessPackageId + "' and state eq 'Delivered'"
$assignments = @(Get-MgEntitlementManagementAssignment -Filter $assignmentFilter -ExpandProperty target -All -ErrorAction Stop)
$sp = $assignments | select-object -Property Id,{$_.Target.id},{$_.Target.ObjectId},{$_.Target.DisplayName},{$_.Target.PrincipalName}
$sp | Export-Csv -Encoding UTF8 -NoTypeInformation -Path ".\assignments.csv"

Menghapus penugasan

Anda dapat menghapus penugasan pengguna dengan New-MgEntitlementManagementAssignmentRequest cmdlet.

$userId = "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
$filter = "accessPackage/Id eq '" + $accessPackageId + "' and state eq 'Delivered' and target/objectId eq '" + $userId + "'"
$assignment = Get-MgEntitlementManagementAssignment -Filter $filter -ExpandProperty target -all -ErrorAction stop
if ($assignment -ne $null) {
   $params = @{
      requestType = "adminRemove"
      assignment = @{ id = $assignment.id }
   }
   New-MgEntitlementManagementAssignmentRequest -BodyParameter $params
}

Langkah berikutnya