애플리케이션에 대한 테넌트 전체 관리자 동의 부여

이 문서에서는 Microsoft Entra ID의 애플리케이션에 테넌트 전체 관리자 동의를 부여하는 방법을 알아봅니다. 개별 사용자 동의 설정을 구성하는 방법을 이해하려면 최종 사용자가 애플리케이션에 동의하는 방법 구성 구성을 참조하세요.

애플리케이션에 테넌트 전체 관리자 동의를 부여하면 애플리케이션에 전체 조직을 대신하여 요청된 권한에 대한 액세스 권한을 부여합니다. 조직을 대신하여 관리자 동의를 허용하는 것은 중요한 작업이며, 잠재적으로 애플리케이션의 게시자가 조직 데이터의 상당 부분에 액세스할 수 있도록 허용하거나 권한이 높은 작업을 수행할 수 있는 권한을 허용합니다. 이러한 작업의 예로 역할 관리, 모든 사서함 또는 모든 사이트에 대한 모든 권한, 전체 사용자 가장이 있습니다. 따라서 동의를 부여하기 전에 애플리케이션이 요청하는 권한을 신중하게 검토해야 합니다.

기본적으로 애플리케이션에 테넌트 전체 관리자 동의를 부여하면 달리 제한되지 않는 한 모든 사용자가 애플리케이션에 액세스할 수 있습니다. 애플리케이션에 로그인할 수 있는 사용자를 제한하려면 사용자 할당을 요구하도록 앱을 구성한 다음, 애플리케이션에 사용자 또는 그룹을 할당합니다.

Important

테넌트 전체 관리자 동의를 부여하면 해당 애플리케이션에 대해 테넌트 전체에 이미 부여된 사용 권한이 취소될 수 있습니다. 사용자가 이미 자신을 대신하여 부여한 권한은 영향을 받지 않습니다.

필수 조건

테넌트 전체 관리자 동의를 부여하려면 조직을 대신하여 동의할 수 있는 사용자로 로그인해야 합니다.

테넌트 전체 관리자 동의를 부여하려면 다음이 필요합니다.

  • 다음 역할 중 하나를 가진 Microsoft Entra 사용자 계정:

    • 모든 API에 대한 권한을 요청하는 앱에 대한 동의를 부여하기 위한 전역 관리자 또는 권한 있는 역할 관리자.
    • Microsoft Graph 앱 역할(애플리케이션 권한)을 제외한 모든 API에 대한 사용 권한을 요청하는 앱에 대한 동의를 부여하기 위한 클라우드 애플리케이션 관리자 또는 애플리케이션 관리자.
    • 애플리케이션에 필요한 사용 권한에 대해 애플리케이션에 권한을 부여할 수 있는 권한이 포함된 사용자 지정 디렉터리 역할.

애플리케이션이 테넌트에 이미 프로비전된 경우 엔터프라이즈 애플리케이션 창을 통해 테넌트 전체 관리자 동의를 부여할 수 있습니다. 예를 들어 하나 이상의 사용자가 이미 애플리케이션에 동의한 경우 테넌트에서 애플리케이션을 프로비저닝할 수 있습니다. 자세한 내용은 애플리케이션이 Microsoft Entra ID에 추가되는 방법 및 이유를 참조하세요.

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

엔터프라이즈 애플리케이션 창에 나열된 앱에 테넌트 전체 관리자 동의를 부여하려면 다음을 수행합니다 .

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.
  2. ID>애플리케이션>엔터프라이즈 애플리케이션>모든 애플리케이션으로 이동합니다.
  3. 검색 상자에서 기존 애플리케이션 이름을 입력한 다음, 검색 결과에서 애플리케이션을 선택합니다.
  4. 보안에서 권한을 선택합니다. Screenshot shows how to grant tenant-wide admin consent.
  5. 애플리케이션에 필요한 권한을 신중하게 검토합니다. 애플리케이션에 필요한 권한에 동의하는 경우 관리자 동의 부여를 선택합니다.

조직에서 직접 개발하고 Microsoft Entra 테넌트에 등록한 애플리케이션에 대한 Microsoft Entra 관리 센터의 앱 등록에서 테넌트 전체 관리자 동의를 부여할 수 있습니다.

앱 등록에서 테넌트 전체 관리자 동의를 부여하려면

  1. Microsoft Entra 관리 센터에서 ID>애플리케이션>앱 등록>모든 애플리케이션으로 이동합니다.
  2. 검색 상자에서 기존 애플리케이션 이름을 입력한 다음, 검색 결과에서 애플리케이션을 선택합니다.
  3. 관리 아래에서 API 권한을 선택합니다.
  4. 애플리케이션에 필요한 권한을 신중하게 검토합니다. 동의하는 경우 관리자 동의 부여를 선택합니다.

이전 섹션에서 설명한 방법을 사용하여 테넌트 전체 관리자 동의를 부여하면 Microsoft Entra 관리 센터에서 창이 열리고 테넌트 전체 관리자 동의를 묻는 메시지가 표시됩니다. 애플리케이션의 클라이언트 ID(애플리케이션 ID라고도 함)를 알고 있으면 동일한 URL을 빌드하여 테넌트 전체 관리자 동의를 부여할 수 있습니다.

테넌트 전체 관리자 동의 URL은 다음 형식을 따릅니다.

https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}

여기서

  • {client-id}는 애플리케이션의 클라이언트 ID(앱 ID라고도 함)입니다.
  • {organization}은 애플리케이션에 동의하려는 테넌트의 테넌트 ID 또는 확인된 도메인 이름입니다. 로그인하는 사용자의 홈 테넌트에서 동의를 발생시키는 값 organizations을(를) 사용할 수 있습니다.

언제나처럼 동의를 부여하기 전에 애플리케이션에서 요청하는 권한을 신중하게 검토합니다.

테넌트 전체 관리자 동의 URL 구문에 대한 자세한 내용은 Microsoft ID 플랫폼에 대한 관리자 동의를 참조하세요.

이 섹션에서는 애플리케이션에 위임된 권한을 부여합니다. 위임된 권한은 애플리케이션이 로그인한 사용자를 대신하여 API에 액세스하는 데 필요한 권한입니다. 권한은 리소스 API에 의해 정의되고 클라이언트 애플리케이션인 엔터프라이즈 애플리케이션에 부여됩니다. 이 동의는 모든 사용자를 대신하여 부여됩니다.

다음 예제에서 리소스 API는 개체 ID 7ea9e944-71ce-443d-811c-71e8047b557a의 Microsoft Graph입니다. Microsoft Graph API는 위임된 사용 권한을 정의합니다Group.Read.All. User.Read.All consentType은 테넌트의 모든 사용자를 대신하여 동의함을 나타내는 AllPrincipals입니다. 클라이언트 엔터프라이즈 애플리케이션의 개체 ID는 b0d9b9e3-0ecf-4bfd-8dab-9273dd055a941입니다.

주의

주의가 필요합니다! 프로그래밍 방식으로 부여된 권한은 검토 또는 확인의 대상이 아닙니다. 해당 권한은 즉시 적용됩니다.

  1. Microsoft Graph PowerShell에 연결하고 최소한 클라우드 애플리케이션 관리자로 로그인합니다.

    Connect-MgGraph -Scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"
    
  2. 테넌트 애플리케이션에서 Microsoft Graph(리소스 애플리케이션)에 의해 정의된 모든 위임된 권한을 검색합니다. 클라이언트 애플리케이션에 부여해야 하는 위임된 권한을 식별합니다. 이 예제에서 위임 권한은 User.Read.AllGroup.Read.All입니다.

    Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property Oauth2PermissionScopes | Select -ExpandProperty Oauth2PermissionScopes | fl
    
  3. 다음 요청을 실행하여 클라이언트 엔터프라이즈 애플리케이션에 위임된 권한을 부여합니다.

    $params = @{
    
    "ClientId" = "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94"
    "ConsentType" = "AllPrincipals"
    "ResourceId" = "7ea9e944-71ce-443d-811c-71e8047b557a"
    "Scope" = "User.Read.All Group.Read.All"
    }
    
    New-MgOauth2PermissionGrant -BodyParameter $params | 
    Format-List Id, ClientId, ConsentType, ResourceId, Scope
    
  4. 다음 요청을 실행하여 테넌트 전체 관리자 동의를 부여했는지 확인합니다.

 Get-MgOauth2PermissionGrant -Filter "clientId eq 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' and consentType eq 'AllPrincipals'" 

이 섹션에서는 엔터프라이즈 애플리케이션에 애플리케이션 권한을 부여합니다. 애플리케이션 권한은 애플리케이션이 리소스 API에 액세스하는 데 필요한 권한입니다. 권한은 리소스 API에 의해 정의되고 주 애플리케이션인 엔터프라이즈 애플리케이션에 부여됩니다. 리소스 API에 대한 애플리케이션 액세스 권한을 부여한 후에는 로그인한 사용자 없이 백그라운드 서비스 또는 디먼으로 실행됩니다. 애플리케이션 사용 권한을 앱 역할이라고도 합니다.

다음 예제에서는 Microsoft Graph 애플리케이션(ID의 보안 주체)에게 IDb0d9b9e3-0ecf-4bfd-8dab-9273dd055a94의 리소스 API7ea9e944-71ce-443d-811c-71e8047b557a에 의해 노출되는 ID df021288-bdef-4463-88db-98f22de89214 의 앱 역할(애플리케이션 권한)을 부여합니다.

  1. Microsoft Graph PowerShell에 연결하고 전역 관리자로 로그인합니다.

    Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    
  2. 테넌트에서 Microsoft Graph로 정의된 앱 역할을 검색합니다. 클라이언트 엔터프라이즈 애플리케이션에 부여할 앱 역할을 식별합니다. 이 예제에서 앱 역할 ID는 df021288-bdef-4463-88db-98f22de89214입니다.

    Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property AppRoles | Select -ExpandProperty appRoles |fl
    
  3. 다음 요청을 실행하여 주 애플리케이션에 애플리케이션 권한(앱 역할)을 부여합니다.

 $params = @{
  "PrincipalId" ="b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94"
  "ResourceId" = "7ea9e944-71ce-443d-811c-71e8047b557a"
  "AppRoleId" = "df021288-bdef-4463-88db-98f22de89214"
}

New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' -BodyParameter $params | 
  Format-List Id, AppRoleId, CreatedDateTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName

Graph Explorer를 사용하여 위임된 권한과 애플리케이션 권한을 모두 부여합니다.

이 섹션에서는 애플리케이션에 위임된 권한을 부여합니다. 위임된 권한은 애플리케이션이 로그인한 사용자를 대신하여 API에 액세스하는 데 필요한 권한입니다. 권한은 리소스 API에 의해 정의되고 클라이언트 애플리케이션인 엔터프라이즈 애플리케이션에 부여됩니다. 이 동의는 모든 사용자를 대신하여 부여됩니다.

최소한 클라우드 애플리케이션 관리자로 로그인해야 합니다.

다음 예제에서 리소스 API는 개체 ID 7ea9e944-71ce-443d-811c-71e8047b557a의 Microsoft Graph입니다. Microsoft Graph API는 위임된 사용 권한을 정의합니다Group.Read.All. User.Read.All consentType은 테넌트의 모든 사용자를 대신하여 동의함을 나타내는 AllPrincipals입니다. 클라이언트 엔터프라이즈 애플리케이션의 개체 ID는 b0d9b9e3-0ecf-4bfd-8dab-9273dd055a941입니다.

주의

주의가 필요합니다! 프로그래밍 방식으로 부여된 권한은 검토 또는 확인의 대상이 아닙니다. 해당 권한은 즉시 적용됩니다.

  1. 테넌트 애플리케이션에서 Microsoft Graph(리소스 애플리케이션)에 의해 정의된 모든 위임된 권한을 검색합니다. 클라이언트 애플리케이션에 부여해야 하는 위임된 권한을 식별합니다. 이 예제에서 위임 권한은 User.Read.AllGroup.Read.All입니다.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,oauth2PermissionScopes
    
  2. 다음 요청을 실행하여 클라이언트 엔터프라이즈 애플리케이션에 위임된 권한을 부여합니다.

    POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
    
    Request body
    {
       "clientId": "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94",
       "consentType": "AllPrincipals",
       "resourceId": "7ea9e944-71ce-443d-811c-71e8047b557a",
       "scope": "User.Read.All Group.Read.All"
    }
    
  3. 다음 요청을 실행하여 테넌트 전체 관리자 동의를 부여했는지 확인합니다.

    GET https://graph.microsoft.com/v1.0/oauth2PermissionGrants?$filter=clientId eq 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' and consentType eq 'AllPrincipals'
    

이 섹션에서는 엔터프라이즈 애플리케이션에 애플리케이션 권한을 부여합니다. 애플리케이션 권한은 애플리케이션이 리소스 API에 액세스하는 데 필요한 권한입니다. 권한은 리소스 API에 의해 정의되고 주 애플리케이션인 엔터프라이즈 애플리케이션에 부여됩니다. 리소스 API에 대한 애플리케이션 액세스 권한을 부여한 후에는 로그인한 사용자 없이 백그라운드 서비스 또는 디먼으로 실행됩니다. 애플리케이션 사용 권한을 앱 역할이라고도 합니다.

다음 예제에서는 애플리케이션인 Microsoft Graph(ID의 보안 주체)에게 IDb0d9b9e3-0ecf-4bfd-8dab-9273dd055a94의 리소스 엔터프라이즈 애플리케이션7ea9e944-71ce-443d-811c-71e8047b557a에 의해 노출되는 ID df021288-bdef-4463-88db-98f22de89214 의 앱 역할(애플리케이션 권한)을 부여합니다.

전역 관리자로 로그인해야 합니다.

  1. 테넌트에서 Microsoft Graph로 정의된 앱 역할을 검색합니다. 클라이언트 엔터프라이즈 애플리케이션에 부여할 앱 역할을 식별합니다. 이 예제에서 앱 역할 ID는 df021288-bdef-4463-88db-98f22de89214입니다.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,appRoles
    
  2. 다음 요청을 실행하여 주 애플리케이션에 애플리케이션 권한(앱 역할)을 부여합니다.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/7ea9e944-71ce-443d-811c-71e8047b557a/appRoleAssignedTo
    
    Request body
    
    {
       "principalId": "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94",
       "resourceId": "7ea9e944-71ce-443d-811c-71e8047b557a",
       "appRoleId": "df021288-bdef-4463-88db-98f22de89214"
    }
    

다음 단계