관리자 작업

도메인 관리자는 도메인의 사용자가 액세스할 수 있는 기능과 애플리케이션을 관리하기 위한 여러 컨트롤을 보유합니다. 이 페이지에서는 이러한 기능과 외부 통합에 미치는 영향 또는 유용성, 관련 API 요청을 설명합니다.

18세 미만 사용자의 서드 파티 앱 액세스 관리하기

관리자는 18세 미만 사용자의 경우 Google 관리 콘솔에서 서드 파티 애플리케이션을 구성해야 합니다. 관리자가 애플리케이션을 구성하지 않은 경우 18세 미만의 사용자는 Google Workspace for Education 계정으로 해당 애플리케이션에 액세스할 수 없습니다.

만 18세 미만의 Google Workspace for Education 사용자를 위해 애플리케이션을 빌드하는 개발자는 별도의 조치를 취하지 않아도 됩니다. 서드 파티 앱은 관리 콘솔 UI에서 관리자만 구성할 수 있으며 프로그래매틱 방식으로는 구성할 수 없습니다.

클래스룸 기능에 맞춤 관리자 역할 지정하기

관리자는 관리 콘솔에서 맞춤 관리자 역할을 만들어 Education Plus 라이선스가 있는 특정 개인 또는 그룹이 다음 작업을 할 수 있도록 허용할 수 있습니다.

이 가이드에서는 Google API를 사용하여 도메인에서 이러한 기능을 설정하는 방법을 설명합니다.

맞춤 역할 할당 프로세스 자동화

이 가이드에서는 맞춤 역할 할당 프로세스를 자동화하기 위해 다음 단계를 완료하는 방법을 설명합니다.

  1. 보안 그룹을 만들어 이러한 기능에 액세스할 수 있는 사용자를 구성합니다.
  2. 그룹에 회원을 추가합니다.
  3. 올바른 권한을 선택하여 맞춤 관리자 역할을 만듭니다.
  4. 조직 단위 ID를 검색합니다.
  5. 새로 만든 그룹에 맞춤 관리자 역할을 적용합니다.

기본 요건

  1. 빠른 시작 가이드에서 JavaScript, Python, Java와 같은 언어로 Google API를 사용하여 애플리케이션을 설정하고 실행하는 방법을 알아보세요.
  2. 이 가이드에 설명된 Cloud ID API를 사용하려면 먼저 Cloud ID를 설정해야 합니다. 이러한 API는 관리자 권한을 할당할 그룹을 만드는 데 사용됩니다.
  3. 개별 사용자 대신 사용자 그룹에 맞춤 역할 액세스 권한을 제공하려면 Groups API 개요를 읽고 Groups API를 설정하세요.

보안 그룹 만들기

groups.create 메서드로 보안 그룹을 만듭니다. 보안 라벨이 요청의 labels 필드에 포함된 경우 그룹을 보안 그룹으로 설정할 수 있습니다. 보안 그룹 만들기에 관한 자세한 내용과 제한사항은 보안 그룹 만들기 가이드를 참고하세요.

POST https://cloudidentity.googleapis.com/v1/groups

원하는 경우 InitialGroupConfig 쿼리 매개변수를 포함하여 그룹 소유자를 초기화할 수 있습니다.

POST https://cloudidentity.googleapis.com/v1/groups&initialGroupConfig={initialGroupConfig}

이 요청을 실행하는 계정에는 다음 범위 중 하나가 필요합니다.

  • https://www.googleapis.com/auth/cloud-identity.groups
  • https://www.googleapis.com/auth/cloud-identity
  • https://www.googleapis.com/auth/cloud-platform

요청 본문

요청 본문에는 생성할 그룹의 세부정보가 포함됩니다. customerId는 'C'로 시작해야 합니다(예: C046psxkn). 고객 ID를 찾습니다.

{
   parent: "customers/<customer-id>",
   description: "This is the leadership group of school A.",
   displayName: "Leadership School A",
   groupKey: {
      id: "leadership_school_a@example.com"
   },
   labels: {
      "cloudidentity.googleapis.com/groups.security": "",
      "cloudidentity.googleapis.com/groups.discussion_forum": ""
   }
}

응답

응답에는 Operation 리소스의 새 인스턴스가 포함됩니다.

{
   done: true,
   response: {
      @type: "type.googleapis.com/google.apps.cloudidentity.groups.v1.Group",
      name: "groups/<group-id>", // unique group ID
      groupKey: {
         id: "leadership_school_a@example.com" // group email address
      },
      parent: "customers/<customer-id>",
      displayName: "Leadership School A",
      description: "This is the leadership group of school A.",
      createTime: "<created time>",
      updateTime: "<updated time>",
      labels: {
         "cloudidentity.googleapis.com/groups.security": "",
         "cloudidentity.googleapis.com/groups.discussion_forum": ""
      }
   }
}

그룹 구성원 추가

그룹을 만든 후에는 다음 단계로 회원을 추가합니다. 그룹 구성원은 사용자 또는 다른 보안 그룹일 수 있습니다. 그룹을 다른 그룹의 구성원으로 추가하면 멤버십이 적용되는 데 최대 10분이 걸릴 수 있습니다. 또한 API는 그룹 멤버십의 순환에 관한 오류를 반환합니다. 예를 들어 group1group2의 구성원인 경우 group2group1의 구성원이 될 수 없습니다.

그룹에 멤버를 추가하려면 Directory API members.insert 메서드에 다음 POST 요청을 사용합니다.

POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members

groupKey 경로 매개변수는 새 회원의 그룹 이메일 주소 또는 그룹의 고유 ID입니다.

POST 요청을 실행하는 계정에는 다음 범위 중 하나가 필요합니다.

  • https://apps-apis.google.com/a/feeds/groups/
  • https://www.googleapis.com/auth/admin.directory.group
  • https://www.googleapis.com/auth/admin.directory.group.member

요청 본문

요청 본문에는 생성할 member의 세부정보가 포함되어 있습니다.

{
   email: "person_one@example.com",
   role: "MEMBER", // can be `MEMBER`, `OWNER`, `MANAGER`
}

응답

응답에는 새 구성원 인스턴스가 포함됩니다.

{
   kind: "admin#directory#member",
   etag: "<etag-value>", // role's unique ETag
   id: "4567", // group member's unique ID
   email: "person_one@example.com",
   role: "MEMBER",
   type: "GROUP",
   status: "ACTIVE"
}

구성원으로 추가하려는 모든 사용자에 대해 이 요청을 해야 합니다. 이러한 요청을 일괄 처리하여 클라이언트에서 설정해야 할 HTTP 연결 수를 줄일 수 있습니다.

권한이 있는 맞춤 관리자 역할 만들기

Directory API를 사용하면 역할 기반 액세스 제어 (RBAC)를 통해 Google Workspace 도메인의 기능에 대한 액세스를 관리할 수 있습니다. 권한이 있는 맞춤 역할을 만들어 Google Workspace에 제공된 사전 빌드된 역할보다 더 구체적으로 관리자 액세스를 제한할 수 있습니다. 사용자 또는 보안 그룹에 역할을 할당할 수 있습니다. 역할 생성의 제한사항에 관한 자세한 내용은 커스텀 역할 및 역할 할당 제한사항을 참고하세요.

새 역할을 만들려면 Directory API roles.insert 메서드에 다음 POST 요청을 사용하세요.

POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles

customerId는 이 가이드의 1단계에서 사용된 것과 동일합니다.

POST 요청을 실행하는 계정에는 다음 범위가 필요합니다.

  • https://www.googleapis.com/auth/admin.directory.rolemanagement

요청 본문

요청 본문에는 생성할 role의 세부정보가 포함됩니다. 이 역할로 부여해야 하는 각 권한에 privilegeNameserviceId를 추가합니다.

클래스룸 분석

애널리틱스 데이터에 액세스할 수 있는 맞춤 역할을 만들려면 EDU_ANALYTICS_DATA_ACCESS 권한과 함께 serviceId019c6y1840fzfkt로 설정해야 합니다.

{
  roleName: "Education Admin", // customize as needed
  roleDescription: "Access to view analytics data", // customize as needed
  rolePrivileges: [
     {
        privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
        serviceId: "019c6y1840fzfkt"
     }
  ]
}

임시 수업 액세스

클래스에 일시적으로 액세스할 수 있는 커스텀 역할을 만들려면 ADMIN_OVERSIGHT_MANAGE_CLASSES 권한과 함께 serviceId019c6y1840fzfkt로 설정해야 합니다.

{
  roleName: "Education Admin", // customize as needed
  roleDescription: "Access to manage classes privilege", // customize as needed
  rolePrivileges: [
     {
        privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
        serviceId: "019c6y1840fzfkt"
     }
  ]
}

privileges.list 메서드를 호출하여 privilegeIdsserviceIds 목록을 가져옵니다.

응답

응답에 역할의 새 인스턴스가 포함됩니다.

클래스룸 분석

{
  kind: "admin#directory#role",
  etag: "<etag-value>",  // role's unique ETag
  roleId: "<role-id>",   // role's unique ID
  roleName: "Education Admin",
  roleDescription: "Access to view analytics data",
  rolePrivileges: [
     {
        privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
        serviceId: "019c6y1840fzfkt"
     }
  ],
  isSystemRole: false,
  isSuperAdminRole: false
}

임시 수업 액세스

{
  kind: "admin#directory#role",
  etag: "<etag-value>",  // role's unique ETag
  roleId: "<role-id>",   // role's unique ID
  roleName: "Education Admin",
  roleDescription: "Access to manage classes privilege",
  rolePrivileges: [
     {
        privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
        serviceId: "019c6y1840fzfkt"
     }
  ],
  isSystemRole: false,
  isSuperAdminRole: false
}

조직 단위 ID 검색

조직 단위 ID를 사용하여 하나 이상의 조직 단위에 대한 맞춤 관리자 역할의 액세스를 제한할 수 있습니다. OrgUnit API를 사용하여 orgUnitId를 가져옵니다.

클래스룸 분석

특정 사용자 또는 그룹에 맞춤 관리자 역할을 할당할 때는 학생 조직 단위 교사 조직 단위를 선택하는 것이 좋습니다. 이렇게 하면 맞춤 관리자 권한으로 지정된 사용자가 조직 단위의 학생 및 수업 수준 데이터에 액세스할 수 있습니다. 학생 조직 단위를 생략하면 지정된 사용자가 학생 데이터에 액세스할 수 없습니다. 교사 조직 단위를 생략하면 지정된 사용자가 수업 수준 데이터에 액세스할 수 없습니다.

임시 수업 액세스

맞춤 관리자 역할이 있는 사용자가 특정 조직 단위의 수업에 액세스하도록 허용하여 일시적인 수업 액세스 권한을 제한할 수 있습니다. 조직 단위에 대한 액세스를 제한하는 경우 맞춤 관리자 역할이 할당된 그룹은 수업의 담당 교사가 해당 조직 단위에 있는 수업에만 액세스할 수 있습니다.

맞춤 관리자 역할 할당하기

그룹에 맞춤 관리자 역할을 할당하려면 다음 POST 요청을 사용하세요. 역할 할당 한도에 관한 자세한 내용은 커스텀 역할 및 역할 할당 제한사항 안내를 참고하세요.

Directory API roleAssignments.insert:

POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments

그룹 또는 개별 사용자에게 할당

그룹에 권한을 할당하는 경우 요청 본문의 assignedTo 필드에 groupId를 포함합니다. groupId보안 그룹 만들기 단계에서 가져왔습니다. 개별 사용자에게 권한을 할당하는 경우 요청 본문의 assignedTo 필드에 사용자의 ID를 포함합니다. 사용자의 ID는 users.get를 호출하고 사용자의 이메일 주소를 userKey 매개변수로 지정하거나 users.list를 호출하여 가져올 수 있습니다.

POST 요청을 실행하는 계정에는 다음 범위가 필요합니다.

  • https://www.googleapis.com/auth/admin.directory.rolemanagement

요청 본문

요청 본문에는 생성할 RoleAssignment의 세부정보가 포함되어 있습니다. 이 그룹과 연결하려는 조직 단위당 요청을 하나씩 해야 합니다.

{
   roleId: "<role-id>",        // role's unique ID obtained from Step 3
   assignedTo: "<id>",         // group ID or user ID
   scopeType: "ORG_UNIT",      // can be `ORG_UNIT` or `CUSTOMER`
   orgUnitId: "<org-unit-id>"  // organizational unit ID referenced in Step 4
}

응답

응답에는 RoleAssignment의 새 인스턴스가 포함됩니다.

{
   kind: "admin#directory#roleAssignment",
   etag: "<etag-value>",
   roleAssignmentId: "<role-assignment-id>",
   roleId: "<role-id>",
   assignedTo: "<group-id or user-id>",
   assigneeType: "GROUP",
   scopeType: "ORG_UNIT",
   orgUnitId: "<org-unit-id>"
}

리소스

추가 정보는 다음을 참고하세요.