다음을 통해 공유


앱 동의 정책 관리

앱 동의 정책은 앱이 조직의 데이터에 액세스하는 데 필요한 권한을 관리하는 방법입니다. 이는 사용자가 동의할 수 있는 앱을 제어하고 앱이 데이터에 액세스하기 전에 특정 기준을 충족하는지 확인하는 데 사용됩니다. 이러한 정책은 조직이 데이터에 대한 제어권을 유지하고 신뢰할 수 있는 앱에만 액세스 권한을 부여하는 데 도움이 됩니다.

이 문서에서는 동의가 부여될 수 있는 시기를 제어하기 위해 기본 제공 및 사용자 지정 앱 동의 정책을 관리하는 방법을 알아봅니다.

Microsoft GraphMicrosoft Graph PowerShell을 사용하면 앱 동의 정책을 보고 관리할 수 있습니다.

앱 동의 정책은 하나 이상의 "포함" 조건 집합과 0개 이상의 "제외" 조건 집합으로 구성됩니다. 앱 동의 정책에서 이벤트를 고려하려면 이벤트가 하나 이상의 "포함" 조건 세트에 부합해야 하며 어떤 "제외" 조건 세트에도 부합하지 않아야 합니다.

각 조건 세트는 여러 조건으로 구성됩니다. 조건 세트에 부합하는 이벤트는 조건 세트의 ‘모든’ 조건에 부합해야 합니다.

ID가 ‘microsoft-’로 시작하는 앱 동의 정책은 기본 제공 정책입니다. 이러한 기본 제공 정책 중 일부는 기존 기본 제공 디렉터리 역할에 사용됩니다. 예를 들어 microsoft-application-admin 앱 동의 정책은 애플리케이션 관리자 및 클라우드 애플리케이션 관리자 역할이 테넌트 전체 관리자 동의를 제공할 수 있는 조건을 설명합니다. 기본 제공 정책은 사용자 지정 디렉터리 역할에서 사용하고 사용자 동의 설정을 구성하는 데 사용할 수 있지만 편집하거나 삭제할 수는 없습니다.

필수 조건

  • 다음 역할 중 하나를 가진 사용자 또는 서비스:
    • 권한 있는 역할 관리자 디렉터리 역할
    • 앱 동의 정책을 관리하는 데 필요한 권한이 있는 사용자 지정 디렉터리 역할
    • 앱 또는 서비스로 연결할 때 Microsoft Graph 앱 역할(애플리케이션 권한) Policy.ReadWrite.PermissionGrant

Microsoft Graph PowerShell을 사용하여 애플리케이션에 대한 앱 동의 정책을 관리하려면 Microsoft Graph PowerShell에 연결합니다.

Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"

조직의 기존 앱 동의 정책을 숙지하는 것이 좋습니다.

  1. 모든 앱 동의 정책을 나열합니다.

    Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
    
  2. 정책의 "포함" 조건 집합을 봅니다.

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    
  3. "제외" 조건 집합 보기:

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    

사용자 지정 앱 동의 정책을 만들려면 다음 단계를 따르세요.

  1. 비어 있는 새 앱 동의 정책을 만듭니다.

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-policy" `
        -DisplayName "My first custom consent policy" `
        -Description "This is a sample custom app consent policy."
    
  2. "포함" 조건 집합을 추가합니다.

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -PermissionClassification "low" `
        -ClientApplicationsFromVerifiedPublisherOnly
    

    "포함" 조건 집합을 더 추가하려면 이 단계를 반복합니다.

  3. 선택적으로 "제외" 조건 집합을 추가합니다.

    # Retrieve the service principal for the Azure Management API
    $azureApi = Get-MgServicePrincipal -Filter "servicePrincipalNames/any(n:n eq 'https://management.azure.com/')"
    
    # Exclude delegated permissions for the Azure Management API
    New-MgPolicyPermissionGrantPolicyExclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -ResourceApplication $azureApi.AppId
    

    "제외" 조건 집합을 더 추가하려면 이 단계를 반복합니다.

앱 동의 정책을 만든 후 Microsoft Entra ID의 사용자 지정 역할에 할당해야 합니다. 그런 다음 만든 앱 동의 정책에 연결된 해당 사용자 지정 역할에 사용자를 할당해야 합니다. 앱 동의 정책을 사용자 지정 역할에 할당하는 방법에 대한 자세한 내용은 사용자 지정 역할에 대한 앱 동의 권한을 참조하세요.

다음 cmdlet은 사용자 지정 앱 동의 정책을 삭제하는 방법을 보여 줍니다.

   Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"

앱 동의 정책을 관리하려면 필수 조건 섹션에 나열된 역할 중 하나로 Graph 탐색기에 로그인합니다.

Policy.ReadWrite.PermissionGrant 권한에 동의해야 합니다.

조직의 기존 앱 동의 정책을 숙지하는 것이 좋습니다.

  1. 모든 앱 동의 정책을 나열합니다.

    GET /policies/permissionGrantPolicies?$select=id,displayName,description
    
  2. 정책의 "포함" 조건 집합을 봅니다.

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
    
  3. "제외" 조건 집합 보기:

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
    

사용자 지정 앱 동의 정책을 만들려면 다음 단계를 따르세요.

  1. 비어 있는 새 앱 동의 정책을 만듭니다.

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies
    Content-Type: application/json
    
    {
      "id": "my-custom-policy",
      "displayName": "My first custom consent policy",
      "description": "This is a sample custom app consent policy"
    }
    
  2. "포함" 조건 집합을 추가합니다.

    확인된 게시자의 앱에 대해 "낮음"으로 분류된 위임된 권한을 포함합니다.

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "PermissionClassification": "low",
      "clientApplicationsFromVerifiedPublisherOnly": true
    }
    

    "포함" 조건 집합을 더 추가하려면 이 단계를 반복합니다.

  3. 선택적으로 "제외" 조건 집합을 추가합니다. Azure 관리 API에 대한 위임된 권한 제외(appId 00001111-aaaa-2222-bbbb-3333cccc4444)

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/my-custom-policy /excludes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "resourceApplication": "00001111-aaaa-2222-bbbb-3333cccc4444 "
    }
    

    "제외" 조건 집합을 더 추가하려면 이 단계를 반복합니다.

앱 동의 정책을 만든 후 Microsoft Entra ID의 사용자 지정 역할에 할당해야 합니다. 그런 다음 만든 앱 동의 정책에 연결된 해당 사용자 지정 역할에 사용자를 할당해야 합니다. 앱 동의 정책을 사용자 지정 역할에 할당하는 방법에 대한 자세한 내용은 사용자 지정 역할에 대한 앱 동의 권한을 참조하세요.

  1. 다음은 사용자 지정 앱 동의 정책을 삭제하는 방법을 보여줍니다.

    DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
    

Warning

삭제된 앱 동의 정책은 복원할 수 없습니다. 사용자 지정 앱 동의 정책을 실수로 삭제한 경우에는 정책을 다시 만들어야 합니다.

지원되는 조건

다음 표에서는 앱 동의 정책에 대해 지원되는 조건 목록을 보여줍니다.

조건 설명
PermissionClassification 부여되는 권한에 대한 권한 분류 또는 모든 권한 분류(분류되지 않은 권한 포함)와 일치하는 '모두'입니다. 기본값은 "전체"입니다.
PermissionType 부여되는 권한의 권한 유형입니다. 애플리케이션 권한(예: 앱 역할)에는 "application"을 사용하고 위임된 권한에는 "delegated"를 사용합니다.

참고: "delegatedUserConsentable" 값은 API 게시자가 관리자 동의를 요구하도록 구성하지 않은 위임된 권한을 나타냅니다. 이 값은 기본 제공 권한 부여 정책에서 사용할 수 있지만 사용자 지정 권한 부여 정책에서는 사용할 수 없습니다. 필수입니다.
ResourceApplication 권한이 부여되는 리소스 애플리케이션(예: API)의 AppId 또는 리소스 애플리케이션이나 API와 일치하는 "any"입니다. 기본값은 "한 개 이상"입니다.
사용 권한 일치하는 특정 권한에 대한 권한 ID 목록 또는 한 개 이상의 권한과 일치하는 단일 값 ‘전체’를 포함하는 목록입니다. 기본값은 단일 값 "전체"입니다.
위임된 권한 ID는 API ServicePrincipal 개체의 OAuth2Permissions 속성에서 확인할 수 있습니다.
- 애플리케이션 권한 ID는 API ServicePrincipal 개체의 AppRoles 속성에서 확인할 수 있습니다.
ClientApplicationIds 일치하는 클라이언트 애플리케이션에 대한 AppId 값의 목록 또는 한 개 이상의 클라이언트 애플리케이션과 일치하는 단일 값 ‘전체’를 포함하는 목록입니다. 기본값은 단일 값 "전체"입니다.
ClientApplicationTenantIds 클라이언트 애플리케이션이 등록된 Microsoft Entra 테넌트 ID 목록 또는 모든 테넌트에 등록된 클라이언트 앱과 일치하는 단일 값 "all"이 있는 목록입니다. 기본값은 단일 값 "전체"입니다.
ClientApplicationPublisherIds 클라이언트 애플리케이션의 확인된 게시자에 대한 Microsoft 파트너 네트워크(MPN) ID 목록 또는 한 개 이상의 게시자의 클라이언트 앱과 일치하는 단일 값 ‘전체’가 포함된 목록입니다. 기본값은 단일 값 "전체"입니다.
ClientApplicationsFromVerifiedPublisherOnly 이 스위치를 인증된 게시자가 있는 클라이언트 애플리케이션에서만 일치하도록 설정합니다. 확인된 게시자가 없더라도 모든 클라이언트 앱에서 일치시키려면 이 스위치(-ClientApplicationsFromVerifiedPublisherOnly:$false)를 사용하지 않도록 설정합니다. 기본값은 $false입니다.
scopeType 사전 승인이 적용되는 리소스 범위 형식입니다. 가능한 값: 그룹의 경우 group, 채팅의 경우 chat, 테넌트 전체 액세스의 경우 tenant. 필수입니다.
sensitivityLabels 범위 형식에 적용 가능하며 사전 승인되지 않은 민감도 레이블입니다. 이를 통해 중요한 조직 데이터를 보호할 수 있습니다. 민감도 레이블에 대해 알아봅니다. 참고: 채팅 리소스는 아직 SensitivityLabels를 지원하지 않습니다.

다음 단계

도움말을 얻거나 질문에 대한 답변을 찾으려면 다음을 수행합니다.