Share via


Erstellen eines Zugriffspakets in der Berechtigungsverwaltung für eine Anwendung mit einer einzelnen Rolle mit PowerShell

In der Microsoft Entra-Berechtigungsverwaltung enthält ein Zugriffspaket die Richtlinien dafür, wie Benutzer Zuweisungen für eine oder mehrere Ressourcenrollen erhalten können. Die Ressourcen können Gruppen, Anwendungen und SharePoint Online-Websites umfassen.

In diesem Artikel wird beschrieben, wie Sie mithilfe von Microsoft Graph PowerShell ein Zugriffspaket für eine einzelne Anwendung mit einer einzelnen Rolle erstellen. Dieses Szenario gilt in erster Linie für Umgebungen, die die Berechtigungsverwaltung zum Automatisieren des laufenden Zugriffs für eine bestimmte Geschäfts- oder Middleware-Anwendung verwenden. Eine Organisation mit mehreren Ressourcen oder Ressourcen mit mehreren Rollen kann ihre Zugriffsrichtlinien auch mit Zugriffspaketen modellieren:

Voraussetzungen

Die Nutzung dieser Funktion erfordert Microsoft Entra ID Governance Lizenzen. Die richtige Lizenz für Ihre Anforderungen finden Sie unter Microsoft Entra ID Governance-Lizenzierungsgrundlagen.

Bevor Sie mit dem Erstellen des Zugriffspakets beginnen, müssen Sie die Anwendung in Microsoft Entra ID integrieren. Wenn Ihre Anwendung noch nicht in Ihrem Microsoft Entra ID-Mandanten vorhanden ist, befolgen Sie die Anweisungen in diesem Artikel, um eine Anwendung und einen Dienstprinzipal für das Objekt zu erstellen. Stellen Sie außerdem sicher, dass Ihr Microsoft Entra ID-Mandant die Voraussetzungen für das Konfigurieren von Microsoft Entra ID für die Identitätsgovernance erfüllt.

Um das Zugriffspaket und die zugehörigen Richtlinien und Zuweisungen zu erstellen, benötigen Sie die folgenden Informationen:

Anwendungsfall Konfigurationseinstellung PowerShell-Variable
Alle Name der Anwendung in Ihrem Microsoft Entra-Mandanten $servicePrincipalName
Alle Name der Anwendungsrolle $servicePrincipalRoleName
Alle Der Name des Katalogs, der das Zugriffspaket enthält $catalogName
Alle Name, der dem Zugriffspaket zugewiesen werden soll $accessPackageName
Alle Beschreibung, die dem Zugriffspaket zugewiesen werden soll $accessPackageDescription
Anforderung für die Aufgabentrennung bei einem inkompatiblen Zugriffspaket ID des nicht kompatiblen Zugriffspakets $incompatibleAccessPackageId (falls erforderlich)
Benutzer, die noch keine Zuweisungen haben und nicht automatisch zugewiesen würden Liste der Benutzer $inputpath (falls erforderlich)
Benutzer mit bestimmten Attributen verfügen automatisch über Zuweisungen. Der Abfrageausdruck für die Benutzer im Bereich $autoAssignmentPolicyFilter (falls erforderlich)
Zulassen, dass Benutzer, die keine Zuweisung haben, eine Zuweisung anfordern Umfang der Benutzer, die Anforderungen senden können, die genehmigenden Personen und der Zugriffsüberprüfungszeitraum Abhängig von den Anforderungen
Automatisieren der Erstellung oder Entfernung von Zuweisungen basierend auf den Workflows zum Beitreten oder Verlassen in Lebenszyklus-Workflows Die Namen der Workflows, die Zugriff gewähren und entfernen Abhängig von den Anforderungen

Authentifizieren bei Microsoft Entra ID

In diesem Abschnitt wird gezeigt, wie Sie mithilfe von Microsoft Graph PowerShell-Cmdlets mit Microsoft Entra ID Governance interagieren.

Wenn Ihre Organisation diese Cmdlets zum ersten Mal für dieses Szenario verwendet, müssen Sie über die Rolle „Globaler Administrator“ verfügen, um die Verwendung von Microsoft Graph PowerShell in Ihrem Mandanten zuzulassen. Für nachfolgende Interaktionen können Rollen mit geringerem Berechtigungsumfang verwendet werden. Dazu zählen z. B.:

  1. Öffnen Sie PowerShell.

  2. Wenn die Microsoft Graph PowerShell-Module noch nicht installiert sind, installieren Sie das Microsoft.Graph.Identity.Governance-Modul und andere Module mit dem folgenden Befehl:

    Install-Module Microsoft.Graph
    

    Wenn die Module bereits installiert sind, stellen Sie sicher, dass Sie eine aktuelle Version verwenden:

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Herstellen einer Verbindung mit Microsoft Entra ID:

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Wenn Sie diesen Befehl zum ersten Mal verwendet haben, müssen Sie möglicherweise einwilligen, dass die Microsoft Graph-Befehlszeilentools über diese Berechtigungen verfügen.

Erstellen eines Katalogs in der Microsoft Entra-Berechtigungsverwaltung

Wenn ein Administrator zum ersten Mal mit der Berechtigungsverwaltung interagiert, wird standardmäßig automatisch ein Standardkatalog erstellt. Zugriffspakete für verwaltete Anwendungen sollten in einem designierten Katalog enthalten sein.

  1. Geben Sie den Namen des Katalogs an.

    $catalogName = "Business applications"
    
  2. Wenn Sie bereits über einen Katalog für Ihr Anwendungsgovernanceszenario verfügen, fahren Sie mit Schritt 4 dieses Abschnitts fort.

  3. Wenn Sie noch nicht über einen Katalog für Ihr Anwendungsgovernanceszenario verfügen, erstellen Sie einen Katalog.

    $catalog = New-MgEntitlementManagementCatalog -DisplayName $catalogName
    
  4. Suchen Sie die ID des Katalogs.

    $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
    

Hinzufügen der Anwendung als Ressource zum Katalog

Nachdem der Katalog erstellt wurde, fügen Sie die Anwendung als Ressource in diesem Katalog hinzu.

  1. Geben Sie den Namen der Anwendung und den Namen der Anwendungsrolle an. Verwenden Sie den Namen Ihrer Anwendung als Wert von servicePrincipalName.

    $servicePrincipalName = "SAP Cloud Identity Services"
    $servicePrincipalRoleName = "User"
    
  2. Suchen Sie nach der ID des Anwendungsdienstprinzipals.

    $servicePrincipalFilter = "displayName eq '" + $applicationName + "'"
    $servicePrincipal = Get-MgServicePrincipal -Filter $servicePrincipalFilter -all
    if ($servicePrincipal -eq $null) { throw "service principal $servicePrincipalName not found" }
    $servicePrincipalId = $servicePrincipal.Id
    
  3. Überprüfen Sie, ob die Anwendung bereits im Katalog als Ressource vorhanden ist. Wenn sie bereits vorhanden ist, fahren Sie mit Schritt 6 dieses Abschnitts fort.

    $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. Fügen Sie den Dienstprinzipal der Anwendung als Ressource zum Katalog hinzu.

    $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. Rufen Sie die ID und den Umfang der Ressource in diesem Katalog ab.

    $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. Rufen Sie die Rollen der Anwendung ab.

    $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. Wählen Sie die Rolle aus, die im Zugriffspaket enthalten sein soll.

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

Erstellen des Zugriffspakets für die Anwendung

Als Nächstes verwenden Sie PowerShell, um ein Zugriffspaket in einem Katalog zu erstellen, das die Rolle der Anwendung enthält.

  1. Geben Sie den Namen und die Beschreibung des Zugriffspakets an.

    $accessPackageName = "SAP Cloud Identity Services"
    $accessPackageDescription = "A user of SAP Cloud Identity Services"
    $accessPackageHidden = $true
    
  2. Stellen Sie sicher, dass das Zugriffspaket noch nicht vorhanden ist.

    foreach ($a in $catalog.AccessPackages) { if ($a.DisplayName -eq $accessPackageName) { throw "access package $accessPackageName already exists" } }
    
  3. Erstellen Sie das Zugriffspaket.

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

Hinzufügen der Anwendungsrolle zum Zugriffspaket

Nachdem Sie ein Zugriffspaket erstellt haben, verknüpfen Sie die Rolle der Ressource im Katalog mit dem Zugriffspaket.

$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

Erstellen von Zugriffspaketzuweisungsrichtlinien für die direkte Zuweisung

In diesem Abschnitt erstellen Sie die erste Richtlinie für die Zugriffspaketzuweisung im Zugriffspaket, eine Richtlinie für die Zugriffspaketzuweisung für die direkte Zuweisung, die verwendet werden kann, um die Benutzer nachzuverfolgen, die bereits Zugriff auf die Anwendung haben. In der in diesem Abschnitt erstellten Beispielrichtlinie können nur Administratoren oder Zugriffspaketzuweisungsmanager Zugriff zuweisen, Benutzer behalten den Zugriff unbegrenzt, und es gibt keine Genehmigungen oder Zugriffsüberprüfungen.

  1. Erstellen Sie eine Richtlinie.

    $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
    
    

Konfigurieren der Einschränkungen für die Aufgabentrennung

Mit der Microsoft Entra-Berechtigungsverwaltung können Überprüfungen für die Aufgabentrennung erzwungen werden, um zu verhindern, dass ein Benutzer, der bereits über eine Zuweisung zu einem anderen designierten Zugriffspaket oder eine Mitgliedschaft in einer designierten Gruppe verfügt, ein Zugriffspaket anfordern kann.

Wenn Sie keine Anforderungen für die Aufgabentrennung für diese Anwendung haben, fahren Sie mit dem nächsten Abschnitt fort.

Wenn Sie Anforderungen der Aufgabentrennung haben, konfigurieren Sie die inkompatiblen Zugriffspakete oder vorhandenen Gruppen für Ihr Zugriffspaket.

Für jedes Zugriffspaket, das als inkompatibel mit einem anderen markiert werden soll, können Sie PowerShell verwenden, um Zugriffspakete als inkompatibel zu konfigurieren.

  1. Geben Sie das andere Zugriffspaket an, das mit diesem Paket nicht kompatibel ist. Ändern Sie den Wert von incompatibleAccessPackageId in die ID eines anderen Zugriffspakets in der Microsoft Entra-Berechtigungsverwaltung.

    $incompatibleAccessPackageId = "67cc7175-7a3d-4cb2-860f-4d9217ba96ca"
    
  2. Erstellen Sie den Inkompatibilitätsverweis für dieses Zugriffspaket.

    $incompatible1params = @{
     "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $incompatibleAccessPackageId
    }
    New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $accessPackageId -BodyParameter $incompatible1params
    
  3. Erstellen Sie den Inkompatibilitätsverweis für das andere Zugriffspaket.

    $incompatible2params = @{
     "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $accessPackageId
    }
    New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $incompatibleAccessPackageId -BodyParameter $incompatible2params
    
  4. Wiederholen Sie diesen Vorgang für alle anderen Zugriffspakete.

  5. Wenn Ihr Szenario die Möglichkeit erfordert, eine Prüfung der Aufgabentrennung zu überschreiben, dann können Sie auch zusätzliche Zugriffspakete für diese Überschreibungsszenarien einrichten.

Hinzufügen von Zuweisungen vorhandener Benutzer, die bereits Zugriff auf die Anwendung haben

Fügen Sie dem Zugriffspaket und seinen Richtlinie für die direkte Zuweisung Zuweisungen bestehender Benutzer hinzu, die bereits Zugriff auf die Anwendung haben. Sie können jeden Benutzer direkt einem Zugriffspaket zuweisen.

  1. Rufen Sie die vorhandenen Anwendungsrollenzuweisungen ab.

    $existingAppRoleAssignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $servicePrincipalId -All)
    
  2. Um das Erstellen von doppelten Zuweisungen zu vermeiden, rufen Sie alle vorhandenen Zuweisungen zum Zugriffspaket ab.

    $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. Erstellen Sie neue Zuweisungen.

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

Hinzufügen zusätzlicher Benutzer, die Zugriff auf die Anwendung haben sollen

Dieses Skript veranschaulicht die Verwendung des Microsoft Graph-PowerShell Cmdlets zum Hinzufügen weiterer Benutzer zur Anwendung. Wenn Sie keine Benutzer haben, die Zugriff benötigen und diesen nicht automatisch erhalten würden, fahren Sie mit dem nächsten Abschnitt fort.

Bei diesem Skript wird davon ausgegangen, dass Sie über eine CSV-Eingabedatei verfügen, die eine Spalte (UserPrincipalName) enthält, um diese Benutzer über die Richtlinie für die direkte Zuweisung dem Zugriffspaket zuzuweisen.

  1. Geben Sie den Namen der Eingabedatei an.

    $inputpath = "users.csv"
    
  2. Um das Erstellen von doppelten Zuweisungen zu vermeiden, rufen Sie alle vorhandenen Zuweisungen zum Zugriffspaket ab.

    $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. Erstellen Sie neue Zuweisungen.

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

Hinzufügen einer Richtlinie zu den Zugriffspaketen für die automatische Zuweisung

Wenn die Richtlinie Ihrer Organisation dafür, wem Zugriff auf eine Anwendung zugewiesen werden kann, eine Regel enthält, die auf den Attributen des Benutzers basiert, um den Zugriff basierend auf diesen Attributen automatisch zuzuweisen und zu entfernen, können Sie dies mithilfe einer Richtlinie für die automatische Zuweisung darstellen. Ein Zugriffspaket kann höchstens über eine Richtlinie für die automatische Zuweisung verfügen. Wenn Sie keine automatische Zuweisung benötigen, fahren Sie mit dem nächsten Abschnitt fort.

  1. Geben Sie den Filterausdruck für die automatische Zuweisung an, damit Benutzer eine Zuweisung erhalten. Ändern Sie den Wert von autoAssignmentPolicyFilter in einen Filter für die Benutzer in Microsoft Entra ID, die sich im Bereich befinden. Die Syntax und zulässigen Attribute werden in den Regeln für eine dynamische Mitgliedschaft für Gruppen in Microsoft Entra ID bereitgestellt.

    $autoAssignmentPolicyFilter = '(user.city -eq "Redmond")'
    
  2. Verwenden Sie PowerShell, um eine Richtlinie für die automatische Zuweisung im Zugriffspaket zu erstellen.

    $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
    

Erstellen zusätzlicher Richtlinien, um Benutzern das Anfordern des Zugriffs zu ermöglichen

Wenn Benutzer, die noch nicht über Zugriff verfügen, die Möglichkeit haben sollen, eine Zuweisung zur Anwendung anzufordern, können Sie auch eine Zugriffspaketzuweisungsrichtlinie konfigurieren, damit Benutzer ein Zugriffspaket anfordern können. Sie können einem Zugriffspaket zusätzliche Richtlinien hinzufügen und in jeder Richtlinie angeben, welche Benutzer anfordern können und wer genehmigen muss. Wenn der Zugriff Benutzern nur automatisch oder von einem Administrator zugewiesen werden soll, fahren Sie mit dem nächsten Abschnitt fort.

Weitere Beispiele finden Sie in den Artikeln zum Erstellen einer Zuweisungsrichtlinie über PowerShell, accessPackageAssignmentPolicy und Erstellen eines assignmentPolicy-Objekts.

  1. Geben Sie den Namen, die Beschreibung der Richtlinie und die ID eines Microsoft Entra-Benutzers an, der die genehmigende Person ist.

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

    $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
    

Konfigurieren von Lebenszyklus-Workflowaufgaben

Wenn Sie Microsoft Entra-Lebenszyklus-Workflows für Beitritts-, Wechsel- und Austrittsereignisse von Mitarbeitern verwenden, können Sie diesen Workflows auch Aufgaben hinzufügen, um Zuweisungen zu diesem Zugriffspaket hinzuzufügen oder zu entfernen. Wenn Sie keine Lebenszyklus-Workflows verwenden, fahren Sie mit dem nächsten Abschnitt fort.

In diesem Beispiel wird veranschaulicht, wie Sie Änderungen an den Workflows für Beitritts- und Austrittsereignisse vornehmen.

  1. Rufen Sie den joiner-Kategorieworkflow und die zugehörigen Aufgaben mithilfe des Befehls Get-MgIdentityGovernanceLifecycleWorkflow ab.

  2. Fügen Sie eine Aufgabe zur Liste der Aufgaben in diesem Workflow hinzu.

    Anzeigename der Aufgabe taskDefinitionId Argumente
    Anfordern von Benutzerzugriffspaketzuweisung c1ec1e76-f374-4375-aaa6-0bb6bd4c60be name: assignmentPolicyId
    Wert: Die Zuweisungsrichtlinien-ID (z. B. der Wert aus $directAssignmentPolicyId, wenn keine Genehmigung erforderlich ist) für das Zugriffspaket, das Sie dem Benutzer zuweisen möchten.

    name: accessPackageId
    Wert: Die Zugriffspaket-ID ($accessPackageId) für das Zugriffspaket, das Sie dem Benutzer zuweisen möchten.
  3. Erstellen Sie eine neue Version des Workflows, einschließlich der neuen Aufgabe, mit dem Befehl New-MgIdentityGovernanceLifecycleWorkflowNewVersion.

  4. Rufen Sie den leaver-Kategorieworkflow und die zugehörigen Aufgaben mithilfe des Befehls Get-MgIdentityGovernanceLifecycleWorkflow ab.

  5. Fügen Sie eine Aufgabe zur Liste der Aufgaben in diesem Workflow hinzu.

    Anzeigename der Aufgabe taskDefinitionId Argumente
    Entfernen der Zugriffspaketzuweisung für Benutzer 4a0b64f2-c7ec-46ba-b117-18f262946c50 name: accessPackageId
    Wert: Eine gültige Zugriffspaket-ID (accessPackageId) für das Zugriffspaket, dessen Zuweisung Sie für den Benutzer aufheben möchten.
  6. Erstellen Sie eine neue Version des Workflows, einschließlich der neuen Aufgabe, mit dem Befehl New-MgIdentityGovernanceLifecycleWorkflowNewVersion.

Zuweisungen verwalten

Nachdem die Zugriffspakete, Richtlinien und anfänglichen Zuweisungen erstellt wurden, wird den Benutzern der Zugriff auf die Rolle der Anwendung zugewiesen.

Später können Sie auf Änderungen an den Zuweisungen überwachen oder Zuweisungen programmgesteuert hinzufügen oder entfernen.

Abrufen vorhandener Zuweisungen

Dieses Skript veranschaulicht die Verwendung eines Filters, um die Zuweisungen zum Zugriffspaket mit dem Status Delivered abzurufen. Das Skript generiert die CSV-Datei assignments.csv mit einer Liste von Benutzern, die Zuweisungen haben, mit einer Zeile pro Zuweisung.

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

Entfernen einer Zuweisung

Sie können die Zuweisung eines Benutzers mit dem Cmdlet New-MgEntitlementManagementAssignmentRequest entfernen.

$userId = "040a792f-4c5f-4395-902f-f0d9d192ab2c"
$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
}

Nächste Schritte