Share via


De gebruikers van een toepassing beheren die geen ondersteuning biedt voor inrichting - Microsoft PowerShell

Er zijn drie veelvoorkomende scenario's waarin microsoft Entra-id moet worden gevuld met bestaande gebruikers van een toepassing voordat u de toepassing gebruikt met een Microsoft Entra ID-governance functie, zoals toegangsbeoordelingen.

  • Toepassing gemigreerd naar Microsoft Entra-id na gebruik van een eigen id-provider
  • Toepassing die geen Microsoft Entra-id gebruikt als enige id-provider
  • De toepassing maakt geen gebruik van Microsoft Entra-id als id-provider en biedt ook geen ondersteuning voor inrichting

Zie het artikel over bestaande gebruikers van een toepassing voor meer informatie over deze eerste twee scenario's, waarbij de toepassing ondersteuning biedt voor het inrichten, of een LDAP-directory, EEN SQL-database, een SOAP- of REST API heeft of afhankelijk is van Microsoft Entra ID als id-provider. In dit artikel wordt beschreven hoe u identiteitsbeheerfuncties gebruikt voor bestaande gebruikers van deze categorieën toepassingen.

In dit artikel wordt het derde scenario behandeld. Voor sommige oudere toepassingen is het mogelijk niet haalbaar om andere id-providers of lokale referentieverificatie uit de toepassing te verwijderen of ondersteuning in te schakelen voor het inrichten van protocollen voor deze toepassingen. Als u voor deze toepassingen Microsoft Entra-id wilt gebruiken om te controleren wie toegang heeft tot die toepassing of om iemands toegang te verwijderen uit die toepassing, moet u toewijzingen maken in Microsoft Entra ID die toepassingsgebruikers vertegenwoordigen. In dit artikel wordt dat scenario behandeld van een toepassing die geen Microsoft Entra-id als id-provider gebruikt en geen ondersteuning biedt voor inrichting.

Licentievereisten

Voor het gebruik van deze functie zijn Microsoft Entra ID-governance licenties vereist. Zie Microsoft Entra ID-governance basisprincipes van licenties om de juiste licentie voor uw vereisten te vinden.

Terminologie

Dit artikel illustreert het proces voor het beheren van toepassingsroltoewijzingen met behulp van de Microsoft Graph PowerShell-cmdlets. Hierbij wordt gebruikgemaakt van de volgende Microsoft Graph-terminologie.

Diagram dat Microsoft Graph-terminologie illustreert.

In Microsoft Entra-id vertegenwoordigt een service-principal (ServicePrincipal) een toepassing in de adreslijst van een bepaalde organisatie. ServicePrincipal heeft een eigenschap genaamd AppRoles die de rollen bevat die door een toepassing worden ondersteund, zoals Marketing specialist. AppRoleAssignment koppelt een gebruiker aan een service-principal en geeft aan welke rol die gebruiker heeft in die toepassing.

U kunt ook Microsoft Entra-toegangspakketten voor rechtenbeheer gebruiken om gebruikers tijdgebonden toegang te geven tot de toepassing. In rechtenbeheer AccessPackage bevat een of meer resourcerollen, mogelijk van meerdere service-principals. AccessPackage heeft ook toewijzingen (Assignment) voor gebruikers aan het toegangspakket.

Wanneer u een toewijzing voor een gebruiker voor een toegangspakket maakt, maakt Microsoft Entra-rechtenbeheer automatisch de benodigde AppRoleAssignment exemplaren voor de gebruiker voor elke toepassing. Zie de zelfstudie Toegang tot resources beheren in Microsoft Entra-rechtenbeheer voor meer informatie over het maken van toegangspakketten via PowerShell.

Voordat u begint

  • U moet een van de volgende licenties hebben in uw tenant:

    • Microsoft Entra ID P2 of Microsoft Entra ID-governance
    • Enterprise Mobility + Security E5-licentie
  • U moet een geschikte beheerdersrol hebben. Als dit de eerste keer is dat u deze stappen uitvoert, hebt u de rol Globale beheerder nodig om het gebruik van Microsoft Graph PowerShell te autoriseren in uw tenant.

  • Uw toepassing heeft een service-principal in uw tenant nodig. Als er nog geen service-principal bestaat, kunt u een toepassing registreren die deze vertegenwoordigt in Microsoft Entra-id.

Bestaande gebruikers verzamelen uit een toepassing

De eerste stap om ervoor te zorgen dat alle gebruikers worden vastgelegd in Microsoft Entra ID, is het verzamelen van de lijst met bestaande gebruikers die toegang hebben tot de toepassing.

Sommige toepassingen hebben mogelijk een ingebouwde opdracht om een lijst van huidige gebruikers te exporteren uit het gegevensarchief. In andere gevallen kan de toepassing afhankelijk zijn van een externe directory of database.

In sommige omgevingen bevindt de toepassing zich mogelijk in een netwerksegment of systeem dat niet geschikt is voor het beheren van toegang tot Microsoft Entra-id. U moet dus mogelijk de lijst met gebruikers uit die toepassing, map of database extraheren en deze vervolgens overdragen als een bestand naar een ander systeem dat kan worden gebruikt voor Microsoft Entra-interacties.

Als uw toepassing een LDAP-directory of SQL-database heeft, raadpleegt u Bestaande gebruikers verzamelen uit een toepassing voor aanbevelingen over het extraheren van de gebruikersverzameling.

Als de toepassing geen map of database heeft, moet u contact opnemen met de eigenaar van de toepassing en een lijst met gebruikers opgeven. Dit kan een indeling hebben, zoals een CSV-bestand, met één regel per gebruiker. Zorg ervoor dat één veld van elke gebruiker in het bestand een unieke id bevat, zoals een e-mailadres, dat ook aanwezig is voor gebruikers in Microsoft Entra-id.

Als op dit systeem geen Microsoft Graph PowerShell-cmdlets zijn geïnstalleerd of als er geen verbinding is met Microsoft Entra-id, moet u het CSV-bestand met de lijst met gebruikers overdragen naar een systeem waarop de Microsoft Graph PowerShell-cmdlets zijn geïnstalleerd.

Controleer of Microsoft Entra ID gebruikers bevat die overeenkomen met gebruikers uit de toepassing

Nu u een lijst hebt met alle gebruikers die zijn verkregen uit de toepassing, komt u overeen met die gebruikers uit het gegevensarchief van de toepassing met gebruikers in Microsoft Entra-id.

De id's van de gebruikers in Microsoft Entra-id ophalen

In deze sectie wordt beschreven hoe u kunt communiceren met Microsoft Entra ID met behulp van Microsoft Graph PowerShell-cmdlets .

De eerste keer dat uw organisatie deze cmdlets gebruikt voor dit scenario, moet u de rol Globale beheerder hebben om Microsoft Graph PowerShell te kunnen gebruiken in uw tenant. Volgende interacties kunnen een rol met lagere bevoegdheden gebruiken, zoals:

  • Gebruikersbeheerder, als u verwacht nieuwe gebruikers te maken.
  • Toepassingsbeheerder of identiteitsbeheerbeheerder, als u alleen toepassingsroltoewijzingen beheert.
  1. Open PowerShell.

  2. Als u de Microsoft Graph PowerShell-modules nog niet hebt geïnstalleerd, installeer dan de module Microsoft.Graph.Users en andere met behulp van deze opdracht:

    Install-Module Microsoft.Graph
    

    Als u de modules al hebt geïnstalleerd, controleer dan of u een recente versie gebruikt:

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Verbinding maken naar Microsoft Entra-id:

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Als dit de eerste keer is dat u deze opdracht hebt gebruikt, moet u mogelijk toestemming geven voor de Microsoft Graph-opdrachtregelprogramma's om deze machtigingen te hebben.

  5. Lees de lijst van gebruikers verkregen uit het gegevensarchief van de toepassing in de PowerShell-sessie. Als de lijst van gebruikers zich in een CSV-bestand bevindt, kunt u de PowerShell-cmdlet Import-Csv gebruiken en de naam van het bestand uit de vorige sectie opgeven als argument.

    Als het bestand dat is verkregen uit SAP Cloud Identity Services bijvoorbeeld de naam Users-exported-from-sap.csv heeft en zich in de huidige map bevindt, voert u deze opdracht in.

    $filename = ".\Users-exported-from-sap.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    

    Als u een database of map gebruikt, voert u de volgende opdracht in als het bestand de naam users.csv heeft en zich in de huidige map bevindt:

    $filename = ".\users.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    
  6. Kies de kolom van het users.csv-bestand dat overeenkomt met een kenmerk van een gebruiker in Microsoft Entra-id.

    Als u SAP Cloud Identity Services gebruikt, is de standaardtoewijzing het SAP SCIM-kenmerk userName met het kenmerk userPrincipalNameMicrosoft Entra-id:

    $db_match_column_name = "userName"
    $azuread_match_attr_name = "userPrincipalName"
    

    Als u bijvoorbeeld een database of map gebruikt, hebt u mogelijk gebruikers in een database waarin de waarde in de kolom met de naam EMail dezelfde waarde heeft als in het kenmerk userPrincipalNameMicrosoft Entra:

    $db_match_column_name = "EMail"
    $azuread_match_attr_name = "userPrincipalName"
    
  7. Haal de id's van die gebruikers op in Microsoft Entra ID.

    Het volgende PowerShell-script gebruikt de eerder aangegeven waarden $dbusers, $db_match_column_name en $azuread_match_attr_name. Er wordt een query uitgevoerd op De Microsoft Entra-id om een gebruiker te zoeken die een kenmerk heeft met een overeenkomende waarde voor elke record in het bronbestand. Als er veel gebruikers zijn in het bestand dat is verkregen uit de bron-SAP Cloud Identity Services, -database of -map, kan het enkele minuten duren voordat dit script is voltooid. Als u geen kenmerk hebt in Microsoft Entra ID met de waarde en een contains of andere filterexpressie moet gebruiken, moet u dit script aanpassen en dat in stap 11 hieronder om een andere filterexpressie te gebruiken.

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    
  8. Bekijk de resultaten van de voorgaande query's. Kijk of een van de gebruikers in SAP Cloud Identity Services, de database of map zich niet in Microsoft Entra ID kan bevinden vanwege fouten of ontbrekende overeenkomsten.

    Het volgende PowerShell-script geeft de aantallen records weer die niet zijn gevonden:

    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Error "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    
  9. Wanneer het script is voltooid, wordt er een fout weergegeven als records uit de gegevensbron zich niet in Microsoft Entra-id bevinden. Als niet alle records voor gebruikers uit het gegevensarchief van de toepassing zich kunnen bevinden als gebruikers in Microsoft Entra ID, moet u onderzoeken welke records niet overeenkomen en waarom.

    Iemands e-mailadres en userPrincipalName zijn bijvoorbeeld gewijzigd in Microsoft Entra-id zonder dat de bijbehorende mail eigenschap wordt bijgewerkt in de gegevensbron van de toepassing. Of de gebruiker heeft de organisatie misschien al verlaten, maar is nog aanwezig in de gegevensbron van de toepassing. Of er is mogelijk een leverancier- of superbeheerdersaccount in de gegevensbron van de toepassing die niet overeenkomt met een specifieke persoon in Microsoft Entra-id.

  10. Als er gebruikers zijn die zich niet konden bevinden in Microsoft Entra-id of niet actief waren en zich konden aanmelden, maar u hun toegang wilt laten controleren of hun kenmerken bijgewerkt in SAP Cloud Identity Services, de database of map, moet u de toepassing, de overeenkomende regel bijwerken of Microsoft Entra-gebruikers voor hen maken. Zie toewijzingen en gebruikersaccounts beheren in toepassingen die niet overeenkomen met gebruikers in Microsoft Entra-id voor meer informatie over welke wijziging moet worden aangebracht.

    Als u de optie kiest om gebruikers te maken in Microsoft Entra ID, kunt u gebruikers bulksgewijs maken met behulp van:

    Zorg ervoor dat deze nieuwe gebruikers worden gevuld met de kenmerken die vereist zijn voor Microsoft Entra-id, zodat deze later overeenkomen met de bestaande gebruikers in de toepassing, en de kenmerken die zijn vereist voor Microsoft Entra-id, inclusief userPrincipalName, mailNickname en displayName. Deze userPrincipalName moet uniek zijn voor alle gebruikers in de directory.

    U hebt bijvoorbeeld gebruikers in een database waarin de waarde in de kolom met de naam EMail de waarde is die u wilt gebruiken als microsoft Entra user principal Name, de waarde in de kolom Alias bevat de e-mailnaam van Microsoft Entra ID en de waarde in de kolom Full name bevat de weergavenaam van de gebruiker:

    $db_display_name_column_name = "Full name"
    $db_user_principal_name_column_name = "Email"
    $db_mail_nickname_column_name = "Alias"
    

    Vervolgens kunt u dit script gebruiken om Microsoft Entra-gebruikers te maken voor gebruikers in SAP Cloud Identity Services, de database of directory die niet overeenkomen met gebruikers in Microsoft Entra ID. Houd er rekening mee dat u dit script mogelijk moet wijzigen om extra Microsoft Entra-kenmerken toe te voegen die nodig zijn in uw organisatie, of als dat niet mailNicknameuserPrincipalNamehet $azuread_match_attr_name enige is, om dat Microsoft Entra-kenmerk op te geven.

    $dbu_missing_columns_list = @()
    $dbu_creation_failed_list = @()
    foreach ($dbu in $dbu_not_matched_list) {
       if (($null -ne $dbu.$db_display_name_column_name -and $dbu.$db_display_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_user_principal_name_column_name -and $dbu.$db_user_principal_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_mail_nickname_column_name -and $dbu.$db_mail_nickname_column_name.Length -gt 0)) {
          $params = @{
             accountEnabled = $false
             displayName = $dbu.$db_display_name_column_name
             mailNickname = $dbu.$db_mail_nickname_column_name
             userPrincipalName = $dbu.$db_user_principal_name_column_name
             passwordProfile = @{
               Password = -join (((48..90) + (96..122)) * 16 | Get-Random -Count 16 | % {[char]$_})
             }
          }
          try {
            New-MgUser -BodyParameter $params
          } catch { $dbu_creation_failed_list += $dbu; throw }
       } else {
          $dbu_missing_columns_list += $dbu
       }
    }
    
  11. Nadat u ontbrekende gebruikers aan Microsoft Entra ID hebt toegevoegd, voert u het script opnieuw uit vanaf stap 7. Voer vervolgens het script uit vanaf stap 8. Controleer dat er geen fouten worden gerapporteerd.

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Warning "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count -ne 0) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    

Registreer de toepassing

Als de toepassing al is geregistreerd in Microsoft Entra ID, gaat u verder met de volgende stap.

Het account dat u gebruikt, moet gemachtigd zijn om toepassingen in Microsoft Entra-id te beheren. Een van de volgende Microsoft Entra-rollen omvat de vereiste machtigingen:

  1. Maak de toepassing en service-principal.

    Als de bedrijfstoepassing bijvoorbeeld CORPDB1 heet, voer dan de volgende opdrachten in:

    $azuread_app_name = "CORPDB1"
    $azuread_app = New-MgApplication -DisplayName $azuread_app_name
    $azuread_sp = New-MgServicePrincipal -DisplayName $azuread_app_name -AppId $azuread_app.AppId
    
  2. Voeg een rol toe aan de toepassing en tag de toepassing als geïntegreerd met Microsoft Entra ID, zodat de toewijzingen ervan kunnen worden gecontroleerd. Als de rolnaam bijvoorbeeld is General, geef die waarde dan op in de volgende PowerShell-opdrachten:

    $ar0 = New-Object Microsoft.Graph.PowerShell.Models.MicrosoftGraphAppRole
    $ar0.AllowedMemberTypes += "User"
    $ar0.Description = "General role"
    $ar0.DisplayName = "General"
    $ar0.id = New-Guid
    $ar0.IsEnabled = $true
    $ar0.Value = "General"
    $ara = @()
    $ara += $ar0
    
    $azuread_app_tags = @()
    $azuread_app_tags += "WindowsAzureActiveDirectoryIntegratedApp"
    
    $azuread_app_update = Update-MgApplication -ApplicationId $azuread_app.Id -AppRoles $ara -Tags $azuread_app_tags
    

Controleren op gebruikers die nog niet zijn toegewezen aan de toepassing

In de vorige stappen is bevestigd dat alle gebruikers in het gegevensarchief van de toepassing bestaan als gebruikers in Microsoft Entra-id. Mogelijk worden ze momenteel echter niet allemaal toegewezen aan de rollen van de toepassing in Microsoft Entra-id. De volgende stappen zijn dus om te zien welke gebruikers geen toewijzingen hebben aan toepassingsrollen.

  1. Zoek de service-principal-id op voor de service-principal van de toepassing.

    Als de bedrijfstoepassing bijvoorbeeld CORPDB1 heet, voer dan de volgende opdrachten in:

    $azuread_app_name = "CORPDB1"
    $azuread_sp_filter = "displayName eq '" + ($azuread_app_name -replace "'","''") + "'"
    $azuread_sp = Get-MgServicePrincipal -Filter $azuread_sp_filter -All
    
  2. Haal de gebruikers op die momenteel toewijzingen hebben aan de toepassing in Microsoft Entra-id.

    Dit bouwt voort op de $azuread_sp variabele die is ingesteld in de vorige opdracht.

    $azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  3. Vergelijk de lijst van gebruikers-id's uit de vorige sectie met de gebruikers die momenteel aan de toepassing zijn toegewezen:

    $azuread_not_in_role_list = @()
    foreach ($id in $azuread_match_id_list) {
       $found = $false
       foreach ($existing in $azuread_existing_assignments) {
          if ($existing.principalId -eq $id) {
             $found = $true; break;
          }
       }
       if ($found -eq $false) { $azuread_not_in_role_list += $id }
    }
    $azuread_not_in_role_count = $azuread_not_in_role_list.Count
    Write-Output "$azuread_not_in_role_count users in the application's data store are not assigned to the application roles."
    

    Als nul gebruikers niet zijn toegewezen aan toepassingsrollen, waarmee wordt aangegeven dat alle gebruikers wel zijn toegewezen aan toepassingsrollen, hoeft u geen verdere wijzigingen aan te brengen voordat u een toegangsbeoordeling uitvoert.

    Als een of meer gebruikers momenteel niet zijn toegewezen aan de toepassingsrollen, moet u de procedure voortzetten en ze toevoegen aan een van de rollen van de toepassing.

  4. Selecteer de rol van de toepassing waaraan de resterende gebruikers moeten worden toegewezen.

    Een toepassing kan meer dan één rol hebben. Gebruik deze opdracht om de beschikbare rollen weer te geven:

    $azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User"} | ft DisplayName,Id
    

    Selecteer de juiste rol in de lijst en haal de bijbehorende rol-id op. Als de rolnaam bijvoorbeeld is General, geef die waarde dan op in de volgende PowerShell-opdrachten:

    $azuread_app_role_name = "General"
    $azuread_app_role_id = ($azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User" -and $_.DisplayName -eq $azuread_app_role_name}).Id
    if ($null -eq $azuread_app_role_id) { write-error "role $azuread_app_role_name not located in application manifest"}
    

App-roltoewijzingen maken in Microsoft Entra-id

Als u wilt dat Microsoft Entra ID overeenkomt met de gebruikers in de toepassing met de gebruikers in Microsoft Entra ID, moet u toepassingsroltoewijzingen maken in Microsoft Entra-id.

Wanneer een toepassingsroltoewijzing wordt gemaakt in Microsoft Entra ID voor een gebruiker aan een toepassing en de toepassing geen ondersteuning biedt voor inrichting, dan

  • De gebruiker blijft voor onbepaalde tijd in de toepassing, tenzij deze buiten Microsoft Entra-id wordt bijgewerkt of totdat de toewijzing in Microsoft Entra-id wordt verwijderd.
  • Bij de volgende beoordeling van de roltoewijzingen van die toepassing wordt de gebruiker opgenomen in de beoordeling.
  • Als de gebruiker wordt geweigerd in een toegangsbeoordeling, wordt de toepassingsroltoewijzing verwijderd.
  1. Maak toepassingsroltoewijzingen voor gebruikers die momenteel geen roltoewijzingen hebben:

    foreach ($u in $azuread_not_in_role_list) {
       $res = New-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -AppRoleId $azuread_app_role_id -PrincipalId $u -ResourceId $azuread_sp.Id 
    }
    
  2. Wacht één minuut tot wijzigingen zijn doorgegeven in Microsoft Entra-id.

  3. Voer een query uit op de Microsoft Entra-id om de bijgewerkte lijst met roltoewijzingen te verkrijgen:

    $azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  4. Vergelijk de lijst van gebruikers-id's uit de vorige sectie met de gebruikers die momenteel aan de toepassing zijn toegewezen:

    $azuread_still_not_in_role_list = @()
    foreach ($id in $azuread_match_id_list) {
       $found = $false
       foreach ($existing in $azuread_existing_assignments) {
          if ($existing.principalId -eq $id) {
             $found = $true; break;
          }
       }
       if ($found -eq $false) { $azuread_still_not_in_role_list += $id }
    }
    $azuread_still_not_in_role_count = $azuread_still_not_in_role_list.Count
    if ($azuread_still_not_in_role_count -gt 0) {
       Write-Output "$azuread_still_not_in_role_count users in the application's data store are not assigned to the application roles."
    }
    

    Als er geen gebruikers zijn toegewezen aan toepassingsrollen, controleert u het Auditlogboek van Microsoft Entra op een fout uit een vorige stap.

De juiste revisoren selecteren

Wanneer u elke toegangsbeoordeling maakt, kunnen beheerders een of meer revisoren kiezen. De revisoren kunnen een beoordeling uitvoeren door gebruikers te kiezen voor continue toegang tot een resource of door ze te verwijderen.

Doorgaans is een resource-eigenaar verantwoordelijk voor het uitvoeren van een beoordeling. Als u een beoordeling van een groep maakt, als onderdeel van het controleren van de toegang voor een toepassing die is geïntegreerd in patroon B, kunt u de groepseigenaren selecteren als revisoren. Omdat toepassingen in Microsoft Entra-id niet noodzakelijkerwijs een eigenaar hebben, is de optie voor het selecteren van de eigenaar van de toepassing als revisor niet mogelijk. In plaats daarvan kunt u bij het maken van de beoordeling de namen van de toepassingseigenaren opgeven als revisoren.

U kunt er ook voor kiezen om bij het maken van een beoordeling van een groep of toepassing een beoordeling met meerdere fasen te maken. U kunt bijvoorbeeld de manager van elke toegewezen gebruiker de eerste fase van de beoordeling laten uitvoeren en de resource-eigenaar de tweede fase. Op die manier kan de resource-eigenaar zich richten op de gebruikers die al zijn goedgekeurd door hun manager.

Controleer voordat u de beoordelingen maakt of u voldoende Microsoft Entra ID P2 of Microsoft Entra ID-governance SKU-seats in uw tenant hebt. Controleer ook of alle revisoren actieve gebruikers zijn met e-mailadressen. Wanneer de toegangsbeoordelingen worden gestart, bekijken ze elk een e-mail van Microsoft Entra-id. Als de revisor geen postvak heeft, ontvangt deze geen e-mail wanneer de beoordeling wordt gestart of een e-mailherinnering. En als ze zijn geblokkeerd om zich aan te melden bij Microsoft Entra ID, kunnen ze de beoordeling niet uitvoeren.

De beoordeling van de roltoewijzingen van de toepassing maken

Zodra de gebruikers zich in de toepassingsrollen bevinden en u de revisoren hebt geïdentificeerd, kunt u Microsoft Entra-id configureren om een beoordeling te starten.

Volg de instructies in de handleiding voor het maken van een toegangsbeoordeling van groepen of toepassingen om de beoordeling van de roltoewijzingen van de toepassing te maken. Configureer de beoordeling om resultaten toe te passen wanneer deze is voltooid.

De toewijzingen ophalen die worden bijgewerkt wanneer de beoordelingen zijn voltooid

  1. Wanneer de beoordeling is voltooid, kunt u de bijgewerkte lijst met gebruikers met toepassingsroltoewijzingen ophalen.

    $res = (Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  2. De kolommen PrincipalDisplayName en PrincipalId bevatten de weergavenamen en Microsoft Entra-gebruikers-id's van elke gebruiker die een toepassingsroltoewijzing behoudt.

Integratie van rechtenbeheer configureren met ServiceNow voor ticketing (optioneel)

Als u ServiceNow hebt, kunt u desgewenst het maken van geautomatiseerde ServiceNow-tickets configureren met behulp van de integratie van rechtenbeheer via Logic Apps. In dat scenario kan rechtenbeheer automatisch ServiceNow-tickets maken voor het handmatig inrichten van gebruikers die toegangspakkettoewijzingen hebben ontvangen.

Volgende stappen