Udostępnij za pośrednictwem


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:

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:

  1. Otwórz program PowerShell.

  2. 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
    
  3. 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"
    
  4. 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.

  1. Określ nazwę wykazu.

    $catalogName = "Business applications"
    
  2. Jeśli masz już katalog scenariusza zapewniania ładu aplikacji, przejdź do kroku 4 tej sekcji.

  3. Jeśli nie masz jeszcze wykazu dla scenariusza zapewniania ładu aplikacji, utwórz wykaz.

    $catalog = New-MgEntitlementManagementCatalog -DisplayName $catalogName
    
  4. 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.

  1. Określ nazwę aplikacji i nazwę roli aplikacji. Użyj nazwy aplikacji jako wartości servicePrincipalName.

    $servicePrincipalName = "SAP Cloud Identity Services"
    $servicePrincipalRoleName = "User"
    
  2. 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
    
  3. 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"}
    
  4. 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
    
  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" }
    
  6. 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" }
    
  7. 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.

  1. Określ nazwę i opis pakietu dostępu.

    $accessPackageName = "SAP Cloud Identity Services"
    $accessPackageDescription = "A user of SAP Cloud Identity Services"
    $accessPackageHidden = $true
    
  2. Sprawdź, czy pakiet dostępu jeszcze nie istnieje.

    foreach ($a in $catalog.AccessPackages) { if ($a.DisplayName -eq $accessPackageName) { throw "access package $accessPackageName already exists" } }
    
  3. 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.

  1. 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.

  1. 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"
    
  2. 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
    
  3. 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
    
  4. Powtórz dla innych pakietów dostępu.

  5. 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.

  1. Pobierz istniejące przypisania ról aplikacji.

    $existingAppRoleAssignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $servicePrincipalId -All)
    
  2. 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}
    
  3. 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ę , UserPrincipalNameaby przypisać tych użytkowników do pakietu dostępu za pośrednictwem zasad przypisania bezpośredniego.

  1. Określ nazwę pliku wejściowego.

    $inputpath = "users.csv"
    
  2. 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}
    
  3. 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.

  1. 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")'
    
  2. 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.

  1. 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"
    
  2. 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ń.

  1. joiner Pobierz przepływ pracy kategorii i jego zadania przy użyciu polecenia Get-MgIdentityGovernanceLifecycleWorkflow.

  2. 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, $accessPackageIdktóry chcesz przypisać do użytkownika.
  3. Utwórz nową wersję przepływu pracy, w tym nowe zadanie, za pomocą polecenia New-MgIdentityGovernanceLifecycleWorkflowNewVersion .

  4. leaver Pobierz przepływ pracy kategorii i jego zadania przy użyciu polecenia Get-MgIdentityGovernanceLifecycleWorkflow.

  5. 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.
  6. 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
}

Następne kroki