그룹 소유자를 위한 앱 동의 정책 관리

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

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

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

그룹 소유자 동의 정책은 0개 이상의 "포함" 조건 집합과 0개 이상의 "제외" 조건 집합으로 구성됩니다. 그룹 소유자 동의 정책에서 이벤트를 고려하려면 "포함" 조건 집합이 모든 "제외" 조건 집합과 일치하지 않아야 합니다.

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

ID가 "microsoft-"로 시작하는 그룹 소유자 동의 정책은 기본 제공 정책입니다. 예를 들어, microsoft-pre-approval-apps-for-group 그룹 소유자 동의 정책은 그룹 소유자가 자신이 소유한 그룹의 데이터에 액세스하기 위해 관리자가 사전 승인한 목록의 애플리케이션에 동의를 부여할 수 있는 조건을 설명합니다. 기본 제공 정책은 사용자 지정 디렉터리 역할에서 사용하고 사용자 동의 설정을 구성하는 데 사용할 수 있지만 편집하거나 삭제할 수는 없습니다.

필수 조건

  • 다음 역할 중 하나를 가진 사용자 또는 서비스:
    • 전역 관리자 디렉터리 역할
    • 권한 있는 역할 관리자 디렉터리 역할
    • 그룹 소유자 동의 정책을 관리하는 데 필요한 권한이 있는 사용자 지정 디렉터리 역할
    • Microsoft Graph 앱 역할(애플리케이션 권한) Policy.ReadWrite.PermissionGrant(앱 또는 서비스로 연결하는 경우)
  • 앱 동의 정책에 따라 그룹 소유자 동의를 허용하려면 그룹 소유자 동의 설정을 사용하지 않도록 설정해야 합니다. 사용하지 않도록 설정되면 앱 동의 정책에서 현재 정책을 읽습니다. 그룹 소유자 동의를 사용하지 않도록 설정하는 방법을 알아보려면 그룹 소유자 동의 설정 사용 안 함을 참조하세요.

Microsoft Graph PowerShell을 사용하여 애플리케이션에 대한 그룹 소유자 동의 정책을 관리하려면 Microsoft Graph PowerShell에 연결하고 필수 구성 요소 섹션에 나열된 역할 중 하나로 로그인합니다. 또한 Policy.ReadWrite.PermissionGrant 권한에 동의해야 합니다.

# change the profile to beta by using the `Select-MgProfile` command
Select-MgProfile -Name "beta"
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"

그룹 소유자 동의 설정이 다른 방법으로 권한 부여되었는지 확인하는 방법을 알아봅니다.

  1. 그룹 소유자 동의 설정의 현재 값을 검색합니다.

      Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
    

    ManagePermissionGrantPoliciesForOwnedResourcePermissionGrantPoliciesAssigned에 반환된 경우 그룹 소유자 동의 설정이 다른 방법으로 권한 부여되었을 수 있습니다.

  2. 정책 범위가 group인지 확인합니다.

       Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | Select -ExpandProperty AdditionalProperties
    

ResourceScopeType == group인 경우 그룹 소유자 동의 설정이 다른 방식으로 권한 부여되었습니다. 또한 그룹에 대한 앱 동의 정책이 microsoft-pre-approval-apps-for-group으로 할당된 경우 이는 테넌트에 대해 사전 승인 기능이 사용하도록 설정되었음을 의미합니다.

조직의 기존 그룹 소유자 동의 정책을 숙지하는 것부터 시작하는 것이 좋습니다.

  1. 모든 그룹 소유자 동의 정책을 나열합니다.

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

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
    
  3. "제외" 조건 집합 보기:

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
    

사용자 지정 그룹 소유자 동의 정책을 만들려면 다음 단계를 따릅니다.

  1. 새로운 빈 그룹 소유자 동의 정책을 만듭니다.

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-app-consent-policy-for-group" `
        -DisplayName "My first custom app consent policy for group" `
        -Description "This is a sample custom app consent policy for group." `
        -AdditionalProperties @{includeAllPreApprovedApplications = $false; resourceScopeType = "group"}
    
  2. "포함" 조건 집합을 추가합니다.

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group" `
        -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-app-consent-policy-for-group" `
        -PermissionType "delegated" `
        -ResourceApplication $azureApi.AppId
    

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

그룹에 대한 앱 동의 정책이 만들어지면 이 정책에 따라 그룹 소유자 동의를 허용할 수 있습니다.

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

    Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group"
    

그룹 소유자 동의 정책을 관리하려면 필수 조건 섹션에 나열된 역할 중 하나로 Graph 탐색기에 로그인합니다. 또한 Policy.ReadWrite.PermissionGrant 권한에 동의해야 합니다.

그룹 소유자 동의 설정이 다른 방법으로 권한 부여되었는지 확인하는 방법을 알아봅니다.

  1. 현재 정책 값 검색

    GET /policies/authorizationPolicy
    

    ManagePermissionGrantPoliciesForOwnedResource가 나타나면 그룹 소유자 동의 설정이 다른 방법으로 권한 부여되었을 수 있습니다.

  2. 정책 범위가 group인지 확인합니다.

    GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }
    

    resourceScopeType == group인 경우 그룹 소유자 동의 설정이 다른 방식으로 권한 부여되었습니다. 또한 그룹에 대한 앱 동의 정책이 microsoft-pre-approval-apps-for-group으로 할당된 경우 이는 테넌트에 대해 사전 승인 기능이 사용하도록 설정되었음을 의미합니다.

조직의 기존 그룹 소유자 동의 정책을 숙지하는 것부터 시작하는 것이 좋습니다.

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

    GET /policies/permissionGrantPolicies
    
  2. 정책의 "포함" 조건 집합을 봅니다.

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

    GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/excludes
    

사용자 지정 그룹 소유자 동의 정책을 만들려면 다음 단계를 따릅니다.

  1. 새로운 빈 그룹 소유자 동의 정책을 만듭니다.

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

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

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/includes
    
    {
      "permissionType": "delegated",
      "permissionClassification": "low",
      "clientApplicationsFromVerifiedPublisherOnly": true
    }
    

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

  3. 선택적으로 "제외" 조건 집합을 추가합니다. Azure 관리 API에 대한 위임된 권한 제외(appId 46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b)

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/excludes
    
    {
      "permissionType": "delegated",
      "resourceApplication": "46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b "
    }
    

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

그룹 소유자 동의 정책이 만들어지면 이 정책에 따라 그룹 소유자 동의를 허용할 수 있습니다.

  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입니다.

Warning

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

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