Администраторы могут создавать пользовательские роли администратора в консоли администратора, чтобы разрешить определенным лицам или группам с лицензией Education Plus :
Просматривайте аналитику Classroom , чтобы понимать такие данные, как выполнение заданий, тенденции оценок и внедрение Classroom.
Получите временный доступ к занятиям в Classroom, чтобы оказывать поддержку преподавателям, публиковать объявления и многое другое, не будучи назначенным постоянным соучителем.
В этом руководстве объясняется, как настроить эти функции в вашем домене с помощью API Google.
Автоматизируйте процесс назначения пользовательских ролей
Чтобы автоматизировать процесс назначения пользовательских ролей:
- Создайте группы безопасности, чтобы организовать пользователей, которые могут получить доступ к этим функциям.
- Добавляйте участников в группы.
- Создайте пользовательскую роль администратора, выбрав правильные привилегии.
- Получить идентификаторы организационных подразделений.
- Примените пользовательскую роль администратора к вновь созданным группам.
Предпосылки
- Прочитайте руководства по быстрому старту, чтобы понять, как настроить и запустить приложение с использованием API Google на таких языках, как JavaScript, Python и Java.
- Ознакомьтесь с обзором API групп .
- Прежде чем использовать любой из API Cloud Identity, описанных в этом руководстве, необходимо настроить Cloud Identity . Эти API используются для создания групп для назначения прав администратора.
- Настройте 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>"
}
Ресурсы
Дополнительную информацию можно найти по адресу:
- Обзор API каталога
- Аутентификация и авторизация, специфичные для API каталога
- Документация API каталога REST
- Поддержка разработчиков API Admin SDK