Tworzenie pakietu dostępu w zarządzaniu upoważnieniami dla aplikacji z jedną rolą przy użyciu programu PowerShell
W rozwiązaniu Microsoft Entra entitlement management pakiet dostępu obejmuje zasady dotyczące sposobu uzyskiwania przypisań przez użytkowników dla co najmniej jednej roli zasobu. Zasoby mogą obejmować grupy, aplikacje i witryny usługi SharePoint Online.
W tym artykule opisano sposób tworzenia pakietu dostępu dla pojedynczej aplikacji z jedną rolą przy użyciu programu Microsoft Graph PowerShell. Ten scenariusz dotyczy głównie środowisk korzystających z zarządzania upoważnieniami w celu automatyzacji bieżącego dostępu dla określonej aplikacji biznesowej lub oprogramowania pośredniczącego. Organizacja, która ma wiele zasobów lub zasobów z wieloma rolami, może również modelować zasady dostępu za pomocą pakietów dostępu:
- Jeśli organizacja ma już istniejący model ról organizacji dla swoich ról biznesowych, może migrować ten model do Zarządzanie tożsamością Microsoft Entra i zarządzać dostępem za pomocą modelu roli organizacji.
- Jeśli organizacja ma aplikacje z wieloma rolami, może wdrożyć zasady organizacyjne na potrzeby zarządzania dostępem do aplikacji zintegrowanych z identyfikatorem Entra firmy Microsoft
- Aby uzyskać więcej informacji na temat tworzenia pakietów dostępu dla innych scenariuszy, zobacz samouczek: Zarządzanie dostępem do zasobów w zarządzaniu upoważnieniami i tworzenie pakietu dostępu w zarządzaniu upoważnieniami.
Wymagania wstępne
Korzystanie z tej funkcji wymaga licencji Zarządzanie tożsamością Microsoft Entra lub Microsoft Entra Suite. Aby znaleźć odpowiednią licencję dla wymagań, zobacz Zarządzanie tożsamością Microsoft Entra podstawy licencjonowania.
Przed rozpoczęciem tworzenia pakietu dostępu należy zintegrować aplikację z identyfikatorem Entra firmy Microsoft. Jeśli aplikacja nie jest jeszcze obecna w dzierżawie identyfikatora Entra firmy Microsoft, postępuj zgodnie z instrukcjami w tym artykule, aby utworzyć aplikację i jednostkę usługi dla obiektu. Upewnij się również, że dzierżawa identyfikatora Entra firmy Microsoft spełnia wymagania wstępne przed skonfigurowaniem identyfikatora Entra firmy Microsoft na potrzeby zarządzania tożsamościami.
Aby utworzyć pakiet dostępu i skojarzone z nim zasady i przypisania, musisz mieć gotowe następujące informacje:
Przypadek użycia | Ustawienie konfiguracji | Zmienna programu PowerShell |
---|---|---|
wszystkie | Nazwa aplikacji w dzierżawie microsoft Entra ID | $servicePrincipalName |
wszystkie | Nazwa roli aplikacji | $servicePrincipalRoleName |
wszystkie | Nazwa wykazu zawierającego pakiet dostępu | $catalogName |
wszystkie | Nazwa dająca pakiet dostępu | $accessPackageName |
wszystkie | Opis umożliwiający nadanie pakietowi dostępu | $accessPackageDescription |
Rozdzielenie wymagań dotyczących obowiązków z niezgodnym pakietem dostępu | identyfikator niezgodnego pakietu dostępu | $incompatibleAccessPackageId (jeśli jest to wymagane) |
Użytkownicy, którzy nie mają jeszcze przypisań i nie zostaną automatycznie przypisani | lista użytkowników | $inputpath (jeśli jest to wymagane) |
Użytkownicy z określonymi atrybutami automatycznie mają przypisania | wyrażenie zapytania dla użytkowników w zakresie | $autoAssignmentPolicyFilter (jeśli jest to wymagane) |
Zezwalaj użytkownikom, którzy nie mają przypisania, aby zażądać przypisania | zakres użytkowników, którzy mogą żądać, osoby zatwierdzające i okres przeglądu dostępu | zależy od wymagań |
Automatyzowanie tworzenia lub usuwania przypisań na podstawie sprzężenia lub opuszczania przepływów pracy w przepływach pracy cyklu życia | nazwy przepływów pracy, które dają i usuwają dostęp | zależy od wymagań |
Uwierzytelnianie w identyfikatorze Entra firmy Microsoft
W tej sekcji przedstawiono sposób interakcji z Zarządzanie tożsamością Microsoft Entra przy użyciu poleceń cmdlet programu PowerShell programu Microsoft Graph.
Przy pierwszym użyciu tych poleceń cmdlet w organizacji w tym scenariuszu musisz być w roli administratora globalnego, aby zezwolić programowi Microsoft Graph PowerShell na używanie go w dzierżawie. Kolejne interakcje mogą używać roli o niższych uprawnieniach, takich jak:
- Administrator ładu tożsamości.
Otwórz program PowerShell.
Jeśli nie masz już zainstalowanych modułów programu PowerShell programu Microsoft Graph, zainstaluj
Microsoft.Graph.Identity.Governance
moduł i inne za pomocą tego polecenia:Install-Module Microsoft.Graph
Jeśli masz już zainstalowane moduły, upewnij się, że używasz najnowszej wersji:
Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
Połącz się z identyfikatorem Entra firmy Microsoft:
$msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
Jeśli używasz tego polecenia po raz pierwszy, może być konieczne wyrażenie zgody na zezwolenie narzędziom wiersza polecenia programu Microsoft Graph na te uprawnienia.
Tworzenie wykazu w usłudze Microsoft Entra entitlement management
Domyślnie gdy administrator najpierw wchodzi w interakcję z zarządzaniem upoważnieniami, domyślny wykaz jest tworzony automatycznie. Jednak pakiety dostępu dla zarządzanych aplikacji powinny znajdować się w wyznaczonym wykazie.
Określ nazwę wykazu.
$catalogName = "Business applications"
Jeśli masz już katalog scenariusza zapewniania ładu aplikacji, przejdź do kroku 4 tej sekcji.
Jeśli nie masz jeszcze wykazu dla scenariusza zapewniania ładu aplikacji, utwórz wykaz.
$catalog = New-MgEntitlementManagementCatalog -DisplayName $catalogName
Wyszukaj identyfikator wykazu.
$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
Dodawanie aplikacji jako zasobu do wykazu
Po utworzeniu wykazu dodaj aplikację jako zasób w tym wykazie.
Określ nazwę aplikacji i nazwę roli aplikacji. Użyj nazwy aplikacji jako wartości
servicePrincipalName
.$servicePrincipalName = "SAP Cloud Identity Services" $servicePrincipalRoleName = "User"
Wyszukaj identyfikator jednostki usługi aplikacji.
$servicePrincipalFilter = "displayName eq '" + $applicationName + "'" $servicePrincipal = Get-MgServicePrincipal -Filter $servicePrincipalFilter -all if ($servicePrincipal -eq $null) { throw "service principal $servicePrincipalName not found" } $servicePrincipalId = $servicePrincipal.Id
Sprawdź, czy aplikacja jest już obecna w wykazie jako zasób. Jeśli jest już obecny, przejdź do kroku 6 tej sekcji.
$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"}
Dodaj jednostkę usługi aplikacji jako zasób do wykazu.
$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
Pobierz identyfikator i zakres zasobu w tym wykazie.
$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" }
Pobieranie ról aplikacji.
$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" }
Wybierz rolę, która zostanie uwzględniona w pakiecie dostępu.
$resourceRole = $null foreach ($r in $resourceRoles) { if ($r.DisplayName -eq $servicePrincipalRoleName) { $resourceRole = $r; break; } } if ($resourceRole -eq $null) { throw "role $servicePrincipalRoleName not located" }
Tworzenie pakietu dostępu dla aplikacji
Następnie użyjesz programu PowerShell, aby utworzyć pakiet dostępu w katalogu zawierającym rolę aplikacji.
Określ nazwę i opis pakietu dostępu.
$accessPackageName = "SAP Cloud Identity Services" $accessPackageDescription = "A user of SAP Cloud Identity Services" $accessPackageHidden = $true
Sprawdź, czy pakiet dostępu jeszcze nie istnieje.
foreach ($a in $catalog.AccessPackages) { if ($a.DisplayName -eq $accessPackageName) { throw "access package $accessPackageName already exists" } }
Utwórz pakiet dostępu.
$accessPackageParams = @{ displayName = $accessPackageName description = $accessPackageDescription isHidden = $accessPackageHidden catalog = @{ id = $catalog.id } } $accessPackage = New-MgEntitlementManagementAccessPackage -BodyParameter $accessPackageParams $accessPackageId = $accessPackage.Id
Dodawanie roli aplikacji do pakietu dostępu
Po utworzeniu pakietu dostępu połączysz rolę zasobu w katalogu z pakietem dostępu.
$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
Tworzenie zasad przypisywania pakietów dostępu do bezpośredniego przypisania
W tej sekcji utworzysz pierwsze zasady przypisywania pakietów dostępu w pakiecie dostępu, zasady przypisania pakietu dostępu do bezpośredniego przypisania, które mogą służyć do śledzenia użytkowników, którzy mają już dostęp do aplikacji. W przykładowych zasadach utworzonych w tej sekcji tylko administratorzy lub menedżerowie przypisań pakietów mogą przypisywać dostęp, użytkownicy zachowują dostęp na czas nieokreślony i nie ma zatwierdzeń ani przeglądów dostępu.
Utwórz zasady.
$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
Konfigurowanie rozdzielania ograniczeń obowiązków
Zarządzanie upoważnieniami firmy Microsoft Entra może wymusić rozdzielenie kontroli obowiązków , aby uniemożliwić użytkownikowi, który ma już istniejące przypisanie do innego wyznaczonego pakietu dostępu lub członkostwa wyznaczonej grupy, od żądania pakietu dostępu.
Jeśli nie masz separacji wymagań dotyczących obowiązków dla tej aplikacji, przejdź do następnej sekcji.
Jeśli masz rozdzielenie wymagań dotyczących obowiązków, skonfiguruj niezgodne pakiety dostępu lub istniejące grupy dla pakietu dostępu.
Dla każdego pakietu dostępu, który ma być oznaczony jako niezgodny z innym, można użyć programu PowerShell skonfigurować pakiety dostępu jako niezgodne.
Określ inny pakiet dostępu, który jest niezgodny z tym pakietem. Zmień wartość
incompatibleAccessPackageId
na identyfikator innego pakietu dostępu w usłudze Microsoft Entra entitlement management.$incompatibleAccessPackageId = "67cc7175-7a3d-4cb2-860f-4d9217ba96ca"
Utwórz niezgodne odwołanie w tym pakiecie dostępu.
$incompatible1params = @{ "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $incompatibleAccessPackageId } New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $accessPackageId -BodyParameter $incompatible1params
Utwórz niezgodne odwołanie w innym pakiecie dostępu.
$incompatible2params = @{ "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $accessPackageId } New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $incompatibleAccessPackageId -BodyParameter $incompatible2params
Powtórz dla innych pakietów dostępu.
Jeśli twój scenariusz wymaga możliwości zastąpienia kontroli rozdzielenia obowiązków, możesz również skonfigurować dodatkowe pakiety dostępu dla tych scenariuszy zastąpienia.
Dodawanie przypisań istniejących użytkowników, którzy mają już dostęp do aplikacji
Dodaj przypisania istniejących użytkowników, którzy mają już dostęp do aplikacji, do pakietu dostępu i zasad bezpośredniego przypisania. Możesz bezpośrednio przypisać każdego użytkownika do pakietu dostępu.
Pobierz istniejące przypisania ról aplikacji.
$existingAppRoleAssignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $servicePrincipalId -All)
Aby uniknąć tworzenia zduplikowanych przypisań, pobierz wszystkie istniejące przypisania do pakietu dostępu.
$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}
Utwórz nowe przypisania.
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" } }
Dodawanie przypisań dla wszystkich dodatkowych użytkowników, którzy powinni mieć dostęp do aplikacji
Ten skrypt ilustruje użycie poleceń cmdlet programu PowerShell programu Microsoft Graph w celu dodania przypisań dla dodatkowych użytkowników, aby mieli dostęp do aplikacji. Jeśli nie masz żadnych użytkowników, którzy potrzebują dostępu i nie otrzymasz go automatycznie, przejdź do następnej sekcji.
Ten skrypt zakłada, że masz wejściowy plik CSV zawierający jedną kolumnę , UserPrincipalName
aby przypisać tych użytkowników do pakietu dostępu za pośrednictwem zasad przypisania bezpośredniego.
Określ nazwę pliku wejściowego.
$inputpath = "users.csv"
Aby uniknąć tworzenia zduplikowanych przypisań, pobierz wszystkie istniejące przypisania do pakietu dostępu.
$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}
Utwórz nowe przypisania.
$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" } }
Dodawanie zasad do pakietów dostępu do automatycznego przypisania
Jeśli zasady organizacji, do których można przypisać dostęp do aplikacji, zawierają regułę opartą na atrybutach użytkownika w celu automatycznego przypisywania i usuwania dostępu na podstawie tych atrybutów, można to przedstawić przy użyciu zasad automatycznego przypisywania. Pakiet dostępu może mieć co najwyżej jedną zasadę automatycznego przypisania. Jeśli nie masz wymagania dotyczącego automatycznego przypisania, przejdź do następnej sekcji.
Określ wyrażenie filtru automatycznego przypisania dla użytkowników, aby otrzymywali przypisanie. Zmień wartość na
autoAssignmentPolicyFilter
filtr dla użytkowników w identyfikatorze Entra firmy Microsoft, które znajdują się w zakresie. Składnia i dozwolone atrybuty są udostępniane w regułach dla dynamicznych grup członkostwa w usłudze Microsoft Entra ID.$autoAssignmentPolicyFilter = '(user.city -eq "Redmond")'
Użyj programu PowerShell, aby utworzyć zasady automatycznego przypisania w pakiecie dostępu.
$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
Tworzenie dodatkowych zasad umożliwiających użytkownikom żądanie dostępu
Jeśli użytkownicy, którzy jeszcze nie mają dostępu, mogą żądać przypisania żądania do aplikacji, możesz również skonfigurować zasady przypisywania pakietów dostępu, aby umożliwić użytkownikom żądanie pakietu dostępu. Możesz dodać dodatkowe zasady do pakietu dostępu, a w poszczególnych zasadach określ, którzy użytkownicy mogą żądać i którzy muszą zatwierdzić. Jeśli chcesz automatycznie lub przez administratora mieć przypisany dostęp tylko do użytkowników, kontynuuj w następnej sekcji.
Aby uzyskać więcej przykładów, zobacz Tworzenie zasad przypisania za pomocą programu PowerShell, accessPackageAssignmentPolicy i Tworzenie przypisaniaZasady.
Określ nazwę, opis zasad i identyfikator użytkownika Firmy Microsoft Entra, który będzie osoba zatwierdzająca.
$policy3Name = "example policy" $policy3Description = "example of a policy for users to request assignment" $policy3ApproverSingleUserId = "1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5"
Utwórz zasady.
$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
Konfigurowanie zadań przepływów pracy cyklu życia
Jeśli używasz przepływów pracy cyklu życia entra firmy Microsoft do dołączania pracowników, przenieś zdarzenia urlopu, możesz również dodać zadania do tych przepływów pracy, aby dodać lub usunąć przypisania do tego pakietu dostępu. Jeśli nie używasz przepływów pracy cyklu życia, przejdź do następnej sekcji.
W tym przykładzie pokazano, jak wprowadzić zmianę w sprzężeniu i pozostawić przepływy pracy zdarzeń.
joiner
Pobierz przepływ pracy kategorii i jego zadania przy użyciu polecenia Get-MgIdentityGovernanceLifecycleWorkflow.Dodaj zadanie do listy zadań w tym przepływie pracy.
Nazwa wyświetlana zadania taskDefinitionId Argumenty Żądanie przypisania pakietu dostępu użytkowników c1ec1e76-f374-4375-aaa6-0bb6bd4c60be
nazwa: assignmentPolicyId
value: identyfikator zasad przypisania, taki jak wartość z$directAssignmentPolicyId
, jeśli nie jest wymagane zatwierdzenie, dla pakietu dostępu, który chcesz przypisać użytkownika.
nazwa:accessPackageId
wartość: identyfikator pakietu dostępu, , dla pakietu dostępu,$accessPackageId
który chcesz przypisać do użytkownika.Utwórz nową wersję przepływu pracy, w tym nowe zadanie, za pomocą polecenia New-MgIdentityGovernanceLifecycleWorkflowNewVersion .
leaver
Pobierz przepływ pracy kategorii i jego zadania przy użyciu polecenia Get-MgIdentityGovernanceLifecycleWorkflow.Dodaj zadanie do listy zadań w tym przepływie pracy.
Nazwa wyświetlana zadania taskDefinitionId Argumenty Usuwanie przypisania pakietu dostępu dla użytkownika 4a0b64f2-c7ec-46ba-b117-18f262946c50
nazwa: accessPackageId
wartość: prawidłowy identyfikator pakietu dostępu dla pakietu dostępu,accessPackageId
który chcesz cofnąć przypisania od użytkownika.Utwórz nową wersję przepływu pracy, w tym nowe zadanie, za pomocą polecenia New-MgIdentityGovernanceLifecycleWorkflowNewVersion .
Zarządzanie przypisaniami
Po utworzeniu pakietów dostępu, zasad i przypisań początkowych użytkownicy mają przypisany dostęp do roli aplikacji.
Później można monitorować zmiany przypisań lub programowo dodawać lub usuwać przypisania.
Pobieranie istniejących przypisań
Ten skrypt ilustruje użycie filtru w celu pobrania przypisań do pakietu dostępu, który jest w stanie Delivered
. Skrypt generuje plik assignments.csv
CSV z listą użytkowników, którzy mają przypisania, z jednym wierszem na przypisanie.
$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"
Usuwanie przypisania
Możesz usunąć przypisanie użytkownika za New-MgEntitlementManagementAssignmentRequest
pomocą polecenia 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
}