Condividi tramite


Creare un pacchetto di accesso nella gestione entitlement per un'applicazione con un singolo ruolo usando PowerShell

Nella gestione entitlement di Microsoft Entra un pacchetto di accesso include i criteri per il modo in cui gli utenti possono ottenere assegnazioni per uno o più ruoli delle risorse. Le risorse possono includere gruppi, applicazioni e siti di SharePoint Online.

Questo articolo descrive come creare un pacchetto di accesso per una singola applicazione con un singolo ruolo usando Microsoft Graph PowerShell. Questo scenario è applicabile principalmente agli ambienti che usano la gestione entitlement per automatizzare l'accesso continuo per un'applicazione aziendale o middleware specifica. Un'organizzazione con più risorse o risorse con più ruoli può anche modellare i criteri di accesso con i pacchetti di accesso:

Prerequisiti

L'uso di questa funzionalità richiede le licenze di Microsoft Entra ID Governance. Per trovare la licenza appropriata per i requisiti, vedere Nozioni fondamentali sulla governance degli ID di Microsoft Entra ID.

Prima di iniziare a creare il pacchetto di accesso, è necessario integrare l'applicazione con Microsoft Entra ID. Se l'applicazione non è già presente nel tenant microsoft Entra ID, seguire le istruzioni riportate in questo articolo per creare un'applicazione e un'entità servizio per l'oggetto. Assicurarsi anche che il tenant di Microsoft Entra ID abbia soddisfatto i prerequisiti prima di configurare Microsoft Entra ID per la governance delle identità.

Per creare il pacchetto di accesso e i criteri e le assegnazioni associati, è necessario avere le informazioni seguenti pronte:

Caso d'uso Impostazione di configurazione Variabile di PowerShell
Tutte le date Nome dell'applicazione nel tenant di Microsoft Entra ID $servicePrincipalName
Tutte le date Nome del ruolo dell'applicazione $servicePrincipalRoleName
Tutte le date Nome del catalogo contenente il pacchetto di accesso $catalogName
Tutte le date Nome per assegnare il pacchetto di accesso $accessPackageName
Tutte le date Descrizione per assegnare il pacchetto di accesso $accessPackageDescription
Separazione dei requisiti di compiti con un pacchetto di accesso incompatibile ID del pacchetto di accesso incompatibile $incompatibleAccessPackageId (se necessario)
Utenti che non hanno già assegnazioni e non vengono assegnati automaticamente elenco di utenti $inputpath (se necessario)
Gli utenti con attributi specifici hanno automaticamente assegnazioni espressione di query per gli utenti nell'ambito $autoAssignmentPolicyFilter (se necessario)
Consentire agli utenti che non hanno un'assegnazione di richiedere un'assegnazione l'ambito degli utenti che possono richiedere, i responsabili approvazione e il periodo di verifica dell'accesso dipende dai requisiti
Automatizzare la creazione o la rimozione delle assegnazioni in base all'aggiunta o all'uscita di flussi di lavoro nei flussi di lavoro del ciclo di vita i nomi dei flussi di lavoro che forniscono e rimuovono l'accesso dipende dai requisiti

Eseguire l'autenticazione in Microsoft Entra ID

Questa sezione illustra come interagire con Microsoft Entra ID Governance usando i cmdlet di PowerShell di Microsoft Graph.

La prima volta che l'organizzazione usa questi cmdlet per questo scenario, è necessario trovarsi in un ruolo globale Amministrazione istrator per consentire l'uso di Microsoft Graph PowerShell nel tenant. Le interazioni successive possono usare un ruolo con privilegi inferiori, ad esempio:

  1. Aprire PowerShell.

  2. Se i moduli di Microsoft Graph PowerShell non sono già installati, installare il Microsoft.Graph.Identity.Governance modulo e altri usando questo comando:

    Install-Module Microsoft.Graph
    

    Se i moduli sono già installati, assicurarsi di usare una versione recente:

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

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Se è la prima volta che è stato usato questo comando, potrebbe essere necessario fornire il consenso per consentire agli strumenti della riga di comando di Microsoft Graph di avere queste autorizzazioni.

Creare un catalogo nella gestione entitlement di Microsoft Entra

Per impostazione predefinita, quando un amministratore interagisce per la prima volta con la gestione entitlement, viene creato automaticamente un catalogo predefinito. Tuttavia, i pacchetti di accesso per le applicazioni regolamentate devono trovarsi in un catalogo designato.

  1. Specificare il nome del catalogo.

    $catalogName = "Business applications"
    
  2. Se è già disponibile un catalogo per lo scenario di governance delle applicazioni, continuare con il passaggio 4 di questa sezione.

  3. Se non è già disponibile un catalogo per lo scenario di governance delle applicazioni, creare un catalogo.

    $catalog = New-MgEntitlementManagementCatalog -DisplayName $catalogName
    
  4. Cercare l'ID del catalogo.

    $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
    

Aggiungere l'applicazione come risorsa al catalogo

Dopo aver creato il catalogo, aggiungere l'applicazione come risorsa nel catalogo.

  1. Specificare il nome dell'applicazione e il nome del ruolo applicazione. Usare il nome dell'applicazione come valore di servicePrincipalName.

    $servicePrincipalName = "SAP Cloud Identity Services"
    $servicePrincipalRoleName = "User"
    
  2. Cercare l'ID dell'entità servizio dell'applicazione.

    $servicePrincipalFilter = "displayName eq '" + $applicationName + "'"
    $servicePrincipal = Get-MgServicePrincipal -Filter $servicePrincipalFilter -all
    if ($servicePrincipal -eq $null) { throw "service principal $servicePrincipalName not found" }
    $servicePrincipalId = $servicePrincipal.Id
    
  3. Controllare se l'applicazione è già presente nel catalogo come risorsa. Se è già presente, continuare al passaggio 6 di questa sezione.

    $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. Aggiungere l'entità servizio dell'applicazione come risorsa al catalogo.

    $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. Recuperare l'ID e l'ambito della risorsa nel catalogo.

    $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. Recuperare i ruoli dell'applicazione.

    $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. Selezionare il ruolo che verrà incluso nel pacchetto di accesso.

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

Creare il pacchetto di accesso per l'applicazione

Successivamente si userà PowerShell per creare un pacchetto di accesso in un catalogo che include il ruolo dell'applicazione.

  1. Specificare il nome e la descrizione del pacchetto di accesso.

    $accessPackageName = "SAP Cloud Identity Services"
    $accessPackageDescription = "A user of SAP Cloud Identity Services"
    $accessPackageHidden = $true
    
  2. Verificare che il pacchetto di accesso non esista già.

    foreach ($a in $catalog.AccessPackages) { if ($a.DisplayName -eq $accessPackageName) { throw "access package $accessPackageName already exists" } }
    
  3. Creare il pacchetto di accesso.

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

Aggiungere il ruolo applicazione al pacchetto di accesso

Dopo aver creato un pacchetto di accesso, collegare il ruolo della risorsa nel catalogo al pacchetto di accesso.

$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

Creare criteri di assegnazione dei pacchetti di accesso per l'assegnazione diretta

In questa sezione si creeranno i primi criteri di assegnazione dei pacchetti di accesso nel pacchetto di accesso, un criterio di assegnazione dei pacchetti di accesso per l'assegnazione diretta, che può essere usato per tenere traccia degli utenti che hanno già accesso all'applicazione. Nei criteri di esempio creati in questa sezione, solo gli amministratori o i responsabili delle assegnazioni dei pacchetti di accesso possono assegnare l'accesso, gli utenti mantengono l'accesso a tempo indeterminato e non sono presenti approvazioni o verifiche di accesso.

  1. Creare un criterio.

    $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
    
    

Configurare la separazione dei vincoli dei compiti

La gestione entitlement di Microsoft Entra può applicare la separazione dei controlli dei compiti per impedire a un utente che ha già un'assegnazione esistente a un altro pacchetto di accesso designato o all'appartenenza di un gruppo designato, di richiedere un pacchetto di accesso.

Se non si hanno requisiti di separazione dei compiti per questa applicazione, continuare con la sezione successiva.

Se si hanno requisiti di separazione dei compiti, configurare i pacchetti di accesso incompatibili o i gruppi esistenti per il pacchetto di accesso.

Per ogni pacchetto di accesso che deve essere contrassegnato come incompatibile con un altro, è possibile usare powerShell per configurare i pacchetti di accesso come incompatibili.

  1. Specificare l'altro pacchetto di accesso non compatibile con questo pacchetto. Modificare il valore di incompatibleAccessPackageId impostando l'ID di un altro pacchetto di accesso nella gestione entitlement di Microsoft Entra.

    $incompatibleAccessPackageId = "67cc7175-7a3d-4cb2-860f-4d9217ba96ca"
    
  2. Creare il riferimento incompatibile in questo pacchetto di accesso.

    $incompatible1params = @{
     "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $incompatibleAccessPackageId
    }
    New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $accessPackageId -BodyParameter $incompatible1params
    
  3. Creare il riferimento incompatibile nell'altro pacchetto di accesso.

    $incompatible2params = @{
     "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $accessPackageId
    }
    New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $incompatibleAccessPackageId -BodyParameter $incompatible2params
    
  4. Ripetere per tutti gli altri pacchetti di accesso.

  5. Se lo scenario richiede la possibilità di eseguire l'override di una separazione dei compiti, è anche possibile configurare pacchetti di accesso aggiuntivi per questi scenari di override.

Aggiungere assegnazioni di utenti esistenti che hanno già accesso all'applicazione

Aggiungere assegnazioni di utenti esistenti, che hanno già accesso all'applicazione, al pacchetto di accesso e ai relativi criteri di assegnazione diretta. È possibile assegnare direttamente ogni utente a un pacchetto di accesso.

  1. Recuperare le assegnazioni di ruolo dell'applicazione esistenti.

    $existingAppRoleAssignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $servicePrincipalId -All)
    
  2. Per evitare di creare assegnazioni duplicate, recuperare le assegnazioni esistenti nel pacchetto di accesso.

    $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. Creare nuove assegnazioni.

    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"
     }
    }
    

Aggiungere altri utenti che devono avere accesso all'applicazione

Questo script illustra l'uso dei cmdlet di PowerShell di Microsoft Graph per aggiungere altri utenti all'applicazione. Se non si dispone di utenti che hanno bisogno di accesso e non lo riceveranno automaticamente, continuare nella sezione successiva.

Questo script presuppone che si disponga di un file CSV di input contenente una colonna, UserPrincipalName, per assegnare tali utenti al pacchetto di accesso tramite i criteri di assegnazione diretta.

  1. Specificare il nome del file di input.

    $inputpath = "users.csv"
    
  2. Per evitare di creare assegnazioni duplicate, recuperare le assegnazioni esistenti nel pacchetto di accesso.

    $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. Creare nuove assegnazioni.

    $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"
       }
    }
    

Aggiungere un criterio ai pacchetti di accesso per l'assegnazione automatica

Se i criteri dell'organizzazione per chi può essere assegnato l'accesso a un'applicazione includono una regola basata sugli attributi dell'utente per assegnare e rimuovere automaticamente l'accesso in base a tali attributi, è possibile rappresentarlo usando un criterio di assegnazione automatica. Un pacchetto di accesso può avere al massimo un criterio di assegnazione automatica. Se non si ha un requisito per un'assegnazione automatica, continuare con la sezione successiva.

  1. Specificare l'espressione di filtro di assegnazione automatica per consentire agli utenti di ricevere un'assegnazione. Modificare il valore di autoAssignmentPolicyFilter in modo che sia un filtro per gli utenti nell'ID Microsoft Entra nell'ambito. La sintassi e gli attributi consentiti vengono forniti nelle regole di appartenenza dinamica per i gruppi in Microsoft Entra ID.

    $autoAssignmentPolicyFilter = '(user.city -eq "Redmond")'
    
  2. Usare PowerShell per creare criteri di assegnazione automatica nel pacchetto di accesso.

    $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
    

Creare criteri aggiuntivi per consentire agli utenti di richiedere l'accesso

Se gli utenti che non hanno già accesso autorizzato a richiedere l'assegnazione all'applicazione, è anche possibile configurare un criterio di assegnazione dei pacchetti di accesso per consentire agli utenti di richiedere un pacchetto di accesso. È possibile aggiungere altri criteri a un pacchetto di accesso e in ogni criterio specificare quali utenti possono richiedere e chi deve approvare. Se si vuole avere accesso automatico o da un amministratore solo agli utenti, continuare con la sezione successiva.

Per altri esempi, vedere Creare criteri di assegnazione tramite PowerShell, accessPackageAssignmentPolicy e Creare un oggetto assignmentPolicy.

  1. Specificare il nome, la descrizione del criterio e l'ID di un utente di Microsoft Entra che sarà il responsabile approvazione.

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

    $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
    

Configurare le attività dei flussi di lavoro del ciclo di vita

Se si usano flussi di lavoro del ciclo di vita di Microsoft Entra per l'aggiunta ai dipendenti, spostare gli eventi di uscita, è anche possibile aggiungere o rimuovere attività a tali flussi di lavoro per aggiungere o rimuovere assegnazioni a questo pacchetto di accesso. Se non si usano flussi di lavoro del ciclo di vita, continuare con la sezione successiva.

In questo esempio viene illustrato come apportare una modifica ai flussi di lavoro di join e di uscita dagli eventi.

  1. Recuperare il flusso di lavoro della joiner categoria e le relative attività usando il comando Get-MgIdentityGovernanceLifecycleWorkflow .

  2. Aggiungere un'attività all'elenco di attività nel flusso di lavoro.

    Nome visualizzato dell'attività taskDefinitionId argomenti
    Richiedere l'assegnazione del pacchetto di accesso utente c1ec1e76-f374-4375-aaa6-0bb6bd4c60be nome: assignmentPolicyId
    value: ID dei criteri di assegnazione, ad esempio il valore di $directAssignmentPolicyId se non è necessaria alcuna approvazione, per il pacchetto di accesso che si vuole assegnare all'utente.

    nome: accessPackageId
    value: ID pacchetto di accesso, $accessPackageId, per il pacchetto di accesso da assegnare all'utente.
  3. Creare una nuova versione del flusso di lavoro, inclusa la nuova attività, usando il comando New-MgIdentityGovernanceLifecycleWorkflowNewVersion .

  4. Recuperare il flusso di lavoro della leaver categoria e le relative attività usando il comando Get-MgIdentityGovernanceLifecycleWorkflow .

  5. Aggiungere un'attività all'elenco di attività nel flusso di lavoro.

    Nome visualizzato dell'attività taskDefinitionId argomenti
    Rimuovere l'assegnazione del pacchetto di accesso per l'utente 4a0b64f2-c7ec-46ba-b117-18f262946c50 nome: accessPackageId
    value: ID pacchetto di accesso valido, accessPackageId per il pacchetto di accesso che si desidera annullare l'assegnazione dall'utente.
  6. Creare una nuova versione del flusso di lavoro, inclusa la nuova attività, usando il comando New-MgIdentityGovernanceLifecycleWorkflowNewVersion .

Gestire le assegnazioni

Dopo aver creato i pacchetti di accesso, i criteri e le assegnazioni iniziali, agli utenti viene assegnato l'accesso al ruolo dell'applicazione.

Successivamente, è possibile monitorare le modifiche apportate alle assegnazioni o aggiungere o rimuovere assegnazioni a livello di codice.

Recuperare le assegnazioni esistenti

Questo script illustra l'uso di un filtro per recuperare le assegnazioni al pacchetto di accesso nello stato Delivered. Lo script genera un file assignments.csv CSV con un elenco di utenti con assegnazioni, con una riga per assegnazione.

$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"

Rimuovere un'assegnazione

È possibile rimuovere l'assegnazione di un utente con il 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
}

Passaggi successivi