Os administradores podem criar funções de administrador personalizadas no Admin Console para permitir que determinadas pessoas ou grupos com uma licença do Education Plus:
Acesse as Análises do Google Sala de Aula para entender dados como conclusão de atividades, tendências de notas e adoção do Google Sala de Aula.
Acessar temporariamente as turmas no Google Sala de Aula para ajudar os educadores, postar avisos e muito mais, sem ser atribuído como um professor auxiliar permanente.
Este guia explica como configurar esses recursos no seu domínio usando as APIs do Google.
Automatizar o processo de atribuição de função personalizada
Para automatizar o processo de atribuição de função personalizada:
- Crie grupos de segurança para organizar os usuários que podem acessar esses recursos.
- Adicione participantes aos grupos.
- Crie uma função de administrador personalizada selecionando o privilégio correto.
- Recupere os IDs das unidades organizacionais.
- Aplique a função personalizada de administrador aos grupos recém-criados.
Pré-requisitos
- Leia os guias de início rápido para entender como configurar e executar um aplicativo usando as APIs do Google em linguagens como JavaScript, Python e Java.
- Leia a visão geral da API Groups.
- Antes de usar qualquer uma das APIs do Cloud Identity descritas neste guia, configure o Cloud Identity. Essas APIs são usadas para criar grupos e atribuir privilégios de administrador.
- Configure a API Groups.
Criar grupos de segurança
Crie um grupo de segurança com o método groups.create
. Um grupo pode ser definido como um grupo de segurança quando o marcador de segurança é incluído no campo labels
da solicitação. Para mais informações e limitações sobre a criação de grupos de segurança, consulte o guia Como criar grupos de segurança.
POST https://cloudidentity.googleapis.com/v1/groups
Se quiser, inclua o parâmetro de consulta InitialGroupConfig
para inicializar o proprietário do grupo:
POST https://cloudidentity.googleapis.com/v1/groups&initialGroupConfig={initialGroupConfig}
A conta que faz essa solicitação precisa de um dos seguintes escopos:
https://www.googleapis.com/auth/cloud-identity.groups
https://www.googleapis.com/auth/cloud-identity
https://www.googleapis.com/auth/cloud-platform
Corpo da solicitação
O corpo da solicitação contém detalhes do grupo a ser criado. O customerId
precisa começar com "C" (por exemplo, C046psxkn
). Encontre seu ID de cliente.
{
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": ""
}
}
Resposta
A resposta contém uma nova instância do recurso 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": ""
}
}
}
Adicionar membros do grupo
Depois de criar o grupo, a próxima etapa é adicionar participantes. Um membro do grupo pode ser um usuário ou outro grupo de segurança. Se você adicionar um grupo como participante de outro grupo, a associação pode levar até 10 minutos para ser propagada. Além disso, a API retorna um erro para ciclos em associações de grupo. Por exemplo, se group1
for membro de group2
, group2
não poderá ser membro de group1
.
Para adicionar um membro a um grupo, use a seguinte solicitação POST.
API Directory members.insert
:
POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members
O parâmetro de caminho groupKey
é o endereço de e-mail do grupo
do novo membro ou o ID exclusivo do grupo.
A conta que faz a solicitação POST precisa de um dos seguintes escopos:
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
Corpo da solicitação
O corpo da solicitação contém detalhes do member
a ser criado.
{
email: "person_one@example.com",
role: "MEMBER", // can be `MEMBER`, `OWNER`, `MANAGER`
}
Resposta
A resposta contém a nova instância do membro.
{
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"
}
Essa solicitação precisa ser feita para cada usuário que você quer adicionar como membro. É possível agrupar em lote essas solicitações para reduzir o número de conexões HTTP que o cliente precisa fazer.
Criar uma função de administrador personalizada com privilégios
Com a API Directory, é possível usar o controle de acesso baseado em papéis (RBAC) para gerenciar o acesso aos recursos no seu domínio do Google Workspace. É possível criar funções personalizadas com privilégios para limitar o acesso de administradores de forma mais específica do que as funções predefinidas fornecidas com o Google Workspace. É possível atribuir funções a usuários ou grupos de segurança. Para mais informações sobre as limitações da criação de papéis, consulte as limitações de papéis personalizados e atribuições de papéis.
Para criar uma função, use a seguinte solicitação POST.
API Directory roles.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles
O customerId
é o mesmo usado na etapa 1 deste guia.
A conta que faz a solicitação POST precisa do seguinte escopo:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Corpo da solicitação
O corpo da solicitação contém detalhes do role
a ser criado. Adicione um privilegeName
e um serviceId
para cada privilégio que
deve ser concedido com essa função.
Análises do Google Sala de Aula
O privilégio EDU_ANALYTICS_DATA_ACCESS
é necessário para criar uma função personalizada que possa acessar dados de análise, além de serviceId
definido como 019c6y1840fzfkt
.
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to view analytics data", // customize as needed
rolePrivileges: [
{
privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
serviceId: "019c6y1840fzfkt"
}
]
}
Acesso temporário à turma
O privilégio ADMIN_OVERSIGHT_MANAGE_CLASSES
é necessário para criar um papel personalizado que possa acessar temporariamente as turmas, além de serviceId
definido como 019c6y1840fzfkt
.
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to manage classes privilege", // customize as needed
rolePrivileges: [
{
privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
serviceId: "019c6y1840fzfkt"
}
]
}
Chame o método privileges.list
para recuperar uma lista de privilegeIds
e serviceIds
.
Resposta
A resposta contém a nova instância da função.
Análises do Google Sala de Aula
{
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
}
Acesso temporário à turma
{
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
}
Recuperar IDs de unidades organizacionais
É possível limitar o acesso da função de administrador personalizada a uma ou mais unidades organizacionais usando o ID da unidade organizacional. Use a API OrgUnit para recuperar o orgUnitId
.
Análises do Google Sala de Aula
Recomendamos que você selecione uma unidade organizacional de estudantes e de professores ao atribuir a função de administrador personalizada a um usuário ou grupo específico. Assim, os usuários designados com o privilégio de administrador personalizado têm acesso aos dados de estudantes e turmas das unidades organizacionais. Se a unidade organizacional dos estudantes for omitida, os usuários designados não terão acesso aos dados dos estudantes. Se a unidade organizacional do professor for omitida, os usuários designados não terão acesso aos dados da turma.
Acesso temporário à turma
É possível limitar os privilégios de acesso temporário às turmas permitindo que usuários com a função de administrador personalizada acessem turmas em unidades organizacionais específicas. Se você restringir o acesso a uma unidade organizacional, o grupo atribuído à função de administrador personalizada só poderá acessar as turmas em que o professor principal faz parte dessa unidade.
Atribuir a função de administrador personalizada
Para atribuir a função de administrador personalizada a um grupo, use a seguinte solicitação POST. Consulte as limitações de atribuição de papéis e papéis personalizados para saber mais sobre os limites de atribuição de papéis.
API Directory roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
Atribuir a um grupo ou usuário individual
Se você estiver atribuindo o privilégio a um grupo, inclua o groupId
no campo assignedTo
do corpo da solicitação. O groupId
foi obtido na etapa Criar grupos de segurança. Se você estiver atribuindo o privilégio a um usuário individual, inclua o ID dele no campo assignedTo
no corpo da solicitação. O ID do usuário pode ser recuperado chamando
users.get
e especificando o endereço de e-mail
do usuário como o parâmetro userKey
ou chamando
users.list
.
A conta que faz a solicitação POST precisa do seguinte escopo:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Corpo da solicitação
O corpo da solicitação contém detalhes do
RoleAssignment
a ser criado. Você precisa fazer uma solicitação por unidade organizacional que quer associar a esse grupo.
{
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
}
Resposta
A resposta contém a nova instância do
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>"
}
Recursos
Para mais informações, acesse:
- Visão geral da API Directory
- Autenticação e autorização específicas da API Directory
- Documentação da API REST do Directory
- Suporte para desenvolvedores da API Admin SDK