Os administradores podem criar funções de administrador personalizadas no Admin Console para permitir que determinados indivíduos ou grupos com uma licença do Education Plus:
Consulte 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.
Acesse temporariamente as turmas no Google Sala de Aula para ajudar os educadores, postar avisos e muito mais, sem precisar ser designado como professor auxiliar permanente.
Este guia explica como configurar esses recursos no seu domínio usando as APIs do Google.
Automatizar o processo personalizado de atribuição de papéis
Para automatizar o processo de atribuição de papéis personalizado:
- 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 de unidade organizacional.
- Aplique a função de administrador personalizada 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, você precisa configurar o Cloud Identity. Essas APIs são usadas para criar grupos para 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 grupo de segurança quando o rótulo de segurança está 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
Também é possível incluir 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 a solicitação exige 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. 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 participantes 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 membro
de outro, poderá haver um atraso de até 10 minutos para a associação
ser propagada. Além disso, a API retorna um erro para ciclos em associações a grupos. 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 dele.
A conta que faz a solicitação POST requer 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 da member
a ser criada.
{
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 essas solicitações para reduzir o número de conexões HTTP que o cliente precisa fazer.
Criar um papel de administrador personalizado com privilégios
A API Directory permite que você use o controle de acesso baseado em papéis (RBAC, na sigla em inglês) para gerenciar o acesso aos recursos no seu domínio do Google Workspace. É possível criar papéis personalizados com privilégios para limitar o acesso de administrador de maneira mais específica do que os papéis predefinidos fornecidos com o Google Workspace. É possível atribuir papéis a usuários ou grupos de segurança. Para informações mais detalhadas sobre as limitações da criação de papéis, consulte as limitações de papel personalizado e atribuição de papéis.
Para criar um novo papel, 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 requer o seguinte escopo:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Corpo da solicitação
O corpo da solicitação contém detalhes da role
a ser criada. Adicione um privilegeName
e um serviceId
para cada privilégio que
precisa ser concedido com esse papel.
Análises do Google Sala de Aula
O privilégio EDU_ANALYTICS_DATA_ACCESS
é necessário para criar um papel personalizado que pode acessar dados de análise, com o 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 a turmas
O privilégio ADMIN_OVERSIGHT_MANAGE_CLASSES
é necessário para criar um papel personalizado que pode acessar as classes temporariamente, com o 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 do papel.
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 a turmas
{
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 unidade organizacional
Você pode 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. Isso permite que os usuários designados com o privilégio de administrador personalizado acessem dados no nível da turma e dos alunos das unidades organizacionais. Se a unidade organizacional dos estudantes for omitida, os usuários designados não terão acesso aos dados deles. Se a unidade organizacional dos professores for omitida, os usuários designados não terão acesso aos dados da turma.
Acesso temporário a turmas
Você pode limitar os privilégios de acesso temporário à classe permitindo que os usuários com a função de administrador personalizada acessem as turmas em unidades organizacionais específicas. Se estiver restringindo o acesso a uma unidade organizacional, o grupo com a função de administrador personalizada só vai poder acessar as turmas em que o professor principal da turma está nessa unidade organizacional.
Atribuir a função de administrador personalizada
Para atribuir o papel de administrador personalizado a um grupo, use a seguinte solicitação POST. Consulte as orientações sobre limitações de atribuição de papéis personalizados e papéis personalizados.
API Directory roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
Atribuir a um grupo ou usuário específico
Se estiver atribuindo o privilégio a um grupo, inclua o groupId
no campo assignedTo
no 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 do usuário no campo assignedTo
no corpo da solicitação. Para recuperar o ID do usuário, chame
users.get
e especifique o endereço de e-mail
do usuário como o parâmetro userKey
ou chame
users.list
.
A conta que faz a solicitação POST requer o seguinte escopo:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Corpo da solicitação
O corpo da solicitação contém detalhes da
RoleAssignment
a ser criada. Você precisa fazer uma solicitação por unidade organizacional que quer associar a este 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
Informações adicionais podem ser encontradas em:
- Visão geral da API Directory
- Autenticação e autorização específicas da API Directory
- Documentação REST da API Directory
- Suporte para desenvolvedores da API Admin SDK