Comment supprimer les autorisations des applications dans Microsoft Entra

Vous disposez donc de toutes ces applications (applications d’entreprise et inscriptions d’applications) dans Microsoft Entra. Mais vous souhaitez révoquer les autorisations d'une application. Il est possible de supprimer les autorisations de consentement de l'administrateur des applications dans le centre d'administration Microsoft Entra, mais pas les autorisations de consentement de l'utilisateur. Dans cet article, vous apprendrez comment supprimer les autorisations d'administrateur et de consentement de l'utilisateur de l'application Microsoft Entra.

Rechercher les autorisations d'application dans Microsoft Entra

Examinons les autorisations de consentement de l'administrateur et de consentement de l'utilisateur pour une application dans Microsoft Entra :

  1. Connectez-vous àCentre d'administration Microsoft Entra
  2. DévelopperIdentité > Applications
  3. SélectionnerApplications d'entreprise (ou inscriptions d'applications)
  4. Cliquez surToutes les candidatures
  5. Sélectionnez leapplication
  1. Cliquez surAutorisations
  2. SélectionnerConsentement de l'administrateur
  3. SélectionnerRévoquer l'autorisation
  1. Cliquez sur leConsentement de l'utilisateurlanguette
  2. Il n'y a aucune option pourRévoquer l'autorisation

Nous pouvons donc révoquer les autorisations des applications lorsqu'elles sont accordées via le consentement de l'administrateur. Malheureusement, il est impossible de révoquer les autorisations lorsqu'elles sont accordées via le consentement de l'utilisateur dans le centre d'administration Microsoft Entra.

Dans l'étape suivante, nous passerons en revue les étapes et montrerons comment supprimer les autorisations d'administrateur et de consentement de l'utilisateur d'une application avec PowerShell.

Installer le module Microsoft Graph PowerShell

Démarrez Windows PowerShell en tant qu'administrateur et installez Microsoft Graph PowerShell.

Install-Module Microsoft.Graph -Force

Important:Mettez toujours à jour vers la dernière version du module Microsoft Graph PowerShell avant d’exécuter une applet de commande ou un script pour éviter les erreurs et les résultats incorrects.

Vous pouvez utiliser le script ci-dessous pour supprimer les deuxautorisations de consentement des utilisateurs et des administrateursde l'application.

Trouver l'applicationID d'objetdans l'onglet Présentation. Ensuite, collez-le dessusligne 4.

Connect-MgGraph -Scopes "User.ReadWrite.All", "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"

# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalId 453d37f9-20e5-4325-bc00-67d1581a0232

# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-MgServicePrincipalOauth2PermissionGrant -ServicePrincipalId $sp.Id -All

# Remove all delegated permissions
$spOAuth2PermissionsGrants | ForEach-Object {
    Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}

Retirez uniquement leautorisations de consentement de l'administrateurde l'application.

Trouver l'applicationID d'objetdans l'onglet Présentation. Ensuite, collez-le dessusligne 4.

Connect-MgGraph -Scopes "User.ReadWrite.All", "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"

# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalId 453d37f9-20e5-4325-bc00-67d1581a0232

# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-MgServicePrincipalOauth2PermissionGrant -ServicePrincipalId $sp.Id -All

# Remove only delegated permissions granted with admin consent
$spOAuth2PermissionsGrants | Where-Object { $_.ConsentType -eq "AllPrincipals" } | ForEach-Object {
    Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}

Retirez uniquement leautorisations de consentement de l'utilisateurde l'application.

Trouver l'applicationID d'objetdans l'onglet Présentation. Ensuite, collez-le dessusligne 4.

Connect-MgGraph -Scopes "User.ReadWrite.All", "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"

# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalId 453d37f9-20e5-4325-bc00-67d1581a0232

# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-MgServicePrincipalOauth2PermissionGrant -ServicePrincipalId $sp.Id -All

# Remove only delegated permissions granted with user consent
$spOAuth2PermissionsGrants | Where-Object { $_.ConsentType -ne "AllPrincipals" } | ForEach-Object {
    Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}

Examinons une meilleure façon de supprimer les autorisations des applications Microsoft Entra avec un script PowerShell.

Supprimer les autorisations de l'application Entra ID avec le script Powershell

Le script PowerShell constitue un excellent moyen de supprimer les autorisations de consentement des utilisateurs et des administrateurs.

Préparer le script PowerShell Remove-AppPermissions

Téléchargez et placez le script PowerShell Remove-AppPermissions.ps1 dansC:scriptsdossier.

Assurez-vous que le fichier est débloqué pour éviter les erreurs lors de l'exécution du script. Pour en savoir plus, consultez l'article Erreur non signée numériquement lors de l'exécution du script PowerShell.

Une autre option consiste à copier et coller le code ci-dessous dans le Bloc-notes. Donnez-lui le nomSupprimer-AppPermissions.ps1et placez-le dans leC:scriptsdossier.

<#
    .SYNOPSIS
    Remove-AppPermissions.ps1

    .DESCRIPTION
    Remove app permissions from a Microsoft Entra ID application in a tenant.

    .LINK
    www.alitajran.com/remove-permissions-applications/

    .NOTES
    Written by: ALI TAJRAN
    Website:    alitajran.com
    X:          x.com/alitajran
    LinkedIn:   linkedin.com/in/alitajran

    .CHANGELOG
    V1.00, 11/08/2023 - Initial version
    V1.10, 10/07/2024 - Cleaned up the code
#>

# Variables
$systemMessageColor = "cyan"
$processMessageColor = "green"
$errorMessageColor = "red"
$warningMessageColor = "yellow"

Write-Host "Script started" -ForegroundColor $systemMessageColor
Write-Host "Script to delete app permissions from an Entra ID application in a tenant" -ForegroundColor $systemMessageColor

Write-Host "Checking for Microsoft Graph PowerShell module" -ForegroundColor $processMessageColor
if (Get-Module -ListAvailable -Name Microsoft.Graph.Authentication) {
    Write-Host -ForegroundColor $processMessageColor "Microsoft Graph PowerShell module found"
}
else {
    Write-Host "Microsoft Graph PowerShell Module not installed. Please install and re-run the script" -ForegroundColor $warningMessageColor -BackgroundColor $errorMessageColor
    Write-Host "You can install the Microsoft Graph PowerShell module by:"
    Write-Host "1. Launching an elevated PowerShell console then,"
    Write-Host "2. Running the command, 'Install-Module -Name Microsoft.Graph'."
    Pause ## Pause to view error on screen
    exit 0 ## Terminate script
}

Connect-MgGraph -Scopes "User.ReadWrite.All", "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All" -NoWelcome

$results = Get-MgServicePrincipal -All | Select-Object Id, AppId, DisplayName | Sort-Object DisplayName | Out-GridView -PassThru -Title "Select Application (Multiple selections permitted)"
foreach ($result in $results) {
    # Loop through all selected options
    Write-Host "Commencing" $result.DisplayName -ForegroundColor $processMessageColor
    # Get Service Principal using objectId
    $sp = Get-MgServicePrincipal -All | Where-Object { $_.Id -eq $result.Id }
    # Menu selection for User or Admin consent types
    $consentType = [System.Collections.Generic.List[Object]]::new()
    $consentType.Add([PSCustomObject]@{ Name = "Admin consent"; Type = "allprincipals" })
    $consentType.Add([PSCustomObject]@{ Name = "User consent"; Type = "principal" })
    $consentSelects = $consentType | Out-GridView -PassThru -Title "Select Consent type (Multiple selections permitted)"

    foreach ($consentSelect in $consentSelects) {
        # Loop through all selected options
        Write-Host  "Commencing for" $consentSelect.Name -ForegroundColor $processMessageColor
        # Get all delegated permissions for the service principal
        $spOAuth2PermissionsGrants = Get-MgOauth2PermissionGrant -All | Where-Object { $_.clientId -eq $sp.Id }
        $info = $spOAuth2PermissionsGrants | Where-Object { $_.consentType -eq $consentSelect.Type }

        if ($info) {
            # If there are permissions set
            if ($consentSelect.Type -eq "principal") {
                # User consent
                $usernames = [System.Collections.Generic.List[Object]]::new()
                foreach ($item in $info) {
                    $usernames.Add((Get-MgUser -UserId $item.PrincipalId))
                }
                $selectUsers = $usernames | Select-Object Displayname, UserPrincipalName, Id | Sort-Object Displayname | Out-GridView -PassThru -Title "Select Consent type (Multiple selections permitted)"
                foreach ($selectUser in $selectUsers) {
                    # Loop through all selected options
                    $infoScopes = $info | Where-Object { $_.principalId -eq $selectUser.Id }
                    Write-Host $consentSelect.Name "permissions for user" $selectUser.Displayname -ForegroundColor $processMessageColor
                    foreach ($infoScope in $infoScopes) {
                        Write-Host "Resource ID =", $infoScope.ResourceId
                        $assignments = $infoScope.Scope -split " "
                        foreach ($assignment in $assignments) {
                            # Skip empty strings
                            if ($assignment -ne "") {
                                Write-Host "-", $assignment
                            }
                        }
                    }
                    Write-Host "Select items to remove" -ForegroundColor $processMessageColor
                    $removes = $infoScopes | Select-Object Scope, ResourceId, Id | Out-GridView -PassThru -Title "Select permissions to delete (Multiple selections permitted)"
                    foreach ($remove in $removes) {
                        Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $remove.Id
                        Write-Host "Removed consent for $($remove.Scope)" -ForegroundColor $warningMessageColor
                    }
                }
            }
            elseif ($consentSelect.Type -eq "allprincipals") {
                # Admin consent
                $infoScopes = $info | Where-Object { $_.principalId -eq $null }
                Write-Host $consentSelect.Name "permissions" -ForegroundColor $processMessageColor
                foreach ($infoScope in $infoScopes) {
                    Write-Host "Resource ID =", $infoScope.ResourceId
                    $assignments = $infoScope.Scope -split " "
                    foreach ($assignment in $assignments) {
                        # Skip empty strings
                        if ($assignment -ne "") {
                            Write-Host "-", $assignment
                        }
                    }
                }
                Write-Host "Select items to remove" -ForegroundColor $processMessageColor
                $removes = $infoScopes | Select-Object Scope, ResourceId, Id | Out-GridView -PassThru -Title "Select permissions to delete (Multiple selections permitted)"
                foreach ($remove in $removes) {
                    Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $remove.Id
                    Write-Host "Removed consent for $($remove.Scope)" -ForegroundColor $warningMessageColor
                }
            }
        }
        else {
            Write-Host "No" $consentSelect.Name "permissions found for" $results.DisplayName -ForegroundColor $warningMessageColor
        }
    }
}

Write-Host "Script Finished" -ForegroundColor $systemMessageColor

Exécuter le script PowerShell Remove-AppPermissions

Exécutez PowerShell en tant qu'administrateur et exécutez la commande ci-dessous pour démarrer le script PS Remove-AppPermissions.ps1.

C:Scripts.Remove-AppPermissions.ps1

Une fenêtre d'affichage en grille affichera la sortie dans un tableau interactif. Ce sont toutes les applications de votre locataire Microsoft Entra.

Sélectionnez leapplicationet cliquezD'ACCORD.

Dans notre exemple, nous sélectionnerons leApplication Outils de ligne de commande Microsoft Graph.

Sélectionnez le type de consentement. Plusieurs sélections sont autorisées.

Dans notre exemple, nous sélectionnerons à la fois le consentement de l'administrateur et le type de consentement de l'utilisateur.

Sélectionnez les utilisateurs dont vous souhaitez supprimer l'autorisation de l'application et cliquez sur OK.

Dans notre exemple, nous sélectionnerons les deux utilisateurs.

Note:Si un utilisateur dispose des autorisations de consentement d'administrateur et de consentement d'utilisateur, il vous le demandera deux fois à l'étape suivante. Vous pouvez donc décider si vous souhaitez uniquement supprimer le consentement de l'utilisateur, le consentement de l'administrateur ou les deux autorisations de l'utilisateur.

Il passera par les utilisateurs autorisés par l'administrateur que vous avez sélectionnés. Sélectionnez les autorisations à supprimer. Cliquez sur OK.

Il passera par les utilisateurs consentants que vous avez sélectionnés. Sélectionnez les autorisations à supprimer. Cliquez sur OK.

Dans notre exemple, nous n'avons qu'un seul utilisateur et nous le sélectionnons.

Le script PowerShell se termine et dans la sortie PowerShell, vous verrez les résultats.

Vérifier les autorisations dans l'application Entra

Accédez aux autorisations de l'application et confirmez que les autorisations de consentement de l'administrateur et les autorisations de l'utilisateur sont révoquées.

Voici à quoi ressemblent les autorisations accordées par l'administrateur :

Voici à quoi ressemblent les autorisations accordées par l'utilisateur :

C'est ça!

Conclusion

Vous avez appris à supprimer les autorisations des applications dans Microsoft Entra. Vous pouvez uniquement supprimer les autorisations de consentement de l'administrateur du centre d'administration Microsoft Entra. Pour révoquer les autorisations de consentement de l'administrateur et de l'utilisateur, il est préférable d'utiliser le script PowerShell Remove-AppPermissions.

Lecture recommandée :Comment trouver le dossier Applications sur Mac : 6 méthodes rapides

Avez-vous apprécié cet article ? Vous aimerez peut-être aussi Supprimer définitivement les utilisateurs de Microsoft 365. N'oubliez pas de nous suivre et de partager cet article.

Related Posts