엔터프라이즈 애플리케이션에 부여된 권한 검토
이 문서에서는 Microsoft Entra 테넌트의 애플리케이션에 부여된 권한을 검토하는 방법을 알아봅니다. 악성 애플리케이션이나 필요한 것보다 더 많은 권한이 부여된 것을 검색하는 경우 권한을 검토해야 할 수 있습니다. Microsoft Graph API 및 기존 버전의 PowerShell을 사용하여 애플리케이션에 부여된 권한을 철회하는 방법을 알아봅니다.
이 문서의 단계는 사용자 또는 관리자 동의를 통해 Microsoft Entra 테넌트에 추가된 모든 애플리케이션에 적용됩니다. 애플리케이션에 동의하는 방법에 대한 자세한 내용은 사용자 및 관리자 동의를 참조하세요.
필수 조건
애플리케이션에 부여된 사용 권한을 검토하려면 다음이 필요합니다.
- 활성 구독이 있는 Microsoft Entra 계정. 체험 계정을 만듭니다.
- 다음 역할 중 하나입니다.
- 클라우드 애플리케이션 관리자
- 애플리케이션 관리자.
- 관리자가 아닌 서비스 주체 소유자는 새로 고침 토큰을 무효화할 수 있습니다.
Microsoft Entra 관리 센터에서 사용 권한 검토 및 철회
Microsoft Entra 관리 센터에 액세스하여 앱에 부여된 권한을 확인할 수 있습니다. 관리자가 전체 조직에 대해 부여한 권한을 철회할 수 있으며 상황에 맞는 PowerShell 스크립트를 가져와 다른 작업을 수행할 수 있습니다.
철회 또는 삭제된 사용 권한을 복원하는 방법에 대한 자세한 내용은 애플리케이션에 부여된 복원 권한을 참조하세요.
전체 조직 또는 특정 사용자나 그룹에 대해 부여된 애플리케이션의 권한 부여를 검토하려면 다음을 수행합니다.
- 최소한 클라우드 애플리케이션 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
- ID>애플리케이션>엔터프라이즈 애플리케이션>모든 애플리케이션으로 이동합니다.
- 액세스를 제한할 애플리케이션을 선택합니다.
- 권한 선택
- 전체 조직에 적용되는 권한을 보려면 관리자 동의 탭을 선택합니다. 특정 사용자 또는 그룹에 부여된 권한을 보려면 사용자 동의 탭을 선택합니다.
- 지정된 권한의 세부 정보를 보려면 목록에서 권한을 선택합니다.
권한 정보 창이 열립니다.
애플리케이션에 부여된 권한을 검토한 후 전체 조직에 대해 관리자가 부여한 권한을 철회할 수 있습니다.
참고
포털을 사용하여 사용자 동의 탭에서 권한을 철회할 수 없습니다. Microsoft Graph API 호출 또는 PowerShell cmdlet을 사용하여 이러한 권한을 철회할 수 있습니다. 자세한 내용을 보려면 이 문서의 PowerShell 및 Microsoft Graph 탭으로 이동합니다.
관리자 동의 탭에서 권한을 철회하려면 다음 단계를 따릅니다.
- 관리자 동의 탭에서 권한 목록을 확인합니다.
- 철회하려는 권한을 선택한 다음 해당 권한에 대한 ... 컨트롤을 선택합니다.
- 권한 철회를 선택합니다.
Microsoft Entra PowerShell을 사용하여 사용 권한 검토 및 해지
다음 Microsoft Entra PowerShell 스크립트를 사용하여 애플리케이션에 부여된 모든 권한을 취소합니다. 최소한 클라우드 애플리케이션 관리자로 로그인해야 합니다.
Connect-Entra -scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$app_name = "<app-displayName>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-EntraOAuth2PermissionGrant -All | Where-Object { $_.clientId -eq $sp.ObjectId }
# Remove all delegated permissions granted to the service principal
$spOAuth2PermissionsGrants | ForEach-Object {
Remove-EntraOAuth2PermissionGrant -ObjectId $_.ObjectId
}
# Get all application permissions for the service principal
$spApplicationPermissions = Get-EntraServicePrincipalAppRoleAssignment -ObjectId $sp.ObjectId -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-EntraServicePrincipalAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.objectId
}
Microsoft Entra PowerShell을 사용하여 모든 사용자 및 그룹 할당 제거
다음 스크립트를 사용하여 애플리케이션에 대한 사용자 또는 그룹의 appRoleAssignments를 제거합니다.
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
$sp.ObjectId
# Get Microsoft Entra App role assignments using objectId of the Service Principal
$assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $sp.ObjectId -All $true
# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
if ($_.PrincipalType -eq "User") {
Remove-EntraUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
} elseif ($_.PrincipalType -eq "Group") {
Remove-EntraGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
}
}
Microsoft Graph PowerShell을 사용하여 사용 권한 검토 및 철회
다음 Microsoft Graph PowerShell 스크립트를 사용하여 애플리케이션에 부여된 모든 사용 권한을 철회합니다. 최소한 클라우드 애플리케이션 관리자로 로그인해야 합니다.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "<ServicePrincipal objectID>"
Example: Get-MgServicePrincipal -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222'
# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants= Get-MgOauth2PermissionGrant -All| Where-Object { $_.clientId -eq $sp.Id }
# Remove all delegated permissions
$spOauth2PermissionsGrants |ForEach-Object {
Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}
# Get all application permissions for the service principal
$spApplicationPermissions = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $Sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -AppRoleAssignmentId $_.Id
}
Microsoft Graph PowerShell을 사용하여 모든 사용자 및 그룹 할당 제거
다음 스크립트를 사용하여 애플리케이션에 대한 사용자 또는 그룹의 appRoleAssignments를 제거합니다.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "<ServicePrincipal objectID>"
Example: Get-MgServicePrincipal -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222'
# Get Microsoft Entra App role assignments using objectID of the Service Principal
$spApplicationPermissions = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalID $sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Revoke refresh token for all users assigned to the application
$spApplicationPermissions | ForEach-Object {
Remove-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $_.PrincipalId -AppRoleAssignmentId $_.Id
}
Microsoft Graph를 사용하여 사용 권한 검토 및 철회
권한을 검토하려면 클라우드 애플리케이션 관리자로 Graph 탐색기에 로그인합니다.
다음 권한에 동의해야 합니다.
Application.ReadWrite.All
, Directory.ReadWrite.All
, DelegatedPermissionGrant.ReadWrite.All
, AppRoleAssignment.ReadWrite.All
.
위임된 권한
다음 쿼리를 실행하여 애플리케이션에 부여된 위임된 권한을 검토합니다.
개체 ID를 사용하여 서비스 주체를 가져옵니다.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
예시:
GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
서비스 주체에 대한 모든 위임된 권한 가져오기
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
oAuth2PermissionGrants ID를 사용하여 위임된 권한을 제거합니다.
DELETE https://graph.microsoft.com/v1.0/oAuth2PermissionGrants/{id}
애플리케이션 권한
다음 쿼리를 실행하여 애플리케이션에 부여된 애플리케이션 권한을 검토합니다.
서비스 주체에 대한 모든 애플리케이션 권한 가져오기
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
appRoleAssignment ID를 사용하여 애플리케이션 권한 제거
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Microsoft Graph를 사용하여 모든 사용자 및 그룹 할당 제거
다음 쿼리를 실행하여 애플리케이션에 대한 사용자 또는 그룹의 appRoleAssignments를 제거합니다.
objectID를 사용하여 서비스 주체를 가져옵니다.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
예시:
GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
서비스 사용자의 objectID를 사용하여 Microsoft Entra 앱 역할 할당을 가져옵니다.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
appRoleAssignment ID를 사용하여 애플리케이션에 할당된 사용자 및 그룹에 대한 새로 고침 토큰을 철회합니다.
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
참고
현재 부여된 권한을 취소해도 사용자가 애플리케이션의 요청된 권한에 다시 동의할 수 없습니다. 동적 동의를 통해 애플리케이션이 권한을 요청하는 것을 중단해야 합니다. 사용자 동의를 전부 차단하려면 사용자가 애플리케이션에 동의하는 방법 구성을 참조하세요.
고려할 기타 권한 부여
위임된 권한과 애플리케이션 권한만이 애플리케이션 및 사용자에게 보호된 리소스에 대한 액세스 권한을 허용하는 유일한 방법은 아닙니다. 관리자는 중요한 정보에 대한 액세스 권한을 허용할 수 있는 다른 권한 부여 시스템을 알고 있어야 합니다. Microsoft의 다양한 권한 부여 시스템의 예로는 Microsoft Entra 기본 제공 역할, Exchange RBAC 및 Teams 리소스별 동의가 있습니다.