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

관리자는 관리 콘솔에서 커스텀 관리자 역할을 생성하여 Education Plus 라이선스가 있는 특정 개인 또는 그룹이 다음 작업을 수행하도록 허용할 수 있습니다.

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

커스텀 역할 할당 프로세스 자동화

맞춤 역할 할당 프로세스를 자동화하려면 다음 안내를 따르세요.

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

기본 요건

  1. 빠른 시작 가이드를 읽고 JavaScript, Python, Java와 같은 언어에서 Google API를 사용하여 애플리케이션을 설정하고 실행하는 방법을 알아보세요.
  2. Groups API 개요를 읽어보세요.
  3. 이 가이드에 설명된 Cloud ID API를 사용하려면 먼저 Cloud ID를 설정해야 합니다. 이러한 API는 관리자 권한을 할당하는 그룹을 만드는 데 사용됩니다.
  4. 그룹스 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의 멤버가 될 수 없습니다.

그룹에 구성원을 추가하려면 다음 POST 요청을 사용합니다.

Directory API members.insert:

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에서 제공되는 사전 빌드된 역할보다 더 구체적으로 관리자 액세스를 제한하는 권한이 있는 커스텀 역할을 만들 수 있습니다. 사용자 또는 보안 그룹에 역할을 할당할 수 있습니다. 역할 만들기 제한사항에 대한 자세한 내용은 커스텀 역할 및 역할 할당 제한사항을 참조하세요.

새 역할을 만들려면 다음 POST 요청을 사용하세요.

Directory API roles.insert:

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

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

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

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

요청 본문

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

클래스룸 분석

019c6y1840fzfkt로 설정된 serviceId와 함께 애널리틱스 데이터에 액세스할 수 있는 커스텀 역할을 만들려면 EDU_ANALYTICS_DATA_ACCESS 권한이 필요합니다.

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

임시 수업 액세스

019c6y1840fzfkt로 설정된 serviceId와 함께 임시로 클래스에 액세스할 수 있는 커스텀 역할을 만들려면 ADMIN_OVERSIGHT_MANAGE_CLASSES 권한이 필요합니다.

{
   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를 포함합니다. users.get를 호출하고 사용자의 이메일 주소를 userKey 매개변수로 지정하거나 users.list을 호출하여 사용자의 ID를 가져올 수 있습니다.

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>"
}

자료

자세한 내용은 다음을 참고하세요.