Администраторы домена имеют ряд инструментов для управления функциями и приложениями, к которым имеют доступ пользователи в их домене. На этой странице описываются эти функции, как они могут влиять на внешнюю интеграцию или быть полезными для нее, а также соответствующие запросы API.
Управление доступом к сторонним приложениям для пользователей младше 18 лет.
Администраторы должны настроить сторонние приложения в консоли администратора Google для пользователей младше 18 лет. Если администратор не настроил приложение, пользователи младше 18 лет не смогут получить к нему доступ с помощью своей учетной записи Google Workspace for Education.
От разработчиков, создающих приложения для пользователей Google Workspace for Education младше 18 лет, никаких действий не требуется. Настройка сторонних приложений может быть выполнена только администраторами в пользовательском интерфейсе консоли администрирования и не может быть выполнена программным способом.
Назначьте пользовательские роли администратора для функций класса.
Администраторы могут создавать пользовательские роли администратора в консоли администрирования, чтобы разрешить определенным лицам или группам пользователей Google Workspace for Education Standard или Plus :
Просмотрите аналитику Classroom , чтобы понять такие данные, как выполнение заданий, тенденции оценок и использование Classroom.
Временно получить доступ к занятиям в Classroom без назначения постоянного сопреподавателя.
В этом руководстве объясняется, как настроить эти функции в вашем домене с помощью API Google.
Автоматизируйте процесс назначения пользовательских ролей.
В этом руководстве описано, как выполнить следующие шаги для автоматизации процесса назначения пользовательских ролей:
- Создайте группы безопасности, чтобы определить, какие пользователи имеют доступ к этим функциям.
- Добавляйте участников в группы.
- Создайте пользовательскую роль администратора, выбрав необходимые права доступа.
- Получить идентификаторы организационных подразделений.
- Примените пользовательскую роль администратора к вновь созданным группам.
Предварительные требования
- Ознакомьтесь с руководствами по быстрому запуску , чтобы понять, как настроить и запустить приложение, использующее API Google, на таких языках, как JavaScript, Python и Java.
- Прежде чем использовать какие-либо API Cloud Identity, описанные в этом руководстве, необходимо настроить Cloud Identity . Эти API используются для создания групп, назначающих права администратора.
- Ознакомьтесь с обзором 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-запрос к методу members.insert API каталога:
POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members
Параметр groupKey path содержит адрес электронной почты нового участника группы или уникальный идентификатор группы.
Для учетной записи, отправляющей 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-запрос к методу roles.insert API каталога:
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-запрос. Ограничения на назначение ролей см. в руководстве по пользовательским ролям и их ограничениям.
Directory API roleAssignments.insert :
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
Назначить группе или отдельному пользователю
При назначении привилегии группе укажите groupId в поле assignedTo в теле запроса. groupId был получен на этапе создания групп безопасности . При назначении привилегии отдельному пользователю укажите ID пользователя в поле assignedTo в теле запроса. ID пользователя можно получить, вызвав 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 каталогов.
- Документация по REST API каталога
- Поддержка разработчиков API Admin SDK