Sdílet prostřednictvím


Vytvoření přístupového balíčku ve správě nároků pro aplikaci s jednou rolí pomocí PowerShellu

Ve správě nároků Microsoft Entra zahrnuje přístupový balíček zásady pro způsob, jakým mohou uživatelé získat přiřazení pro jednu nebo více rolí prostředků. Prostředky můžou zahrnovat skupiny, aplikace a weby SharePointu Online.

Tento článek popisuje, jak vytvořit přístupový balíček pro jednu aplikaci s jednou rolí pomocí Microsoft Graph PowerShellu. Tento scénář se primárně vztahuje na prostředí, která používají správu nároků pro automatizaci průběžného přístupu pro konkrétní obchodní nebo middlewarovou aplikaci. Na základě pokynů v tomto a dalších článcích můžete stavět pro složitější scénáře, jako je přístup k více aplikacím nebo přístup k aplikacím a dalším druhům prostředků. Organizace, která má více prostředků nebo prostředků s více rolemi, může také modelovat zásady přístupu pomocí přístupových balíčků:

Požadavky

Použití této funkce vyžaduje zásady správného řízení Microsoft Entra ID nebo licence sady Microsoft Entra Suite. Informace o tom, jak najít správnou licenci pro vaše požadavky, najdete v tématu Základy licencování zásad správného řízení microsoftu Entra ID.

Než začnete vytvářet přístupový balíček, musíte aplikaci integrovat s MICROSOFT Entra ID. Pokud vaše aplikace ještě není ve vašem tenantovi Microsoft Entra ID, postupujte podle pokynů v tomto článku a vytvořte pro objekt aplikaci a instanční objekt. Před konfigurací ID Microsoft Entra pro zásady správného řízení identit se také ujistěte, že váš tenant Microsoft Entra ID splňuje požadavky.

Pokud chcete vytvořit přístupový balíček a jeho přidružené zásady a přiřazení, budete muset mít připravené následující informace:

Případ použití Nastavení konfigurace Proměnná PowerShellu
Všechny Název aplikace v tenantovi Microsoft Entra ID $servicePrincipalName
Všechny Název role aplikace $servicePrincipalRoleName
Aplikace, které spoléhají na skupinu zabezpečení ID skupiny zabezpečení Microsoft Entra používané aplikací, pokud existuje $groupId
Všechny Název katalogu obsahujícího přístupový balíček $catalogName
Všechny Název pro udělení přístupového balíčku $accessPackageName
Všechny Popis udělení přístupového balíčku $accessPackageDescription
Oddělení požadavků na povinnosti s nekompatibilním přístupovým balíčkem ID nekompatibilního přístupového balíčku $incompatibleAccessPackageId (v případě potřeby)
Uživatelé, kteří ještě nemají přiřazení a nepřiřadili by se automaticky seznam uživatelů $inputpath (v případě potřeby)
Uživatelé s konkrétními atributy mají přiřazení automaticky výraz dotazu pro uživatele v oboru $autoAssignmentPolicyFilter (v případě potřeby)
Povolit uživatelům, kteří nemají přiřazení, aby požádali o přiřazení rozsah uživatelů, kteří mohou požádat, schvalovatele a období kontroly přístupu závisí na požadavcích.
Automatizace vytváření nebo odebrání přiřazení na základě připojení nebo opuštění pracovních postupů v pracovních postupech životního cyklu názvy pracovních postupů, které udělují a odebírat přístup závisí na požadavcích.

Ověření v Microsoft Entra ID

V této části se dozvíte, jak pracovat se zásadami správného řízení MICROSOFT Entra ID pomocí rutin Prostředí Microsoft Graph PowerShell .

Při prvním použití těchto rutin pro tento scénář musíte být v roli globálního správce, abyste povolili použití Prostředí Microsoft Graph PowerShell ve vašem tenantovi. Následné interakce můžou používat roli s nižšími oprávněními, například:

  • Správce zásad správného řízení identit
  1. Otevřete PowerShell.

  2. Pokud ještě nemáte nainstalované moduly Microsoft Graph PowerShellu, nainstalujte modul Microsoft.Graph.Identity.Governance a další pomocí tohoto příkazu:

    Install-Module Microsoft.Graph
    

    Pokud už máte nainstalované moduly, ujistěte se, že používáte nejnovější verzi:

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Připojte se k Microsoft Entra ID:

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Pokud jste tento příkaz použili poprvé, možná budete muset udělit souhlas s povolením, aby tyto oprávnění měly nástroje příkazového řádku Microsoft Graphu.

Vytvoření katalogu ve správě nároků Microsoft Entra

Ve výchozím nastavení se při první interakci správce se správou nároků vytvoří automaticky výchozí katalog. Přístupové balíčky pro řízené aplikace by ale měly být v určeném katalogu.

  1. Zadejte název katalogu.

    $catalogName = "Business applications"
    
  2. Pokud už máte katalog pro váš scénář zásad správného řízení aplikací, pokračujte v kroku 4 této části.

  3. Pokud ještě nemáte katalog pro váš scénář zásad správného řízení aplikací, vytvořte katalog.

    $catalog = New-MgEntitlementManagementCatalog -DisplayName $catalogName
    
  4. Vyhledejte ID katalogu.

    $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
    

Přidání aplikace jako prostředku do katalogu

Po vytvoření katalogu přidejte aplikaci jako prostředek v daném katalogu.

  1. Zadejte název aplikace a název role aplikace. Jako hodnotu servicePrincipalNamepoužijte název aplikace .

    $servicePrincipalName = "SAP Cloud Identity Services"
    $servicePrincipalRoleName = "User"
    
  2. Vyhledejte ID instančního objektu aplikace.

    $servicePrincipalFilter = "displayName eq '" + $applicationName + "'"
    $servicePrincipal = Get-MgServicePrincipal -Filter $servicePrincipalFilter -all
    if ($servicePrincipal -eq $null) { throw "service principal $servicePrincipalName not found" }
    $servicePrincipalId = $servicePrincipal.Id
    
  3. Zkontrolujte, jestli už aplikace v katalogu existuje jako prostředek. Pokud už je k dispozici, pokračujte v kroku 6 této části.

    $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. Přidejte instanční objekt aplikace jako prostředek do katalogu.

    $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. Načtěte ID a rozsah prostředku v daném katalogu.

    $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. Načtěte role aplikace.

    $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. Vyberte roli, která bude zahrnuta v přístupovém balíčku.

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

Přidejte skupinu jako zdroj do katalogu

Pokud aplikace spoléhá na skupinu zabezpečení, přidejte ji do katalogu, aby ji bylo možné zahrnout jako prostředek. Pokud aplikace nespoléhá na skupinu zabezpečení, pokračujte v další části.

  1. Zadejte ID skupiny. Jako hodnotu servicePrincipalNamepoužijte ID vaší skupiny .

    $groupId = "7c2b967b-68c2-418a-a1c6-a3c7efb895a7"
    
  2. Zkontrolujte, jestli už skupina v katalogu existuje jako zdroj. Pokud už je k dispozici, pokračujte v kroku 4 této části.

    $groupResourceId = $null
    foreach ($r in $catalog.Resources) { if ($r.OriginId -eq $groupId) { $groupResourceId = $r.id; break } }
    if ($groupResourceId -ne $null) { write-output "resource for group already in catalog" } else {write-output "resource for group not yet in catalog"}
    
  3. Přidejte skupinu jako prostředek do katalogu.

    $groupResourceAddParams = @{
      requestType = "adminAdd"
      resource = @{
        originId = $groupId
        originSystem = "AadGroup"
      }
      catalog = @{ id = $catalogId }
    }
    
    $groupResourceAdd = New-MgEntitlementManagementResourceRequest -BodyParameter $groupResourceAddParams
    if ($groupResourceAdd -eq $null) { throw "group resource could not be added" }
    sleep 5
    
  4. Načtěte ID a rozsah skupinového prostředku v tomto katalogu.

    $groupResource = $null
    $groupResourceId = $null
    $groupResourceScope = $null
    $catalogResources = Get-MgEntitlementManagementCatalogResource -AccessPackageCatalogId $CatalogId -ExpandProperty "scopes" -all
    
    foreach ($r in $catalogResources) { if ($r.OriginId -eq $groupId) { $groupResource = $r; $groupResourceId = $r.id; $groupResourceScope = $r.Scopes[0]; break } }
    if ($groupResourceId -eq $null) { throw "resource was not added" }
    
  5. Získejte roli member prostředku skupiny v daném katalogu.

    $grFilter = "(originSystem eq 'AadGroup' and resource/id eq '" + $groupResourceId + "')"
    $grrs = Get-MgEntitlementManagementCatalogResourceRole -AccessPackageCatalogId $CatalogId -Filter $grFilter -ExpandProperty "resource"
    $grMember = $grrs | where DisplayName -eq "Member"
    

Vytvoření přístupového balíčku pro aplikaci

Dále použijete PowerShell k vytvoření přístupového balíčku v katalogu , který zahrnuje roli aplikace.

  1. Zadejte název a popis přístupového balíčku.

    $accessPackageName = "SAP Cloud Identity Services"
    $accessPackageDescription = "A user of SAP Cloud Identity Services"
    $accessPackageHidden = $true
    
  2. Zkontrolujte, jestli přístupový balíček ještě neexistuje.

    foreach ($a in $catalog.AccessPackages) { if ($a.DisplayName -eq $accessPackageName) { throw "access package $accessPackageName already exists" } }
    
  3. Vytvořte přístupový balíček.

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

Přidání role aplikace do přístupového balíčku

Po vytvoření přístupového balíčku propojíte roli prostředku aplikace v katalogu s tímto přístupovým balíčkem.

$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

Přidání skupiny do přístupového balíčku

Pokud aplikace spoléhá na skupinu, propojíte členství ve skupině s přístupovým balíčkem. Pokud aplikace nespoléhá na skupinu, pokračujte v další části.

 $grrsParams = @{
  role = @{
      displayName =  "Member"
      description =  ""
      originSystem =  $grMember.OriginSystem
      originId =  $grMember.OriginId
      resource = @{
          id = $groupResource.Id
          originId = $groupResource.OriginId
          originSystem = $groupResource.OriginSystem
      }
  }
  scope = @{
      id = $groupResourceScope.Id
      originId = $groupResourceScope.OriginId
      originSystem = $groupResourceScope.OriginSystem
  }
 }

 $groupRrsAddRes = New-MgEntitlementManagementAccessPackageResourceRoleScope -AccessPackageId $accessPackageId -BodyParameter $grrsParams

Vytvoření zásad přiřazení přístupového balíčku pro přímé přiřazení

V této části vytvoříte první zásadu přiřazení přístupového balíčku v přístupovém balíčku, zásadu přiřazení přístupového balíčku pro přímé přiřazení, která se dá použít ke sledování uživatelů, kteří už mají přístup k aplikaci. V ukázkové zásadě vytvořené v této části můžou přístup přiřadit pouze správci nebo správci přiřazení přístupových balíčků, uživatelé si zachovají přístup neomezeně dlouho a neexistují žádná schválení ani kontroly přístupu.

  1. Vytvořte zásadu.

    $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
    
    

Konfigurace omezení rozdělení povinností

Správa nároků Microsoft Entra může vynutit oddělení kontrol povinností , aby zabránilo uživateli, který již má stávající přiřazení k jinému určenému přístupovém balíčku nebo členství v určené skupině, v žádosti o přístupový balíček.

Pokud pro tuto aplikaci nemáte oddělené požadavky na povinnosti, pokračujte v další části.

Pokud máte oddělené požadavky na povinnosti, nakonfigurujte nekompatibilní přístupové balíčky nebo existující skupiny pro přístupový balíček.

Pro každý přístupový balíček, který má být označen jako nekompatibilní s jiným, můžete použít PowerShell ke konfiguraci přístupových balíčků jako nekompatibilní.

  1. Zadejte druhý přístupový balíček, který není kompatibilní s tímto balíčkem. Změňte hodnotu incompatibleAccessPackageId na ID jiného přístupového balíčku ve správě nároků Microsoft Entra.

    $incompatibleAccessPackageId = "67cc7175-7a3d-4cb2-860f-4d9217ba96ca"
    
  2. Vytvořte nekompatibilní odkaz na tento přístupový balíček.

    $incompatible1params = @{
     "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $incompatibleAccessPackageId
    }
    New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $accessPackageId -BodyParameter $incompatible1params
    
  3. Vytvořte nekompatibilní odkaz na druhý přístupový balíček.

    $incompatible2params = @{
     "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $accessPackageId
    }
    New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $incompatibleAccessPackageId -BodyParameter $incompatible2params
    
  4. Opakujte pro všechny ostatní přístupové balíčky.

  5. Pokud váš scénář vyžaduje možnost přepsat oddělení kontrol povinností, můžete pro tyto scénáře přepsání nastavit i další přístupové balíčky.

Přidání přiřazení stávajících uživatelů, kteří už mají přístup k aplikaci

Přidejte přiřazení stávajících uživatelů, kteří už mají přístup k aplikaci, do přístupového balíčku a jeho zásad přímého přiřazení. Každému uživateli můžete přímo přiřadit přístupový balíček.

  1. Načtěte stávající přiřazení rolí aplikace.

    $existingAppRoleAssignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $servicePrincipalId -All)
    
  2. Pokud se chcete vyhnout vytváření duplicitních přiřazení, načtěte všechna existující přiřazení k přístupovém balíčku.

    $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. Vytvořte nová přiřazení.

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

Přidání přiřazení pro všechny další uživatele, kteří by měli mít přístup k aplikaci

Tento skript ukazuje použití rutin Prostředí Microsoft Graph PowerShell k přidání přiřazení pro další uživatele, aby měli přístup k aplikaci. Pokud nemáte žádné uživatele, kteří potřebují přístup, a nedostali byste ho automaticky, pokračujte v další části.

Tento skript předpokládá, že máte vstupní soubor CSV obsahující jeden sloupec, UserPrincipalNamekterý tyto uživatele přiřadí k přístupovém balíčku prostřednictvím zásad přímého přiřazení.

  1. Zadejte název vstupního souboru.

    $inputpath = "users.csv"
    
  2. Pokud se chcete vyhnout vytváření duplicitních přiřazení, načtěte všechna existující přiřazení k přístupovém balíčku.

    $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. Vytvořte nová přiřazení.

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

Přidání zásady do přístupových balíčků pro automatické přiřazení

Pokud zásady vaší organizace pro uživatele, kterým je možné přiřadit přístup k aplikaci, zahrnují pravidlo založené na atributech uživatele, které se přiřazují a odebírají automaticky na základě těchto atributů, můžete to vyjádřit pomocí zásady automatického přiřazení. Přístupový balíček může mít maximálně jednu zásadu automatického přiřazení. Pokud nemáte požadavek na automatické přiřazení, pokračujte v další části.

  1. Zadejte výraz filtru automatického přiřazení, který mají uživatelé obdržet přiřazení. Změňte hodnotu autoAssignmentPolicyFilter tak, aby byla filtrem pro uživatele ve vašem ID Microsoft Entra, které jsou v oboru. Syntaxe a povolené atributy jsou uvedeny v pravidlech pro dynamické skupiny členství v Microsoft Entra ID.

    $autoAssignmentPolicyFilter = '(user.city -eq "Redmond")'
    
  2. Pomocí PowerShellu vytvořte v přístupovém balíčku zásady automatického přiřazení.

    $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
    

Vytvoření dalších zásad, které uživatelům umožní požádat o přístup

Pokud uživatelé, kteří ještě nemají přístup k žádosti o přiřazení k aplikaci, můžete také nakonfigurovat zásady přiřazení přístupového balíčku tak, aby uživatelům umožňovaly požádat o přístupový balíček. Do přístupového balíčku můžete přidat další zásady a v každé zásadě určete, kteří uživatelé můžou požádat a kdo musí schválit. Pokud chcete mít přístup přiřazený jenom uživatelům automaticky nebo správcem, pokračujte v další části.

Další příklady najdete v tématu Vytvoření zásady přiřazení prostřednictvím PowerShellu, přístupuPackageAssignmentPolicy a Vytvoření zásady přiřazení.

  1. Zadejte název, popis zásady a ID uživatele Microsoft Entra, který bude schvalovatelem.

    $policy3Name = "example policy"
    $policy3Description = "example of a policy for users to request assignment"
    $policy3ApproverSingleUserId = "1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5"
    
  2. Vytvořte zásadu.

    $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
    

Konfigurace úloh pracovních postupů životního cyklu

Pokud používáte pracovní postupy životního cyklu Microsoft Entra pro připojení zaměstnanců, přesuňte události opuštění, můžete do těchto pracovních postupů přidat nebo odebrat přiřazení k tomuto přístupového balíčku. Pokud pracovní postupy životního cyklu nepoužíváte, pokračujte v další části.

Tento příklad ukazuje, jak změnit pracovní postupy připojení a opustit události.

  1. joiner Načtěte pracovní postup kategorie a jeho úkoly pomocí příkazu Get-MgIdentityGovernanceLifecycleWorkflow.

  2. Přidejte úkol do seznamu úkolů v daném pracovním postupu.

    Zobrazovaný název úkolu taskDefinitionId argumenty
    Žádost o přiřazení balíčku pro přístup uživatele c1ec1e76-f374-4375-aaa6-0bb6bd4c60be name: assignmentPolicyId
    hodnota: ID zásady přiřazení, například hodnota od $directAssignmentPolicyId , pokud není požadováno schválení, pro přístupový balíček, který chcete přiřadit uživateli.

    name: accessPackageId
    value: ID přístupového balíčku , pro přístupový balíček, $accessPackageIdkterý chcete přiřadit uživateli.
  3. Vytvořte novou verzi pracovního postupu, včetně nové úlohy, pomocí příkazu New-MgIdentityGovernanceLifecycleWorkflowNewVersion .

  4. leaver Načtěte pracovní postup kategorie a jeho úkoly pomocí příkazu Get-MgIdentityGovernanceLifecycleWorkflow.

  5. Přidejte úkol do seznamu úkolů v daném pracovním postupu.

    Zobrazovaný název úkolu taskDefinitionId argumenty
    Odebrání přiřazení přístupového balíčku pro uživatele 4a0b64f2-c7ec-46ba-b117-18f262946c50 name: accessPackageId
    hodnota: Platné ID přístupového balíčku pro přístupový balíček, accessPackageId který chcete zrušit přiřazení od uživatele.
  6. Vytvořte novou verzi pracovního postupu, včetně nové úlohy, pomocí příkazu New-MgIdentityGovernanceLifecycleWorkflowNewVersion .

Správa přiřazení

Po vytvoření přístupových balíčků, zásad a počátečních přiřazení se uživatelům přiřadí přístup k roli aplikace.

Později můžete sledovat změny přiřazení nebo přidávat nebo odebírat přiřazení prostřednictvím kódu programu.

Načtení existujících přiřazení

Tento skript znázorňuje použití filtru k načtení přiřazení do přístupového balíčku, který je ve stavu Delivered. Skript vygeneruje soubor assignments.csv CSV se seznamem uživatelů, kteří mají přiřazení s jedním řádkem na každé přiřazení.

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

Odebrání přiřazení

Přiřazení uživatele můžete odebrat pomocí rutiny New-MgEntitlementManagementAssignmentRequest .

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

Další kroky