Menetapkan peran administrator khusus untuk fitur Classroom

Administrator dapat membuat peran administrator kustom di konsol Admin untuk mengizinkan individu atau grup tertentu yang memiliki lisensi Education Plus untuk:

Panduan ini menjelaskan cara menyiapkan fitur tersebut di domain Anda menggunakan Google API.

Mengotomatiskan proses penetapan peran khusus

Untuk mengotomatiskan proses penetapan peran khusus:

  1. Buat grup keamanan untuk mengatur pengguna yang dapat mengakses fitur ini.
  2. Tambahkan anggota ke grup.
  3. Buat peran administrator khusus dengan memilih hak istimewa yang benar.
  4. Mengambil ID unit organisasi.
  5. Terapkan peran administrator khusus ke grup yang baru dibuat.

Prasyarat

  1. Baca Panduan memulai untuk memahami cara menyiapkan dan menjalankan aplikasi menggunakan Google API dalam bahasa-bahasa seperti JavaScript, Python, dan Java.
  2. Baca Ringkasan Groups API.
  3. Sebelum menggunakan salah satu Cloud Identity API yang dijelaskan dalam panduan ini, Anda harus menyiapkan Cloud Identity. API ini digunakan untuk membuat grup guna menetapkan hak istimewa administrator.
  4. Siapkan Groups API.

Membuat grup keamanan

Buat grup keamanan dengan metode groups.create. Grup dapat ditetapkan sebagai grup keamanan jika label keamanan disertakan dalam kolom labels pada permintaan. Untuk informasi dan batasan selengkapnya terkait pembuatan grup keamanan, lihat panduan membuat grup keamanan.

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

Atau, Anda dapat menyertakan parameter kueri InitialGroupConfig untuk menginisialisasi pemilik grup:

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

Akun yang membuat permintaan ini memerlukan salah satu cakupan berikut:

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

Isi permintaan

Isi permintaan berisi detail grup yang akan dibuat. customerId harus diawali dengan "C" (misalnya, C046psxkn). Temukan ID pelanggan Anda.

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

Respons

Respons berisi instance baru dari resource 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": ""
      }
   }
}

Tambahkan anggota grup

Setelah Anda membuat grup, langkah selanjutnya adalah menambahkan anggota. Anggota grup dapat berupa pengguna atau grup keamanan lain. Jika Anda menambahkan grup sebagai anggota grup lain, mungkin ada penundaan hingga 10 menit sebelum keanggotaan diterapkan. Selain itu, API akan menampilkan error untuk siklus dalam keanggotaan grup. Misalnya, jika group1 adalah anggota dari group2, group2 tidak boleh menjadi anggota dari group1.

Untuk menambahkan anggota ke grup, gunakan permintaan POST berikut.

API Direktori members.insert:

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

Parameter jalur groupKey adalah alamat email grup anggota baru atau ID unik grup.

Akun yang membuat permintaan POST memerlukan salah satu cakupan berikut:

  • 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

Isi permintaan

Isi permintaan berisi detail member yang akan dibuat.

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

Respons

Respons berisi instance baru anggota.

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

Permintaan ini perlu dibuat untuk setiap pengguna yang ingin Anda tambahkan sebagai anggota. Anda dapat membuat batch permintaan ini untuk mengurangi jumlah koneksi HTTP yang harus dibuat klien.

Membuat peran administrator khusus dengan hak istimewa

Directory API memungkinkan Anda menggunakan kontrol akses berbasis peran (RBAC) untuk mengelola akses ke fitur di domain Google Workspace Anda. Anda dapat membuat peran kustom dengan hak istimewa untuk membatasi akses administrator secara lebih spesifik daripada peran bawaan yang disediakan dengan Google Workspace. Anda dapat menetapkan peran untuk pengguna atau grup keamanan. Untuk informasi selengkapnya tentang batasan pembuatan peran, lihat batasan penetapan peran dan peran khusus.

Untuk membuat peran baru, gunakan permintaan POST berikut.

API Direktori roles.insert:

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

customerId sama dengan yang digunakan pada langkah 1 dalam panduan ini.

Akun yang membuat permintaan POST memerlukan cakupan berikut:

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

Isi permintaan

Isi permintaan berisi detail role yang akan dibuat. Tambahkan privilegeName dan serviceId untuk setiap hak istimewa yang harus diberikan dengan peran ini.

Analisis Classroom

Hak istimewa EDU_ANALYTICS_DATA_ACCESS diperlukan untuk membuat peran khusus yang dapat mengakses data analisis, beserta serviceId yang ditetapkan ke 019c6y1840fzfkt.

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

Akses kelas sementara

Hak istimewa ADMIN_OVERSIGHT_MANAGE_CLASSES diperlukan untuk membuat peran khusus yang dapat mengakses class untuk sementara, bersama dengan serviceId yang ditetapkan ke 019c6y1840fzfkt.

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

Panggil metode privileges.list untuk mengambil daftar privilegeIds dan serviceIds.

Respons

Respons berisi instance baru dari peran tersebut.

Analisis Classroom

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

Akses kelas sementara

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

Mengambil ID unit organisasi

Anda dapat membatasi akses peran administrator khusus untuk satu atau beberapa unit organisasi menggunakan ID unit organisasi. Gunakan OrgUnit API untuk mengambil orgUnitId.

Analisis Classroom

Sebaiknya pilih unit organisasi siswa dan unit organisasi pengajar saat menetapkan peran administrator khusus untuk pengguna atau grup tertentu. Tindakan ini memungkinkan pengguna yang ditetapkan dengan hak istimewa administrator khusus mengakses data tingkat siswa dan tingkat kelas untuk unit organisasi. Jika unit organisasi siswa dihapus, pengguna yang ditetapkan tidak akan memiliki akses ke data siswa. Jika unit organisasi pengajar dihapus, pengguna yang ditetapkan tidak akan memiliki akses ke data tingkat kelas.

Akses kelas sementara

Anda dapat membatasi hak istimewa akses kelas sementara dengan mengizinkan pengguna yang memiliki akses peran administrator khusus ke kelas di unit organisasi tertentu. Jika membatasi akses ke unit organisasi, grup yang diberi peran administrator khusus hanya dapat mengakses kelas tempat pengajar utama kelas berada di unit organisasi tersebut.

Menetapkan peran administrator khusus

Untuk menetapkan peran administrator khusus ke grup, gunakan permintaan POST berikut. Lihat panduan batasan penetapan peran dan peran khusus untuk batas penetapan peran.

API Direktori roleAssignments.insert:

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

Tetapkan ke grup atau pengguna individual

Jika menetapkan hak istimewa ke grup, sertakan groupId di kolom assignedTo dalam isi permintaan. groupId diperoleh pada langkah Membuat grup keamanan. Jika menetapkan hak istimewa ke pengguna individual, sertakan ID pengguna tersebut di kolom assignedTo dalam isi permintaan. ID pengguna dapat diambil dengan memanggil users.get dan menentukan alamat email pengguna sebagai parameter userKey atau dengan memanggil users.list.

Akun yang membuat permintaan POST memerlukan cakupan berikut:

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

Isi permintaan

Isi permintaan berisi detail RoleAssignment yang akan dibuat. Anda harus membuat satu permintaan per unit organisasi yang ingin dikaitkan dengan grup ini.

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

Respons

Respons berisi instance baru 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>"
}

Referensi

Informasi tambahan dapat ditemukan di: