Classroom özellikleri için özel yönetici rolleri atama

Yöneticiler, Education Plus lisansına sahip belirli kişi veya grupların aşağıdakileri yapmasına izin vermek için Yönetici Konsolu'nda özel yönetici rolleri oluşturabilir:

Bu kılavuzda, Google API'lerini kullanarak bu özelliklerin alanınızda nasıl ayarlanacağı açıklanmaktadır.

Özel rol atama işlemini otomatikleştirme

Özel rol atama sürecini otomatikleştirmek için:

  1. Bu özelliklere erişebilen kullanıcıları düzenlemek için güvenlik grupları oluşturun.
  2. Gruplara üye ekleyin.
  3. Doğru ayrıcalığı seçerek özel bir yönetici rolü oluşturun.
  4. Kuruluş birimi kimliklerini alın.
  5. Özel yönetici rolünü yeni oluşturulan gruplara uygulayın.

Ön koşullar

  1. JavaScript, Python ve Java gibi dillerde Google API'lerini kullanarak bir uygulamayı nasıl kurup çalıştıracağınızı öğrenmek için Hızlı Başlangıç kılavuzlarını okuyun.
  2. Groups API'ye Genel Bakış bölümünü okuyun.
  3. Bu kılavuzda açıklanan Cloud Identity API'lerinden herhangi birini kullanmadan önce Cloud Identity'yi kurmanız gerekir. Bu API'ler, yönetici ayrıcalıkları atamak amacıyla grup oluşturmak için kullanılır.
  4. Groups API'yi ayarlayın.

Güvenlik grupları oluşturma

groups.create yöntemiyle güvenlik grubu oluşturun. İsteğin labels alanına güvenlik etiketi eklendiğinde bir grup güvenlik grubu olarak ayarlanabilir. Güvenlik grupları oluşturmayla ilgili daha fazla bilgi ve sınırlamalar için güvenlik grupları oluşturma kılavuzuna bakın.

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

İsteğe bağlı olarak, grup sahibini başlatmak için InitialGroupConfig sorgu parametresini ekleyebilirsiniz:

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

Bu isteği yapan hesap için aşağıdaki kapsamlardan biri gereklidir:

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

İstek içeriği

İstek metni, oluşturulacak grubun ayrıntılarını içerir. customerId "C" ile başlamalıdır (örneğin, C046psxkn). Müşteri kimliğinizi bulun.

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

Yanıt

Yanıt, Operation kaynağının yeni bir örneğini içerir.

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

Grup üyeleri ekleme

Grubu oluşturduktan sonraki adım üyeleri eklemektir. Bir grup üyesi, bir kullanıcı veya başka bir güvenlik grubu olabilir. Bir grubu başka bir grubun üyesi olarak eklerseniz üyeliğin yayılmasında 10 dakikaya varan bir gecikme olabilir. Ayrıca API, grup üyeliklerindeki döngüler için hata döndürür. Örneğin, group1, group2 grubunun üyesiyse group2, group1 grubunun üyesi olamaz.

Gruba üye eklemek için aşağıdaki POST isteğini kullanın.

Directory API members.insert:

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

groupKey yol parametresi, yeni üyenin grup e-posta adresi veya grubun benzersiz kimliğidir.

POST isteğini yapan hesap için aşağıdaki kapsamlardan biri gerekir:

  • 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

İstek içeriği

İstek gövdesi, oluşturulacak member ayrıntılarını içerir.

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

Yanıt

Yanıt, üyenin yeni örneğini içerir.

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

Bu isteğin, üye olarak eklemek istediğiniz her kullanıcı için yapılması gerekir. İstemcinizin kurması gereken HTTP bağlantısı sayısını azaltmak için bu istekleri toplu hale getirebilirsiniz.

Ayrıcalıklı özel yönetici rolü oluşturma

Directory API, Google Workspace alanınızdaki özelliklere erişimi yönetmek için rol tabanlı erişim denetimi (RBAC) kullanmanıza olanak tanır. Yönetici erişimini, Google Workspace ile sağlanan önceden oluşturulmuş rollere kıyasla daha özel bir şekilde sınırlandırmak için ayrıcalıklara sahip özel roller oluşturabilirsiniz. Kullanıcılara veya güvenlik gruplarına rol atayabilirsiniz. Rol oluşturma sınırlamaları hakkında daha ayrıntılı bilgi için özel rol ve rol ataması sınırlamaları bölümüne bakın.

Yeni bir rol oluşturmak için aşağıdaki POST isteğini kullanın.

Directory API roles.insert:

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

customerId, bu kılavuzun 1. adımında kullanılanla aynıdır.

POST isteğini yapan hesap için aşağıdaki kapsam gerekir:

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

İstek içeriği

İstek gövdesi, oluşturulacak role ayrıntılarını içerir. Bu rolle verilmesi gereken her ayrıcalık için bir privilegeName ve serviceId ekleyin.

Classroom analizleri

EDU_ANALYTICS_DATA_ACCESS ayrıcalığı, 019c6y1840fzfkt olarak ayarlanmış serviceId ile birlikte analiz verilerine erişebilen özel bir rol oluşturmak için gereklidir.

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

Geçici sınıf erişimi

serviceId ve 019c6y1840fzfkt olarak ayarlanmış şekilde sınıflara geçici olarak erişebilen özel bir rol oluşturmak için ADMIN_OVERSIGHT_MANAGE_CLASSES ayrıcalığı gereklidir.

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

privilegeIds ve serviceIds listesini almak için privileges.list yöntemini çağırın.

Yanıt

Yanıt, rolün yeni örneğini içerir.

Classroom analizleri

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

Geçici sınıf erişimi

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

Kuruluş birimi kimliklerini alma

Kuruluş birimi kimliğini kullanarak özel yönetici rolünün erişimini bir veya daha fazla kuruluş birimiyle sınırlandırabilirsiniz. orgUnitId öğesini almak için OrgUnit API'yi kullanın.

Classroom analizleri

Belirli bir kullanıcıya veya gruba özel yönetici rolünü atarken bir öğrenci kuruluş birimi ve öğretmen kuruluş birimi seçmeniz önerilir. Bu işlem, özel yönetici ayrıcalığıyla atanan kullanıcıların, kuruluş birimlerinin öğrenci ve sınıf düzeyindeki verilerine erişmesine izin verir. Öğrenci kuruluş birimi atlanırsa tanımlanmış kullanıcılar öğrenci verilerine erişemez. Öğretmen kuruluş birimi atlanırsa tanımlanan kullanıcılar sınıf düzeyindeki verilere erişemez.

Geçici sınıf erişimi

Özel yönetici rolüne sahip kullanıcılara belirli kuruluş birimlerindeki sınıflara erişim izni vererek geçici sınıf erişimi ayrıcalıklarını sınırlayabilirsiniz. Bir kuruluş birimine erişimi kısıtlıyorsanız özel yönetici rolü atanan grup, yalnızca sınıfın birincil öğretmeninin ilgili kuruluş biriminde olduğu sınıflara erişebilir.

Özel yönetici rolü atama

Bir gruba özel yönetici rolü atamak için aşağıdaki POST isteğini kullanın. Rol atama sınırları için özel rol ve rol ataması sınırlamaları rehberine bakın.

Directory API roleAssignments.insert:

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

Gruba veya tek bir kullanıcıya atama

Bir gruba ayrıcalık atayorsanız istek gövdesindeki assignedTo alanına groupId değerini ekleyin. groupId, Güvenlik grupları oluşturma adımında elde edilmiştir. Ayrıcalığı tek bir kullanıcıya atıyorsanız istek gövdesindeki assignedTo alanına kullanıcının kimliğini ekleyin. Kullanıcı kimliği, users.get çağrısı yapılarak ve kullanıcının e-posta adresi userKey parametresi olarak belirtilerek veya users.list çağrısı yapılarak alınabilir.

POST isteğini yapan hesap için aşağıdaki kapsam gerekir:

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

İstek içeriği

İstek gövdesi, oluşturulacak RoleAssignment ile ilgili ayrıntıları içerir. Bu grupla ilişkilendirmek istediğiniz her kuruluş birimi için bir istek göndermeniz gerekir.

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

Yanıt

Yanıt, RoleAssignment öğesinin yeni örneğini içerir.

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

Kaynaklar

Ek bilgilere şu adresten ulaşabilirsiniz: