사용 권한 범위 | Graph API concepts(Graph API 개념)

적용 대상: Graph API | Azure Active Directory

Graph API는 고객 디렉터리 데이터에 대한 응용 프로그램의 액세스를 제어하는 데 사용되는 OAuth 2.0 권한 범위를 표시합니다. 개발자는 필요한 액세스에 적절한 사용 권한 범위를 응용 프로그램에 구성합니다. 일반적으로 이 작업은 Azure 포털을 통해 수행합니다. 로그인하는 동안 사용자나 관리자는 구성한 사용 권한 범위에 따라 디렉터리 데이터에 응용 프로그램 액세스를 허용할 수 있습니다. 따라서, 응용 프로그램에 필요한 최소 수준의 권한을 제공하는 사용 권한 범위를 선택해야 합니다. 응용 프로그램에 사용 권한을 구성하는 방법과 동의 프로세스에 대한 자세한 내용은 Azure Active Directory와 응용 프로그램 통합을 참조하십시오.

중요

Azure Active Directory 리소스에 액세스하려면 Azure AD Graph가 아닌 Microsoft Graph를 사용하는 것이 좋습니다.우리는 현재 Microsoft Graph 개발에 집중하고 있으며 앞으로 Azure AD Graph API에 대한 개선 작업은 계획이 없습니다.아직까지 Azure AD Graph API가 적합할 수 있는 시나리오는 매우 제한적입니다. 자세한 내용은 Office 개발자 센터의 Microsoft Graph 또는 Azure AD Graph 블로그 게시물을 참조하십시오.

사용 권한 범위 개념

응용 프로그램 전용 범위와 위임된 범위

사용 권한 범위에는 응용 프로그램 전용 범위와 또는 위임된 범위가 있습니다. 응용 프로그램 전용 범위(응용 프로그램 역할 라고도 함)에서는 응용 프로그램에 범위에서 제공하는 모든 사용 권한을 부여합니다. 응용 프로그램 전용 범위는 로그인한 사용자가 없는 상태에서 서비스로 실행되는 응용 프로그램에 주로 사용됩니다. 위임된 권한 범위는 사용자가 로그인하는 응용 프로그램에 사용됩니다. 이러한 범위에서는 로그인한 사용자의 권한을 응용 프로그램에 위임하여 응용 프로그램이 로그인한 사용자를 대행할 수 있도록 허용합니다. 응용 프로그램에 부여되는 실제 권한은 범위에서 부여한 권한과 로그인한 사용자가 보유한 권한의 최소 권한 조합(겹치는 부분)입니다. 예를 들어, 권한 범위에서 모든 디렉터리 개체를 쓸 수 있는 위임된 권한을 부여해도 로그인한 사용자에게 자신의 사용자 프로필을 업데이트할 권한만 있다면, 응용 프로그램에서는 다른 그룹이 아닌 자신의 사용자 프로필만 쓸 수 있습니다.

사용자 및 그룹에 대한 전체 및 기본 프로필

사용자그룹의 전체 프로필에는 속성에 대해 선언된 모든 엔터티가 포함됩니다. 프로필에 중요한 디렉터리 정보와 PII(개인 식별 정보)가 포함될 수도 있으므로 기본 프로필이라는 제한된 속성 집합으로 액세스 권한을 제한하는 범위도 여러 개가 있습니다. 사용자의 기본 프로필에는 표시 이름, 이름 및 성, 사진, 메일 주소만 포함됩니다. 그룹의 기본 프로필에는 표시 이름만 포함됩니다.

사용 권한 범위 세부 정보

다음 표에서는 Graph API 사용 권한 범위를 나열하고 각각에 부여된 액세스 권한에 대해 설명합니다.

  • 범위 열에는 범위 이름이 나열됩니다. 범위 이름은 resource.operation.constraint 형식으로 되어 있습니다. 예: Group.ReadWrite.All. 제약 조건이 "All"이면 범위에서는 응용 프로그램에 디렉터리의 지정된 모든 리소스(그룹)에서 작업을 수행할(ReadWrite) 권한을 부여합니다. 그렇지 않으면 범위에서는 로그인한 사용자의 프로필에 있는 작업만 허용합니다. 범위에서 제한된 권한을 지정된 작업에 부여할 수도 있습니다. 자세한 내용은 설명 열을 참조하십시오.
  • 사용 권한 열에는 Azure 포털에서 범위를 표시하는 방식이 표시됩니다.
  • 설명 열에서는 범위에서 부여하는 전체 권한 집합을 설명합니다. 위임된 범위의 경우 실제로 응용 프로그램에 부여되는 액세스 권한은 범위에서 부여한 권한과 로그인한 사용자가 보유한 권한의 최소 권한 조합(겹치는 부분)이 됩니다.
범위 사용 권한 설명 범위 유형 관리자 동의 필요
User.Read 로그인 사용 및 사용자 프로필 읽기 사용자가 응용 프로그램에 로그인할 수 있도록 하고, 응용 프로그램에서 로그인한 사용자의 전체 프로필을 읽을 수 있도록 합니다. 전체 프로필에는 사용자 엔터티에 선언된 모든 속성이 포함됩니다. 응용 프로그램에서는 관리자나 부하 직원 등의 탐색 속성을 읽을 수 없습니다. 또한 응용 프로그램에서는 로그인한 사용자가 기본 회사 정보인 테넌트 ID, 테넌트 표시 이름, 확인된 도메인을 읽도록 허용합니다(TenantDetail 개체 사용). 위임 아니요
User.ReadBasic.All 모든 사용자의 기본 프로필 읽기 응용 프로그램에서 로그인한 사용자를 대신하여 조직에 있는 모든 사용자의 기본 프로필을 읽도록 허용합니다. 사용자의 기본 프로필은 표시 이름, 이름 및 성, 사진, 메일 주소로 구성됩니다. 사용자가 구성원으로 속한 그룹을 읽으려면 응용 프로그램에 Group.Read.All이나 Group.ReadWrite.All도 필요합니다. 위임 아니요
User.Read.All 모든 사용자의 전체 프로필 읽기 응용 프로그램에서 조직에 있는 모든 사용자의 전체 프로필을 읽도록 허용한다는 점과 관리자 및 부하 직원과 같은 탐색 속성을 읽는 경우를 제외하면 User.ReadBasic.All과 같습니다. 전체 프로필에는 사용자 엔터티에 선언된 모든 속성이 포함됩니다. 사용자가 구성원으로 속해 있는 그룹을 읽으려면 응용 프로그램에 Group.Read.All이나 Group.ReadWrite.All도 필요합니다. 위임
Group.Read.All 모든 그룹 읽기(미리 보기) 응용 프로그램에서 로그인한 사용자를 대신하여 조직에 있는 모든 그룹의 기본 프로필을 읽도록 허용합니다. 응용 프로그램에서 그룹이 구성원으로 속해 있는 그룹의 기본 프로필을 읽을 수도 있습니다. 그룹의 기본 프로필에는 그룹의 표시 이름만 포함됩니다. 그룹 구성원의 프로필 정보를 읽으려면 응용 프로그램에 User.ReadBasic이나 User.Read.All도 필요합니다. 위임
Group.ReadWrite.All 모든 그룹 읽기 및 쓰기(미리 보기) 응용 프로그램에서 조직에 있는 모든 그룹의 전체 프로필을 만들고 로그인한 사용자를 대신하여 그룹을 생성 및 업데이트하도록 허용합니다. 그룹이 구성원으로 속해 있는 그룹의 전체 프로필을 읽을 수도 있습니다. 전체 프로필에는 그룹 엔터티의 선언된 속성이 모두 포함되어 있습니다. 프로필을 읽거나 그룹의 구성원을 업데이트하려면 응용 프로그램에 User.ReadBasic이나 User.Read.All도 필요합니다. 위임
Device.ReadWrite.All 모든 장치를 읽기 및 쓰기 로그인된 사용자가 없을 때 응용 프로그램에서 모든 장치 속성을 읽고 쓰도록 합니다. 장치 만들기, 장지 삭제 또는 장비 대체 보안 식별자 업데이트는 허용되지 않습니다. 응용 프로그램 전용
Directory.Read.All 디렉터리 데이터 읽기 응용 프로그램에서 사용자, 그룹, 응용 프로그램과 관련 탐색 속성과 같은 조직 디렉터리 데이터를 모두 읽을 수 있도록 허용합니다. 참고: 응용 프로그램에 자기 조직의 테넌트에 등록된 경우에는 사용자가 이러한 사용 권한을 필요로 하는 응용 프로그램에 동의할 수 있습니다. 응용 프로그램 전용, 위임
Directory.ReadWrite.All 디렉터리 데이터 읽기 및 쓰기 응용 프로그램에서 조직의 디렉터리에 있는 데이터를 모두 읽도록 허용합니다. 응용 프로그램에서 사용자와 그룹을 생성 및 업데이트하고, 탐색 속성을 업데이트할 수 있지만 사용자나 그룹을 삭제할 수는 없습니다. 또한 응용 프로그램에서 응용 프로그램에 스키마 확장을 정의할 수 있습니다. 상세한 권한 목록은 아래의 Directory.ReadWrite.All 세부 권한을 참조하십시오. 응용 프로그램 전용, 위임
Directory.AccessAsUser.All 로그인 한 사용자로 디렉터리 액세스 응용 프로그램에서 조직의 디렉터리에 로그인한 사용자와 같은 권한으로 데이터에 액세스할 수 있도록 허용합니다. 참고: 기본 클라이언트 응용 프로그램의 경우는 사용자가 이 사용 권한에 동의할 수 있지만, 웹 응용 프로그램의 경우는 관리자의 동의가 필요합니다. 위임

참고: 기본적으로 Azure 포털을 사용하여 응용 프로그램을 만들면 Azure AD에서는 User.Read의 위임된 사용 권한 범위를 할당합니다.

Directory.ReadWrite.All 세부 권한

Directory.ReadWrite.All 사용 권한 범위에서는 다음 권한을 부여합니다.

  • 모든 디렉터리 개체 전체 읽기(선언된 속성과 탐색 속성 모두)
  • 사용자 만들기 및 업데이트
  • 사용자의 사용 및 사용 안 함 설정(회사 관리자는 제외)
  • 사용자 대체 보안 ID 설정(관리자는 제외)
  • 그룹 만들기 및 업데이트
  • 그룹 멤버 자격 관리
  • 그룹 소유자 업데이트
  • 라이선스 할당 관리
  • 응용 프로그램에 스키마 확장 정의
  • 참고: 사용자 암호를 재설정할 권한은 없습니다.
  • 참고: 엔터티(사용자 또는 그룹 포함)를 삭제할 권한은 없습니다.
  • 참고: 위에 나열되지 않은 엔터티의 만들기 및 업데이트는 명시적으로 제외됩니다. 여기에는 Application, Oauth2PermissionGrant, AppRoleAssignment, Device, ServicePrincipal, TenantDetail, domains 등이 포함됩니다.

사용 권한 범위 시나리오

다음 표에서는 응용 프로그램에서 특정 작업을 수행하는 데 필요한 사용 권한을 보여 줍니다. 응용 프로그램에서 일부 작업을 수행하는 기능은 사용 권한 범위가 응용 프로그램 전용인지 위임되었는지에 따라 달라질 수 있으며, 위임된 사용 권한 범위의 경우는 로그인한 사용자의 권한에 따라서도 달라집니다.

시나리오 필요한 액세스 필요한 사용 권한 범위
로그인하여 사용자의 이름과 축소판 사진이 있는 타일을 표시합니다. 로그인한 사용자의 전체 프로필을 읽습니다.
기본 회사 정보를 읽습니다.
User.Read
기본 사용자 선택기. 로그인한 사용자를 대신하여 모든 사용자의 기본 프로필을 읽습니다. User.ReadBasic.All
전체 프로필이 있는 사용자 선택기. 위와 같지만 로그인한 사용자를 대신하여 사용자의 전체 프로필에 액세스합니다. User.Read.All
조직도 탐색기. 로그인한 사용자를 대신하여 모든 사용자와 그 관리자, 부사 직원의 전체 프로필을 읽습니다. User.Read.All
앱에 대한 액세스 제어 그룹이 포함된 사용자 선택기.

그룹 및 멤버 자격 뷰어.
로그인한 사용자를 대신하여 모든 그룹 및 사용자의 기본 프로필을 읽습니다.
사용자의 관리자 및 부하 직원의 기본 사용자 프로필을 읽습니다.
사용자의 그룹 멤버 자격 기본 프로필을 읽습니다.
그룹의 그룹 멤버 자격 기본 프로필을 읽습니다.
그룹의 구성원 기본 프로필을 읽습니다.
User.ReadBasic.All 및 Group.Read.All
로그인한 사용자와 사용자의 관리자, 부하 직원, 그룹 멤버 자격의 프로필을 표시합니다. me 작업을 사용하여 다음을 읽습니다.
로그인한 사용자의 전체 프로필.
로그인한 사용자의 관리자 및 부하 직원 전체 프로필.
로그인한 사용자가 속한 그룹의 기본 프로필.

참고: 두 범위를 조합하면 me 작업에 여기에 표시된 것보다 많은 액세스 권한이 부여됩니다.
User.Read.All 및 Group.Read.All
사용자가 그룹을 만들고 관리할 수 있게 해 주는 그룹 관리 서비스. 로그인한 사용자를 대신하여 모든 그룹 및 사용자의 전체 프로필을 읽습니다.
사용자의 관리자 및 부하 직원에 대한 전체 프로필을 읽습니다.
사용자의 그룹 멤버 자격 전체 프로필을 읽습니다.
그룹의 그룹 멤버 자격 전체 프로필을 읽습니다.
그룹 구성원의 전체 프로필을 읽습니다.
그룹 및 해당 탐색 속성(구성원)을 만들고 업데이트합니다.
User.Read.All 및 Group.ReadWrite.All
모든 디렉터리 개체(탐색 속성 포함)를 읽습니다. Directory.Read.All
모든 디렉터리 개체(탐색 속성 포함)를 읽습니다.
사용자 및 그룹 개체를 만들고 업데이트합니다.
사용자 또는 그룹 삭제는 없습니다.

참고: 부여할 수 있는 모든 권한이 여기에 나열되지는 않았습니다.
Directory.ReadWrite.All
로그인한 사용자로서 활동합니다. 로그인한 사용자를 대신하여 디렉터리 개체를 읽고 씁니다(탐색 속성 포함). Directory.AccessAsUser.All

관리자, 사용자 및 게스트 사용자의 기본 액세스 권한

다음 표에서는 디렉터리에 있는 (전역) 관리자, 사용자 및 게스트 사용자의 기본 액세스 권한을 나열합니다. 디렉터리 구성 설정 및/또는 하나 이상의 디렉터리 역할에 대한 사용자의 멤버 자격에 따라 기본 액세스 권한을 더 강화하거나 제한할 수도 있습니다. 디렉터리 데이터에 대한 사용자와 게스트 사용자의 액세스 권한 구성에 대한 자세한 내용은 Azure AD에서 사용자 만들기 또는 편집을 참조하십시오. 다양한 디렉터리 역할과 관련된 액세스 권한에 대한 자세한 내용은 Azure AD에서 관리자 역할 할당을 참조하십시오.

사용자 유형 액세스
전역 관리자 모든 디렉터리 개체를 읽습니다.
모든 디렉터리 개체를 생성, 업데이트 및 삭제합니다.
사용자 모든 디렉터리 개체를 읽습니다.
응용 프로그램 및 연결된 서비스 사용자를 만듭니다.
자신의 프로필을 업데이트합니다.
소유한 그룹(및 구성원 속성)을 업데이트합니다.
소유한 응용 프로그램 및 서비스 주체를 업데이트합니다.
소유한 응용 프로그램 및 서비스 주체를 삭제합니다.
게스트 사용자 자신의 전체 프로필을 읽습니다.
다른 모든 사용자의 기본 프로필을 읽습니다.
모든 그룹의 기본 프로필을 읽습니다.
응용 프로그램을 읽습니다.
자기의 프로필에서 일부 속성을 업데이트 합니다.
사용자 또는 그룹 검색은 없습니다(아래의 게스트 사용자의 사용자 및 그룹 검색 참조).

게스트 사용자의 사용자 및 그룹 검색 제한

사용자 및 그룹 검색 기능을 사용하면 응용 프로그램에서 사용자 또는 그룹 리소스 집합에 대하나 쿼리를 수행하여 고객 디렉터리에서 사용자나 그룹을 검색할 수 있습니다(예: https://graph.windows.net/myorganization/users?api-version=1.6). 관리자와 사용자 모두에게 이 기능이 있습니다. 게스트 사용자에게는 없습니다. 로그인한 사용자가 게스트 사용자인 경우에는, 사용 권한 범위에 따라 응용 프로그램에서 사용자의 개체 ID 또는 UPN(사용자 계정 이름)이나 그룹의 개체 ID를 사용해서 특정 사용자나 그룹의 프로필을 읽을 수 있습니다(예: https://graph.windows.net/myorganization/users/241f22af-f634-44c0-9a15-c8cd2cea5531?api-version=1.6). 그러나 두 개 이상의 엔터티를 요청할 가능성이 있는 사용자 또는 그룹 리소스에 대해 쿼리를 수행할 수는 없습니다. 예를 들어, 사용 권한 범위에 따라 응용 프로그램에서 탐색 속성의 링크를 따라 얻은 사용자나 그룹의 프로필을 읽을 수도 있지만, 디렉터리의 모든 사용자나 그룹을 반환하는 쿼리를 실행할 수는 없습니다.

추가 리소스