다음을 통해 공유


엔터프라이즈 애플리케이션에 부여된 권한 검토

이 문서에서는 Microsoft Entra 테넌트의 애플리케이션에 부여된 권한을 검토하는 방법을 알아봅니다. 악성 애플리케이션이나 필요한 것보다 더 많은 권한이 부여된 것을 검색하는 경우 권한을 검토해야 할 수 있습니다. Microsoft Graph API 및 기존 버전의 PowerShell을 사용하여 애플리케이션에 부여된 권한을 철회하는 방법을 알아봅니다.

이 문서의 단계는 사용자 또는 관리자 동의를 통해 Microsoft Entra 테넌트에 추가된 모든 애플리케이션에 적용됩니다. 애플리케이션에 동의하는 방법에 대한 자세한 내용은 사용자 및 관리자 동의를 참조하세요.

필수 조건

애플리케이션에 부여된 사용 권한을 검토하려면 다음이 필요합니다.

  • 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
  • 클라우드 애플리케이션 관리자와 애플리케이션 관리자 역할 중 하나.
  • 관리자가 아닌 서비스 주체 소유자는 새로 고침 토큰을 무효화할 수 있습니다.

Microsoft Entra 관리 센터에서 사용 권한 검토 및 철회

이 문서의 단계는 시작하는 포털에 따라 약간 다를 수도 있습니다.

Microsoft Entra 관리 센터에 액세스하여 앱에 부여된 권한을 확인할 수 있습니다. 관리자가 전체 조직에 대해 부여한 권한을 철회할 수 있으며 상황에 맞는 PowerShell 스크립트를 가져와 다른 작업을 수행할 수 있습니다.

철회 또는 삭제된 사용 권한을 복원하는 방법에 대한 자세한 내용은 애플리케이션에 부여된 복원 권한을 참조하세요.

전체 조직 또는 특정 사용자나 그룹에 대해 부여된 애플리케이션의 권한 부여를 검토하려면 다음을 수행합니다.

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.
  2. ID>애플리케이션>엔터프라이즈 애플리케이션>모든 애플리케이션으로 이동합니다.
  3. 액세스를 제한할 애플리케이션을 선택합니다.
  4. 권한 선택
  5. 전체 조직에 적용되는 권한을 보려면 관리자 동의 탭을 선택합니다. 특정 사용자 또는 그룹에 부여된 권한을 보려면 사용자 동의 탭을 선택합니다.
  6. 지정된 권한의 세부 정보를 보려면 목록에서 권한을 선택합니다. 권한 정보 창이 열립니다. 애플리케이션에 부여된 권한을 검토한 후 전체 조직에 대해 관리자가 부여한 권한을 철회할 수 있습니다.

    참고 항목

    포털을 사용하여 사용자 동의 탭에서 권한을 철회할 수 없습니다. Microsoft Graph API 호출 또는 PowerShell cmdlet을 사용하여 이러한 권한을 철회할 수 있습니다. 자세한 내용을 보려면 이 문서의 PowerShell 및 Microsoft Graph 탭으로 이동합니다.

관리자 동의 탭에서 권한을 철회하려면 다음 단계를 따릅니다.

  1. 관리자 동의 탭에서 권한 목록을 확인합니다.
  2. 철회하려는 권한을 선택한 다음 해당 권한에 대한 ... 컨트롤을 선택합니다. 관리자 동의를 철회하는 방법을 보여 주는 스크린샷.
  3. 권한 철회를 선택합니다.

Azure AD PowerShell을 사용하여 권한 검토 및 철회

다음 Azure AD PowerShell 스크립트를 사용하여 애플리케이션에 부여된 모든 사용 권한을 철회합니다. 최소한 클라우드 애플리케이션 관리자로 로그인해야 합니다.

Connect-AzureAD 

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-AzureADOAuth2PermissionGrant -All $true| Where-Object { $_.clientId -eq $sp.ObjectId }

# Remove all delegated permissions
$spOAuth2PermissionsGrants | ForEach-Object {
    Remove-AzureADOAuth2PermissionGrant -ObjectId $_.ObjectId
}

# Get all application permissions for the service principal
$spApplicationPermissions = Get-AzureADServiceAppRoleAssignedTo -ObjectId $sp.ObjectId -All $true | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }

# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
    Remove-AzureADServiceAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.objectId
}

Azure AD PowerShell을 사용하여 새로 고침 토큰 무효화

다음 스크립트를 사용하여 애플리케이션에 대한 사용자 또는 그룹의 appRoleAssignments를 제거합니다.

Connect-AzureAD

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

# Get Azure AD App role assignments using objectID of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true | Where-Object {$_.PrincipalType -eq "User"}

# Revoke refresh token for all users assigned to the application
$assignments | ForEach-Object {
    Revoke-AzureADUserAllRefreshToken -ObjectId $_.PrincipalId
}

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 Azure AD 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 탐색기에 로그인합니다.

다음 권한에 동의해야 합니다.

위임된 권한

다음 쿼리를 실행하여 애플리케이션에 부여된 위임된 권한을 검토합니다.

  1. 개체 ID를 사용하여 서비스 사용자를 가져옵니다.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
    

    예시:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
    
  2. 서비스 주체에 대한 모든 위임된 권한 가져오기

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
    
  3. oAuth2PermissionGrants ID를 사용하여 위임된 권한을 제거합니다.

    DELETE https://graph.microsoft.com/v1.0/oAuth2PermissionGrants/{id}
    

애플리케이션 권한

다음 쿼리를 실행하여 애플리케이션에 부여된 애플리케이션 권한을 검토합니다.

  1. 서비스 주체에 대한 모든 애플리케이션 권한 가져오기

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
    
  2. appRoleAssignment ID를 사용하여 애플리케이션 권한 제거

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Microsoft Graph를 사용하여 새로 고침 토큰 무효화

다음 쿼리를 실행하여 애플리케이션에 대한 사용자 또는 그룹의 appRoleAssignments를 제거합니다.

  1. objectID를 사용하여 서비스 사용자를 가져옵니다.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
    

    예시:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  2. 서비스 사용자의 objectID를 사용하여 Microsoft Entra 앱 역할 할당을 가져옵니다.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
    
  3. appRoleAssignment ID를 사용하여 애플리케이션에 할당된 사용자 및 그룹에 대한 새로 고침 토큰을 철회합니다.

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

참고 항목

현재 부여된 사용 권한을 취소하더라도 사용자는 애플리케이션의 요청된 권한에 다시 동의해야 합니다. 동적 동의를 통해 애플리케이션이 권한을 요청하는 것을 중단해야 합니다. 사용자 동의를 전부 차단하려면 사용자가 애플리케이션에 동의하는 방법 구성을 참조하세요.

고려할 기타 권한 부여

위임된 권한과 애플리케이션 권한만이 애플리케이션 및 사용자에게 보호된 리소스에 대한 액세스 권한을 허용하는 유일한 방법은 아닙니다. 관리자는 중요한 정보에 대한 액세스 권한을 허용할 수 있는 다른 권한 부여 시스템을 알고 있어야 합니다. Microsoft의 다양한 권한 부여 시스템의 예로는 Microsoft Entra 기본 제공 역할, Exchange RBACTeams 리소스별 동의가 있습니다.

다음 단계