앱 동의 정책 관리
앱 동의 정책은 앱이 조직의 데이터에 액세스하는 데 필요한 권한을 관리하는 방법입니다. 이는 사용자가 동의할 수 있는 앱을 제어하고 앱이 데이터에 액세스하기 전에 특정 기준을 충족하는지 확인하는 데 사용됩니다. 이러한 정책은 조직이 데이터에 대한 제어권을 유지하고 신뢰할 수 있는 앱에만 액세스 권한을 부여하는 데 도움이 됩니다.
이 문서에서는 동의가 부여될 수 있는 시기를 제어하기 위해 기본 제공 및 사용자 지정 앱 동의 정책을 관리하는 방법을 알아봅니다.
Microsoft Graph 및 Microsoft 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"
기존 앱 동의 정책 목록
조직의 기존 앱 동의 정책을 숙지하는 것이 좋습니다.
모든 앱 동의 정책을 나열합니다.
Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
정책의 "포함" 조건 집합을 봅니다.
Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
"제외" 조건 집합 보기:
Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
PowerShell을 사용하여 사용자 지정 앱 동의 정책 만들기
사용자 지정 앱 동의 정책을 만들려면 다음 단계를 따르세요.
비어 있는 새 앱 동의 정책을 만듭니다.
New-MgPolicyPermissionGrantPolicy ` -Id "my-custom-policy" ` -DisplayName "My first custom consent policy" ` -Description "This is a sample custom app consent policy."
"포함" 조건 집합을 추가합니다.
# Include delegated permissions classified "low", for apps from verified publishers New-MgPolicyPermissionGrantPolicyInclude ` -PermissionGrantPolicyId "my-custom-policy" ` -PermissionType "delegated" ` -PermissionClassification "low" ` -ClientApplicationsFromVerifiedPublisherOnly
"포함" 조건 집합을 더 추가하려면 이 단계를 반복합니다.
선택적으로 "제외" 조건 집합을 추가합니다.
# 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의 사용자 지정 역할에 할당해야 합니다. 그런 다음 만든 앱 동의 정책에 연결된 해당 사용자 지정 역할에 사용자를 할당해야 합니다. 앱 동의 정책을 사용자 지정 역할에 할당하는 방법에 대한 자세한 내용은 사용자 지정 역할에 대한 앱 동의 권한을 참조하세요.
PowerShell을 사용하여 사용자 지정 앱 동의 정책 삭제
다음 cmdlet은 사용자 지정 앱 동의 정책을 삭제하는 방법을 보여 줍니다.
Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"
앱 동의 정책을 관리하려면 필수 조건 섹션에 나열된 역할 중 하나로 Graph 탐색기에 로그인합니다.
Policy.ReadWrite.PermissionGrant
권한에 동의해야 합니다.
Microsoft Graph를 사용하여 기존 앱 동의 정책 나열
조직의 기존 앱 동의 정책을 숙지하는 것이 좋습니다.
모든 앱 동의 정책을 나열합니다.
GET /policies/permissionGrantPolicies?$select=id,displayName,description
정책의 "포함" 조건 집합을 봅니다.
GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
"제외" 조건 집합 보기:
GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
Microsoft Graph를 사용하여 사용자 지정 앱 동의 정책 만들기
사용자 지정 앱 동의 정책을 만들려면 다음 단계를 따르세요.
비어 있는 새 앱 동의 정책을 만듭니다.
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" }
"포함" 조건 집합을 추가합니다.
확인된 게시자의 앱에 대해 "낮음"으로 분류된 위임된 권한을 포함합니다.
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes Content-Type: application/json { "permissionType": "delegated", "PermissionClassification": "low", "clientApplicationsFromVerifiedPublisherOnly": true }
"포함" 조건 집합을 더 추가하려면 이 단계를 반복합니다.
선택적으로 "제외" 조건 집합을 추가합니다. 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의 사용자 지정 역할에 할당해야 합니다. 그런 다음 만든 앱 동의 정책에 연결된 해당 사용자 지정 역할에 사용자를 할당해야 합니다. 앱 동의 정책을 사용자 지정 역할에 할당하는 방법에 대한 자세한 내용은 사용자 지정 역할에 대한 앱 동의 권한을 참조하세요.
Microsoft Graph를 사용하여 사용자 지정 앱 동의 정책 삭제
다음은 사용자 지정 앱 동의 정책을 삭제하는 방법을 보여줍니다.
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를 지원하지 않습니다. |
다음 단계
도움말을 얻거나 질문에 대한 답변을 찾으려면 다음을 수행합니다.