Назначьте специальные роли администратора для функций Класса.

Администраторы могут создавать пользовательские роли администратора в консоли администратора, чтобы разрешить определенным лицам или группам с лицензией Education Plus :

В этом руководстве объясняется, как настроить эти функции в вашем домене с помощью API Google.

Автоматизируйте процесс назначения пользовательских ролей

Чтобы автоматизировать процесс назначения пользовательских ролей:

  1. Создайте группы безопасности, чтобы организовать пользователей, которые могут получить доступ к этим функциям.
  2. Добавляйте участников в группы.
  3. Создайте пользовательскую роль администратора, выбрав правильные привилегии.
  4. Получить идентификаторы организационных подразделений.
  5. Примените пользовательскую роль администратора к вновь созданным группам.

Предпосылки

  1. Прочитайте руководства по быстрому старту, чтобы понять, как настроить и запустить приложение с использованием API Google на таких языках, как JavaScript, Python и Java.
  2. Ознакомьтесь с обзором API групп .
  3. Прежде чем использовать любой из API Cloud Identity, описанных в этом руководстве, необходимо настроить Cloud Identity . Эти 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 ). Найдите свой идентификатор клиента .

{
   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 возвращает ошибку для циклов в членстве в группах. Например, если group1 является участником group2 , group2 не может быть участником group1 .

Чтобы добавить участника в группу, используйте следующий POST-запрос.

API каталога members.insert :

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

Параметр пути groupKey — это адрес электронной почты группы нового участника или уникальный идентификатор группы.

Для учетной записи, отправляющей запрос 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-подключений, которые должен установить ваш клиент.

Создайте привилегированную пользовательскую роль администратора

API каталога позволяет использовать управление доступом на основе ролей (RBAC) для управления доступом к функциям в вашем домене Google Workspace. Вы можете создавать пользовательские роли с привилегиями для ограничения доступа администратора более конкретно, чем предопределенные роли, предоставляемые Google Workspace. Вы можете назначать роли пользователям или группам безопасности. Более подробную информацию об ограничениях создания ролей см. в разделе Пользовательские роли и ограничения назначения ролей .

Чтобы создать новую роль, используйте следующий POST-запрос.

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 , которую нужно создать. Добавьте privilegeName и serviceId для каждой привилегии, которая должна быть предоставлена ​​с этой ролью.

Аналитика в классе

Для создания пользовательской роли, которая может получать доступ к аналитическим данным, необходима привилегия EDU_ANALYTICS_DATA_ACCESS , а также serviceId установленный на 019c6y1840fzfkt .

{
   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 , а также serviceId установленный на 019c6y1840fzfkt .

{
   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 для получения списка privilegeIds и serviceIds .

Ответ

Ответ содержит новый экземпляр роли.

Аналитика в классе

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

Получить идентификаторы организационных единиц

Вы можете ограничить доступ пользовательской роли администратора к одному или нескольким организационным подразделениям, используя идентификатор организационного подразделения. Используйте API OrgUnit для получения orgUnitId .

Аналитика в классе

Рекомендуется выбрать организационное подразделение студента и организационное подразделение преподавателя при назначении роли настраиваемого администратора определенному пользователю или группе. Это позволяет пользователям, назначенным с привилегией настраиваемого администратора, получать доступ к данным на уровне студента и класса для организационных подразделений. Если организационное подразделение студента не указано, назначенные пользователи не будут иметь доступа к данным студента. Если организационное подразделение преподавателя не указано, назначенные пользователи не будут иметь доступа к данным на уровне класса.

Временный доступ к занятиям

Вы можете ограничить временные привилегии доступа к классам, разрешив пользователям с пользовательской ролью администратора доступ к классам в определенных организационных подразделениях. При ограничении доступа к организационному подразделению группа, назначенная пользовательской роли администратора, может получить доступ только к тем классам, где основной учитель класса находится в этом организационном подразделении.

Назначить пользовательскую роль администратора

Чтобы назначить пользовательскую роль администратора группе, используйте следующий запрос POST. Обратитесь к руководству по пользовательским ролям и ограничениям назначения ролей для ограничений назначения ролей.

API каталога roleAssignments.insert :

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

Назначить группе или отдельному пользователю

Если привилегия назначается группе, включите groupId в поле assignedTo в теле запроса. groupId был получен на этапе Create security groups . Если привилегия назначается отдельному пользователю, включите идентификатор пользователя в поле assignedTo в теле запроса. Идентификатор пользователя можно получить, вызвав 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>"
}

Ресурсы

Дополнительную информацию можно найти по адресу: