Microsoft Entra'daki uygulamalardan izinler nasıl kaldırılır
Yani tüm bu uygulamalara (Kurumsal uygulamalar ve Uygulama kayıtları) Microsoft Entra'da sahipsiniz. Ancak bir uygulamanın izinlerini iptal etmek istiyorsunuz. Microsoft Entra yönetim merkezindeki uygulamalardan yönetici izni izinlerini kaldırmak mümkündür ancak kullanıcı izni izinlerini kaldıramazsınız. Bu yazımızda Microsoft Entra uygulamasından yönetici ve kullanıcı izin izinlerinin nasıl kaldırılacağını öğreneceksiniz.
Microsoft Entra'da uygulama izinlerini bulun
Microsoft Entra'daki bir uygulama için yönetici izni ve kullanıcı izni izinlerine bakalım:
Microsoft Entra yönetim merkezinde oturum açın
Kimlik > Uygulamalar'ı genişletin
Kurumsal uygulamaları (veya Uygulama kayıtlarını) seçin
-
Tüm uygulamalar'ı tıklayın
Uygulamayı seçin
İzinler'i tıklayın
Yönetici izni'ni seçin
İzni İptal Et'i seçin
Kullanıcı izni sekmesini tıklayın
İzni İptal Et seçeneği yoktur
Böylece, yönetici izniyle verildiğinde uygulamalardaki izinleri iptal edebiliriz. Ne yazık ki, Microsoft Entra yönetim merkezinde kullanıcı onayı aracılığıyla verilen izinleri iptal etmek mümkün değildir.
Bir sonraki adımda adımları inceleyip PowerShell ile bir uygulamadan yönetici ve kullanıcı izin izinlerinin nasıl kaldırılacağını göstereceğiz.
Microsoft Graph PowerShell modülünü yükleyin
Windows PowerShell'i yönetici olarak başlatın ve Microsoft Graph PowerShell'i yükleyin.
Install-Module Microsoft.Graph -ForceInstall-Module Microsoft.Graph.Beta -AllowClobber -ForceÖnemli: Her zaman Microsoft Graph PowerShell ve Microsoft Graph Beta PowerShell modüllerini yükleyin. Bunun nedeni, bazı cmdlet'lerin henüz son sürümde mevcut olmaması ve çalışmayacak olmasıdır. Hataları ve yanlış sonuçları önlemek için bir cmdlet'i veya betiği çalıştırmadan önce her iki modülü de en son sürüme güncelleyin.
Uygulamadan hem kullanıcı hem de yönetici izin izinlerini kaldırın
Uygulamadan hem kullanıcı hem de yönetici izin izinlerini kaldırmak için aşağıdaki komut dosyasını kullanabilirsiniz.
Genel Bakış sekmesinde uygulama Nesne Kimliği'ni bulun. Daha sonra 4. satıra yapıştırın.
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
}Uygulamadan yönetici izni izinlerini kaldırın
Uygulamadan yalnızca yönetici izin izinlerini kaldırın.
Genel Bakış sekmesinde uygulama Nesne Kimliği'ni bulun. Daha sonra 4. satıra yapıştırın.
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
}Uygulamadan kullanıcı izni izinlerini kaldırın
Uygulamadan yalnızca kullanıcı izni izinlerini kaldırın.
Genel Bakış sekmesinde uygulamanın Nesne Kimliği'ni bulun. Daha sonra bunu 4. satıra yapıştırın.
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
}PowerShell betiğiyle Microsoft Entra uygulamalarının izinlerini kaldırmanın daha iyi bir yoluna bakalım.
Powershell betiğiyle Entra ID uygulama izinlerini kaldırın
Kullanıcı ve yönetici izin izinlerini kaldırmanın mükemmel bir yolu PowerShell betiğidir.
Remove-AppPermissions PowerShell betiğini hazırlayın
Remove-AppPermissions.ps1 PowerShell betiğini indirin ve C:\scripts klasörüne yerleştirin.
Komut dosyasını çalıştırırken hataları önlemek için dosyanın engellemesinin kaldırıldığından emin olun. PowerShell betiğini çalıştırırken dijital olarak imzalanmamış hata makalesinde daha fazlasını okuyun.
Diğer bir seçenek de aşağıdaki kodu kopyalayıp Not Defteri'ne yapıştırmaktır. Ona Remove-AppPermissions.ps1 adını verin ve C:\scripts klasörüne yerleştirin.
# Variables
$systemMessageColor = "cyan"
$processMessageColor = "green"
$errorMessageColor = "red"
$warningMessageColor = "yellow"
Write-Host -ForegroundColor $systemMessageColor "Script started`n"
Write-Host "--- Script to delete app permissions from an Entra ID application in a tenant ---"
Write-Host -ForegroundColor $processMessageColor "`nChecking for Microsoft Graph PowerShell module"
if (Get-Module -ListAvailable -Name Microsoft.Graph.Authentication) {
Write-Host -ForegroundColor $processMessageColor "Microsoft Graph PowerShell module found"
}
else {
Write-Host -ForegroundColor $warningMessageColor -BackgroundColor $errorMessageColor "Microsoft Graph PowerShell Module not installed. Please install and re-run the script`n"
Write-Host "You can install the Microsoft Graph PowerShell module by:`n"
Write-Host " 1. Launching an elevated PowerShell console then,"
Write-Host " 2. Running the command, 'Install-Module -Name Microsoft.Graph'.`n"
Pause ## Pause to view error on screen
exit 0 ## Terminate script
}
Connect-MgGraph -Scopes "User.ReadWrite.All", "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"
$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 -ForegroundColor $processMessageColor "Commencing", $result.DisplayName
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -All | Where-Object { $_.Id -eq $result.Id }
# Menu selection for User or Admin consent types
$consentType = @()
$consentType += [PSCustomObject]@{ Name = "Admin consent"; Type = "allprincipals" }
$consentType += [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 -ForegroundColor $processMessageColor "Commencing for", $consentSelect.Name
# 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 = @()
foreach ($item in $info) {
$usernames += 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 -ForegroundColor $processMessageColor "`n"$consentSelect.Name, "permissions for user", $selectUser.Displayname
foreach ($infoScope in $infoScopes) {
Write-Host "`nResource ID =", $infoScope.ResourceId
$assignments = $infoScope.Scope -split " "
foreach ($assignment in $assignments) {
Write-Host "-", $assignment
}
}
Write-Host -ForegroundColor $processMessageColor "`nSelect items to remove`n"
$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 -ForegroundColor $warningMessageColor "Removed consent for", $remove.Scope
}
}
}
elseif ($consentSelect.Type -eq "allprincipals") {
# Admin consent
$infoScopes = $info | Where-Object { $_.principalId -eq $null }
Write-Host -ForegroundColor $processMessageColor $consentSelect.Name, "permissions"
foreach ($infoScope in $infoScopes) {
Write-Host "`nResource ID =", $infoScope.ResourceId
$assignments = $infoScope.Scope -split " "
foreach ($assignment in $assignments) {
Write-Host "-", $assignment
}
}
Write-Host -ForegroundColor $processMessageColor "`nSelect items to remove`n"
$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 -ForegroundColor $warningMessageColor "Removed consent for", $remove.Scope
}
}
}
else {
Write-Host -ForegroundColor $warningMessageColor "`nNo", $consentSelect.Name, "permissions found for" , $results.DisplayName, "`n"
}
}
}
Write-Host -ForegroundColor $systemMessageColor "`nScript Finished"Remove-AppPermissions PowerShell betiğini çalıştırın
PowerShell'i yönetici olarak çalıştırın ve Remove-AppPermissions.ps1 PS betiğini başlatmak için aşağıdaki komutu çalıştırın.
C:\Scripts\.\Remove-AppPermissions.ps1Izgara görünümü penceresi, çıktıyı etkileşimli bir tabloda görüntüleyecektir. Bunların tümü Microsoft Entra kiracınızdaki uygulamalardır.
Uygulamayı seçin ve Tamam'ı tıklayın.
Örneğimizde Microsoft Graph Komut Satırı Araçları uygulamasını seçeceğiz.
İzin türünü seçin. Çoklu seçime izin verilir.
Örneğimizde hem Yönetici izni hem de Kullanıcı izni türünü seçeceğiz.
Uygulamadan iznini kaldırmak istediğiniz kullanıcıları seçin ve Tamam'a tıklayın.
Örneğimizde her iki kullanıcıyı da seçeceğiz.
Not: Bir kullanıcının yönetici onayı ve kullanıcı izni izinleri varsa, bir sonraki adımda sizden iki kez bilgi ister. Böylece, kullanıcının yalnızca kullanıcı iznini mi, yönetici iznini mi yoksa her iki iznini mi kaldırmak istediğinize karar verebilirsiniz.
Seçtiğiniz yöneticinin izin verdiği kullanıcılar üzerinden geçecektir. Silinecek izinleri seçin. Tamam'ı tıklayın.
Seçtiğiniz kullanıcının izin verdiği kullanıcılar üzerinden geçecektir. Silinecek izinleri seçin. Tamam'ı tıklayın.
Örneğimizde sadece 1 kullanıcımız var ve onu seçiyoruz.
PowerShell betiği tamamlanır ve çıktıda sonuçları göreceksiniz.
Görünen bu.
Script started
--- Script to delete app permissions from an Entra ID application in a tenant ---
Checking for Microsoft Graph PowerShell module
Microsoft Graph PowerShell module found
Welcome to Microsoft Graph!
Connected via delegated access using 12d82ffa-202b-4c2f-a7e8-296a70dab67e
Readme: https://aka.ms/graph/sdk/powershell
SDK Docs: https://aka.ms/graph/sdk/powershell/docs
API Docs: https://aka.ms/graph/docs
NOTE: You can use the -NoWelcome parameter to suppress this message.
Commencing Microsoft Graph Command Line Tools
Commencing for User consent
User consent permissions for user Admin 2
Resource ID = 73d0154b-e490-44fe-9447-fa47ec7fdd7f
-
- User.Read.All
- Group.ReadWrite.All
- Application.ReadWrite.All
- DelegatedPermissionGrant.ReadWrite.All
- openid
- profile
- offline_access
Select items to remove
Removed consent for User.Read.All Group.ReadWrite.All Application.ReadWrite.All DelegatedPermissionGrant.ReadWrite.All openid profile offline_access
User consent permissions for user Admin Tajran
Resource ID = 73d0154b-e490-44fe-9447-fa47ec7fdd7f
-
- User.Read.All
- Group.ReadWrite.All
- Application.ReadWrite.All
- DelegatedPermissionGrant.ReadWrite.All
- openid
- profile
- offline_access
Select items to remove
Removed consent for User.Read.All Group.ReadWrite.All Application.ReadWrite.All DelegatedPermissionGrant.ReadWrite.All openid profile offline_access
Commencing for Admin consent
Admin consent permissions
Resource ID = 73d0154b-e490-44fe-9447-fa47ec7fdd7f
- User.Read
Select items to remove
Removed consent for User.Read
Script FinishedEntra uygulamasındaki izinleri doğrulayın
Uygulama izinlerine gidin ve yönetici izni izinlerinin ve kullanıcının izin verdiği izinlerin iptal edildiğini doğrulayın.
Yöneticinin izin verdiği izinler şu şekilde görünür:
Kullanıcının izin verdiği izinler şu şekilde görünür:
Bu kadar!
Devamını oku: PowerShell ile CSV'den Microsoft Entra ID Kullanıcıları Oluşturun »
Çözüm
Microsoft Entra'daki uygulamalardan izinlerin nasıl kaldırılacağını öğrendiniz. Yönetici izni izinlerini yalnızca Microsoft Entra yönetim merkezinden kaldırabilirsiniz. Hem yönetici hem de kullanıcı izin izinlerini iptal etmek için Remove-AppPermissions PowerShell betiğini kullanmak en iyisidir.
Bu makaleyi beğendiniz mi? Ayrıca Microsoft 365'teki kullanıcıları kalıcı olarak silmek de hoşunuza gidebilir. Bizi takip etmeyi ve bu makaleyi paylaşmayı unutmayın.










