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:
- Wenn die Organisation bereits über ein organisationsweites Rollenmodell für ihre Geschäftsrollen verfügt, kann dieses Modell zu Microsoft Entra ID Governance migriert werden, und der Zugriff kann mit einem Organisationsrollenmodell gesteuert werden.
- Wenn die Organisation über Anwendungen mit mehreren Rollen verfügt, kann sie Organisationsrichtlinien für die Steuerung des Zugriffs auf Anwendungen bereitstellen, die in Microsoft Entra ID integriert sind.
- Weitere Informationen zum Erstellen von Zugriffspaketen für andere Szenarien finden Sie im Tutorial: Verwalten des Zugriffs auf Ressourcen in der Berechtigungsverwaltung und unter Erstellen eines Zugriffspakets in der Berechtigungsverwaltung.
Voraussetzungen
Für die Verwendung dieses Features sind Microsoft Entra ID Governance- oder Microsoft Entra Suite-Lizenzen erforderlich. 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.:
Öffnen Sie PowerShell.
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
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"
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.
Geben Sie den Namen des Katalogs an.
$catalogName = "Business applications"
Wenn Sie bereits über einen Katalog für Ihr Anwendungsgovernanceszenario verfügen, fahren Sie mit Schritt 4 dieses Abschnitts fort.
Wenn Sie noch nicht über einen Katalog für Ihr Anwendungsgovernanceszenario verfügen, erstellen Sie einen Katalog.
$catalog = New-MgEntitlementManagementCatalog -DisplayName $catalogName
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.
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"
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
Ü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"}
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
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" }
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" }
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.
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
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" } }
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.
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.
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"
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
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
Wiederholen Sie diesen Vorgang für alle anderen Zugriffspakete.
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.
Rufen Sie die vorhandenen Anwendungsrollenzuweisungen ab.
$existingAppRoleAssignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $servicePrincipalId -All)
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}
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 von Zuweisungen für zusätzliche Benutzende, die Zugriff auf die Anwendung haben sollen
Dieses Skript veranschaulicht die Verwendung der PowerShell-Cmdlets von Microsoft Graph zum Hinzufügen von Zuweisungen für zusätzliche Benutzende, damit diese Zugriff auf die Anwendung erhalten. 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.
Geben Sie den Namen der Eingabedatei an.
$inputpath = "users.csv"
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}
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.
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 dynamische Mitgliedergruppen in Microsoft Entra ID bereitgestellt.$autoAssignmentPolicyFilter = '(user.city -eq "Redmond")'
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.
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"
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.
Rufen Sie den
joiner
-Kategorieworkflow und die zugehörigen Aufgaben mithilfe des Befehls Get-MgIdentityGovernanceLifecycleWorkflow ab.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.Erstellen Sie eine neue Version des Workflows, einschließlich der neuen Aufgabe, mit dem Befehl New-MgIdentityGovernanceLifecycleWorkflowNewVersion.
Rufen Sie den
leaver
-Kategorieworkflow und die zugehörigen Aufgaben mithilfe des Befehls Get-MgIdentityGovernanceLifecycleWorkflow ab.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.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 = "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
}