Delen via


De gebruikers beheren van een applicatie die geen ondersteuning biedt voor toewijzing - 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 identiteitsprovider en biedt ook geen ondersteuning voor voorziening.

Zie het artikel beheer de bestaande gebruikers van een toepassing voor meer informatie over deze eerste twee scenario's, waarbij de toepassing ondersteuning biedt voor het provisionen, of een LDAP-directory, een SQL-database, een SOAP- of REST-API heeft of afhankelijk is van Microsoft Entra ID als identiteitsprovider. 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 het scenario behandeld van een toepassing die Microsoft Entra ID niet als identiteitsprovider gebruikt en geen ondersteuning biedt voor provisioning.

Licentievereisten

Voor het gebruik van deze functie zijn Microsoft Entra ID-governance- of Microsoft Entra Suite-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 bevat AccessPackage een of meer resourcerollen, mogelijk van meerdere serviceprincipalen. AccessPackage heeft ook toewijzingen (Assignment) voor gebruikers van 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 in uw tenant een van de volgende licenties hebben:

    • 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 bevat, raadpleeg dan Bestaande gebruikers verzamelen uit een toepassing voor aanbevelingen hoe de gebruikersverzameling te extraheren.

Als de toepassing geen map of database heeft, moet u contact opnemen met de eigenaar van de toepassing en hen een lijst met gebruikers laten verstrekken. 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, vergelijkt u die gebruikers uit de gegevensopslag 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 met 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 Microsoft Entra ID-kenmerk userPrincipalName.

    $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, de database, of de map, kan het enkele minuten duren voordat dit script is voltooid. Als u in Microsoft Entra ID geen kenmerk hebt dat deze waarde bevat en u een contains of een andere filterexpressie moet gebruiken, moet u dit script aanpassen, evenals het script 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 de gegevensopslag van de toepassing konden worden gevonden als gebruikers in Microsoft Entra ID, moet u onderzoeken welke records niet overeenkwamen 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 niet gevonden konden worden in Microsoft Entra ID, of die niet actief waren en zich niet konden aanmelden, maar u hun toegang wilt laten beoordelen of hun attributen wilt bijwerken in SAP Cloud Identity Services, de database of de directory, moet u de toepassing bijwerken, de overeenkomende regel aanpassen of Microsoft Entra-gebruikers voor hen aanmaken. 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 het $azuread_match_attr_name noch mailNickname noch userPrincipalName 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 serviceprincipal.

    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 toepassingsrollen toegewezen hebben.

  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 applicatie 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

Om ervoor te zorgen dat Microsoft Entra ID de gebruikers in de applicatie overeenkomt met die in Microsoft Entra ID, moet u roltoewijzingen voor de applicatie 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 voorziening, 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-licenties 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.

Maak de beoordeling van de roltoewijzingen van de toepassing

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.

Haal de toewijzingen op die worden aangepast zodra de beoordelingen zijn afgerond.

  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