이 문서에서는 사용자가 애플리케이션에 권한을 부여하는 시기와 방법을 제어하도록 Microsoft Entra ID에서 사용자 동의 설정을 구성하는 방법을 알아봅니다. 이 지침은 IT 관리자가 사용자 동의를 제한하거나 사용하지 않도록 설정하여 보안 위험을 줄이는 데 도움이 됩니다.
애플리케이션에서 조직의 데이터에 액세스하려면 먼저 사용자가 애플리케이션에 이 작업을 수행할 수 있는 권한을 부여해야 합니다. 여러 권한은 서로 다른 수준의 액세스를 허용합니다. 기본적으로 모든 사용자는 관리자의 동의가 필요하지 않은 권한을 애플리케이션에 부여하는 데 동의할 수 있습니다. 예를 들어, 사용자는 기본적으로 앱이 사서함에 액세스하는 데 동의할 수 있지만 앱이 조직의 모든 파일에 대한 읽기 및 쓰기 작업을 수행할 수 있는 무제한 액세스를 통해 허용하는 데 동의할 수 없습니다.
악의적인 애플리케이션이 사용자에게 조직의 데이터에 대한 액세스 권한을 부여하도록 속이려는 위험을 줄이려면 확인된 게시자가 게시한 애플리케이션에 대해서만 사용자 동의를 허용하는 것이 좋습니다.
참고
디렉터리에 대한 사용자 동의 정책이 사용자가 자신을 대신하여 동의하도록 허용하는 경우에도 애플리케이션에 사용자를 할당해야 하는 애플리케이션에는 관리자가 동의한 권한이 있어야 합니다.
필수 조건
사용자 동의를 구성하려면 다음이 필요합니다.
- 사용자 계정. 계정이 아직 없는 경우 계정을 무료로 만들 수 있습니다.
- 권한 있는 역할 관리자 역할입니다.
- 전역 관리자 역할은 Microsoft Entra 관리 센터를 사용하는 경우에만 필요합니다.
사용자 동의 설정 구성
Microsoft Entra 관리 센터, Microsoft Graph PowerShell 또는 Microsoft Graph API를 사용하여 Microsoft Entra ID에서 사용자 동의 설정을 구성할 수 있습니다. 구성하는 설정은 조직의 모든 사용자에게 적용됩니다.
Microsoft Entra 관리 센터에서 사용자 동의 구성
Microsoft Entra 관리 센터를 통해 사용자 동의 설정을 구성하려면 다음을 수행합니다.
Microsoft Entra 관리 센터에 전역 관리자로서 로그인합니다.
아이덴티티>애플리케이션>엔터프라이즈 앱>동의 및 권한>사용자 동의 설정으로 이동합니다.
애플리케이션에 대한 사용자 동의에서 모든 사용자에 대해 구성할 동의 설정을 선택합니다.
저장을 선택하여 설정을 저장합니다.
Microsoft Graph PowerShell의 권한 부여 및 권한 부여 정책 이해
Microsoft Graph PowerShell을 사용하여 프로그래밍 방식으로 사용자 동의 설정을 구성하려면 테넌트 전체 권한 부여 정책과 개별 권한 부여 정책 간의 차이점을 이해하는 것이 중요합니다.
authorizationPolicy
를 사용하여 검색된 항목은 사용자가 앱에 동의할 수 있는지 여부 및 기본 사용자 역할에 할당된 권한 부여 정책과 같은 전역 설정을 제어합니다. 예를 들어 개발자가 컬렉션에만 ManagePermissionGrantsForOwnedResource.DeveloperConsent
permissionGrantPoliciesAssigned
할당하여 소유한 앱에 대한 사용 권한을 관리할 수 있도록 하면서 사용자 동의를 사용하지 않도록 설정할 수 있습니다.
반면에 permissionGrantPolicies 엔드포인트는 현재 권한 부여 정책을 나열합니다. 이러한 정책은 애플리케이션에 부여할 수 있는 권한과 어떤 상황에서 부여할 수 있는지를 결정합니다. 각 정책은 특정 조건을 '포함'하지만 다른 조건은 '제외'합니다. 사용자가 애플리케이션에 동의하려고 하면 시스템에서 권한 부여 정책을 확인하여 해당 정책이 사용자의 요청에 적용되는지 확인합니다. 예를 들어 위험 수준이 낮은 정책을 사용하면 사용자가 '낮은 위험'으로 구성된 권한에 동의할 수 있습니다. 여기에는 이러한 위험 수준이 낮은 정책(GUID)이 포함됩니다. 또 다른 시나리오에서는 사용자가 'AdminOnly' 정책과 일치하는 컨텍스트에서 동의하려고 하면 동의할 수 없습니다.
참고
명령을 사용하여 동의 설정을 Update-MgPolicyPermissionGrantPolicy
업데이트하기 전에 항상 현재 authorizationPolicy
를 검색하여 이미 할당된 권한 부여 정책을 식별합니다. 이렇게 하면 개발자가 소유한 앱에 대한 동의를 관리할 수 있도록 하는 권한과 같은 필요한 권한을 유지하고 의도치 않게 기존 기능을 제거하지 않도록 할 수 있습니다.
애플리케이션에 대한 사용자 동의를 제어하는 앱 동의 정책을 선택하려면 Microsoft Graph PowerShell 모듈을 사용합니다. 여기서 사용되는 cmdlet은 Microsoft.Graph.Identity.SignIns 모듈에 포함되어 있습니다.
필요한 최소 권한을 사용하여 Microsoft Graph PowerShell에 연결합니다. 현재 사용자 동의 설정을 읽으려면 Policy.Read.All을 사용합니다. 사용자 동의 설정을 읽고 변경하려면 Policy.ReadWrite.Authorization을 사용합니다. 권한 있는 역할 관리자로 로그인해야 합니다.
Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization"
Microsoft Graph PowerShell을 사용하여 사용자 동의 사용 안 함
사용자 동의를 사용하지 않도록 설정하려면 동의 정책(PermissionGrantPoliciesAssigned
)에 컬렉션을 업데이트하는 동안 기타 현재 ManagePermissionGrantsForOwnedResource.*
정책이 포함되어 있는지 확인합니다. 그러면 사용자 동의 설정 및 기타 리소스 동의 설정에 대한 현재 구성을 유지할 수 있습니다.
# only exclude user consent policy
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForOwnedResource.{other-current-policies}"
)
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body
PowerShell을 사용하여 앱 동의 정책에 따라 사용자 동의 허용
사용자 동의를 허용하려면 앱에 동의를 부여하는 사용자의 권한 부여를 제어하는 앱 동의 정책을 선택합니다. 동의 정책(PermissionGrantPoliciesAssigned
)에 컬렉션을 업데이트하는 동안 기타 현재 ManagePermissionGrantsForOwnedResource.*
정책이 포함되어 있는지 확인합니다. 그러면 사용자 동의 설정 및 기타 리소스 동의 설정에 대한 현재 구성을 유지할 수 있습니다.
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForSelf.{consent-policy-id}",
"managePermissionGrantsForOwnedResource.{other-current-policies}"
)
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body
{consent-policy-id}
를 적용할 정책의 ID로 바꿉니다. 만든 사용자 지정 앱 동의 정책을 선택하거나 다음 기본 제공 정책 중에서 선택할 수 있습니다.
아이디 | 설명 |
---|---|
마이크로소프트-사용자-기본-낮음 |
선택한 권한에 대해 확인된 게시자의 앱에 대한 사용자 동의 허용 테넌트에 등록된 확인된 게시자의 앱과 낮은 영향으로 분류된 권한에 대해서만 제한된 사용자 동의를 허용합니다. (사용자가 동의를 허용할 수 있는 권한을 분류해야 합니다.) |
microsoft-사용자-기본-레거시 |
앱에 대한 사용자 동의 허용 이 옵션을 사용하면 모든 사용자가 모든 애플리케이션에 관리자 동의가 필요하지 않은 모든 권한을 동의할 수 있습니다. |
예를 들어 기본 제공 정책 microsoft-user-default-low
에 따라 사용자 동의를 사용하도록 설정하려면 다음 명령을 실행합니다.
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForSelf.managePermissionGrantsForSelf.microsoft-user-default-low",
"managePermissionGrantsForOwnedResource.{other-current-policies}"
)
}
Microsoft Graph의 권한 부여 및 권한 부여 정책 이해
Microsoft Graph를 사용하여 프로그래밍 방식으로 사용자 동의 설정을 구성하려면 테넌트 전체 권한 부여 정책과 개별 권한 부여 정책 간의 차이점을 이해하는 것이 중요합니다.
authorizationPolicy
(이는 GET https://graph.microsoft.com/v1.0/policies/authorizationPolicy/authorizationPolicy
을 사용하여 검색됨)은 사용자가 앱에 동의할 수 있는지 여부와 기본 사용자 역할에 할당된 권한 부여 정책과 같은 전역 설정을 제어합니다. 예를 들어 개발자가 컬렉션에만 ManagePermissionGrantsForOwnedResource.DeveloperConsent
permissionGrantPoliciesAssigned
할당하여 소유한 앱에 대한 사용 권한을 관리할 수 있도록 하면서 사용자 동의를 사용하지 않도록 설정할 수 있습니다.
반면에 permissionGrantPolicies
엔드포인트(GET https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies
)는 현재 권한 부여 정책을 나열합니다. 이러한 정책은 애플리케이션에 부여할 수 있는 권한과 어떤 상황에서 부여할 수 있는지를 결정합니다. 각 정책은 특정 조건을 '포함'하지만 다른 조건은 '제외'합니다. 사용자가 애플리케이션에 동의하려고 하면 시스템에서 권한 부여 정책을 확인하여 해당 정책이 사용자의 요청에 적용되는지 확인합니다. 예를 들어 위험 수준이 낮은 정책을 사용하면 사용자가 '낮은 위험'으로 구성된 권한에 동의할 수 있습니다. 여기에는 이러한 위험 수준이 낮은 정책(GUID)이 포함됩니다. 또 다른 시나리오에서는 사용자가 'AdminOnly' 정책과 일치하는 컨텍스트에서 동의하려고 하면 동의할 수 없습니다.
참고
요청으로 PATCH
동의 설정을 업데이트하기 전에 항상 현재 authorizationPolicy
를 검색하여 이미 할당된 권한 부여 정책을 식별합니다. 이렇게 하면 개발자가 소유한 앱에 대한 동의를 관리할 수 있도록 하는 권한과 같은 필요한 권한을 유지하고 의도치 않게 기존 기능을 제거하지 않도록 할 수 있습니다.
Graph Explorer를 사용하여 애플리케이션에 대한 사용자 동의를 제어하는 앱 동의 정책을 선택합니다. 권한 있는 역할 관리자로 로그인해야 합니다.
Microsoft Graph를 사용하여 사용자 동의 사용 안 함
사용자 동의를 사용하지 않도록 설정하려면 동의 정책(PermissionGrantPoliciesAssigned
)에 컬렉션을 업데이트하는 동안 기타 현재 ManagePermissionGrantsForOwnedResource.*
정책이 포함되어 있는지 확인합니다. 그러면 사용자 동의 설정 및 기타 리소스 동의 설정에 대한 현재 구성을 유지할 수 있습니다.
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"permissionGrantPoliciesAssigned": [
"managePermissionGrantsForOwnedResource.{other-current-policies}"
]
}
}
Microsoft Graph를 사용하여 앱 동의 정책에 따라 사용자 동의 허용
사용자 동의를 허용하려면 앱에 동의를 부여하는 사용자의 권한 부여를 제어하는 앱 동의 정책을 선택합니다. 동의 정책(PermissionGrantPoliciesAssigned
)에 컬렉션을 업데이트하는 동안 기타 현재 ManagePermissionGrantsForOwnedResource.*
정책이 포함되어 있는지 확인합니다. 그러면 사용자 동의 설정 및 기타 리소스 동의 설정에 대한 현재 구성을 유지할 수 있습니다.
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"managePermissionGrantsForSelf.{consent-policy-id}",
"managePermissionGrantsForOwnedResource.{other-current-policies}"
}
}
{consent-policy-id}
를 적용할 정책의 ID로 바꿉니다. 만든 사용자 지정 앱 동의 정책을 선택하거나 다음 기본 제공 정책 중에서 선택할 수 있습니다.
아이디 | 설명 |
---|---|
마이크로소프트-사용자-기본-낮음 |
선택한 권한에 대해 확인된 게시자의 앱에 대한 사용자 동의 허용 테넌트에 등록된 확인된 게시자의 앱과 낮은 영향으로 분류된 권한에 대해서만 제한된 사용자 동의를 허용합니다. (사용자가 동의를 허용할 수 있는 권한을 분류해야 합니다.) |
microsoft-사용자-기본-레거시 |
앱에 대한 사용자 동의 허용 이 옵션을 사용하면 모든 사용자가 모든 애플리케이션에 관리자 동의가 필요하지 않은 모든 권한을 동의할 수 있습니다. |
예를 들어 기본 제공 정책 microsoft-user-default-low
에 따라 사용자 동의를 사용하도록 설정하려면 다음 PATCH 명령을 사용합니다.
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"permissionGrantPoliciesAssigned": [
"managePermissionGrantsForSelf.microsoft-user-default-low",
"managePermissionGrantsForOwnedResource.{other-current-policies}"
]
}
}
사용자 동의 설정에 대한 업데이트는 애플리케이션에 대한 향후 동의 작업에만 영향을 줍니다. 기존 동의 권한 부여는 변경되지 않고 사용자가 이전에 부여한 사용 권한에 따라 계속 액세스할 수 있습니다. 기존 동의 부여를 취소하는 방법을 알아보려면 엔터프라이즈 애플리케이션에 부여된 권한 검토를 참조하세요.
팁
사용자가 동의할 수 없는 애플리케이션에 대한 관리자의 검토 및 승인을 요청하도록 허용하려면 관리자 동의 워크플로를 사용하도록 설정합니다. 예를 들어 사용자 동의가 비활성화되었거나 애플리케이션이 사용자에게 부여할 수 없는 권한을 요청하는 경우 이 작업을 수행할 수 있습니다.