Los administradores de dominios tienen varios controles para administrar las funciones y las aplicaciones a las que pueden acceder los usuarios de su dominio. En esta página, se describen estas funciones, cómo pueden afectar o ser útiles para una integración externa y las solicitudes a la API relevantes.
Administra el acceso a apps de terceros para usuarios menores de 18 años
Los administradores deben configurar aplicaciones de terceros en la Consola del administrador de Google para los usuarios menores de 18 años. Si un administrador no configuró una aplicación, los usuarios menores de 18 años no podrán acceder a ella con sus cuentas de Google Workspace for Education.
Los desarrolladores que compilan aplicaciones para usuarios de Google Workspace for Education menores de 18 años no deben realizar ninguna acción. Solo los administradores pueden configurar apps de terceros en la IU de la Consola del administrador y no de forma programática.
Designa roles de administrador personalizados para las funciones de Classroom
Los administradores pueden crear roles de administrador personalizados en la Consola del administrador para permitir que ciertas personas o grupos con una licencia de Education Plus realicen las siguientes acciones:
Consulta las estadísticas de Classroom para comprender datos como la finalización de tareas, las tendencias de calificaciones y la adopción de Classroom.
Accede de manera temporal a las clases en Classroom sin asignar un profesor adjunto permanente.
En esta guía, se explica cómo configurar estas funciones en tu dominio con las APIs de Google.
Automatiza el proceso de asignación de roles personalizados
En esta guía, se te indicará cómo completar los siguientes pasos para automatizar el proceso de asignación de roles personalizados:
- Crea grupos de seguridad para organizar a los usuarios que pueden acceder a estas funciones.
- Agrega miembros a los grupos.
- Para crear un rol de administrador personalizado, selecciona el privilegio correcto.
- Recupera los IDs de las unidades organizativas.
- Aplica el rol de administrador personalizado a los grupos recién creados.
Requisitos previos
- Lee las guías de inicio rápido para comprender cómo configurar y ejecutar una aplicación con las APIs de Google en lenguajes como JavaScript, Python y Java.
- Antes de usar cualquiera de las APIs de Cloud Identity que se describen en esta guía, debes configurar Cloud Identity. Estas APIs se usan para crear grupos y asignar privilegios de administrador.
- Lee la Descripción general de la API de Grupos y configura la API de Grupos si deseas proporcionar acceso de funciones personalizadas a un grupo de usuarios en lugar de a un usuario individual.
Crea grupos de seguridad
Crea un grupo de seguridad con el método groups.create
. Un grupo se puede configurar como grupo de seguridad cuando la etiqueta de seguridad está incluida en el campo labels
de la solicitud. Si quieres obtener más información y conocer las limitaciones para crear grupos de seguridad, consulta la guía Crea grupos de seguridad.
POST https://cloudidentity.googleapis.com/v1/groups
De manera opcional, puedes incluir el parámetro de consulta InitialGroupConfig
para inicializar el propietario del grupo:
POST https://cloudidentity.googleapis.com/v1/groups&initialGroupConfig={initialGroupConfig}
La cuenta que realiza esta solicitud requiere uno de los siguientes permisos:
https://www.googleapis.com/auth/cloud-identity.groups
https://www.googleapis.com/auth/cloud-identity
https://www.googleapis.com/auth/cloud-platform
Cuerpo de la solicitud
El cuerpo de la solicitud contiene detalles del grupo que se creará. El customerId
debe comenzar con "C" (por ejemplo, C046psxkn
). Cómo encontrar tu 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": ""
}
}
Respuesta
La respuesta contiene una instancia nueva del 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": ""
}
}
}
Agregar miembros al grupo
Una vez que hayas creado el grupo, el siguiente paso es agregar miembros. Un miembro del grupo puede ser un usuario o un grupo de seguridad. Si agregas un grupo como miembro de
otro, es posible que haya una demora de hasta 10 minutos para que se propague
la membresía. Además, la API muestra un error para los ciclos de las membresías de grupo. Por ejemplo, si group1
es miembro de group2
, group2
no puede ser miembro de group1
.
Para agregar un miembro a un grupo, usa la siguiente solicitud POST al método members.insert
de la API de Directory:
POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members
El parámetro de ruta de acceso groupKey
es la dirección de correo electrónico del grupo del miembro nuevo o el ID único del grupo.
La cuenta que realiza la solicitud POST requiere uno de los siguientes alcances:
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
Cuerpo de la solicitud
El cuerpo de la solicitud contiene detalles del member
que se creará.
{
email: "person_one@example.com",
role: "MEMBER", // can be `MEMBER`, `OWNER`, `MANAGER`
}
Respuesta
La respuesta contiene la instancia nueva del miembro.
{
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"
}
Esta solicitud se debe realizar para cada usuario que quieras agregar como miembro. Puedes agrupar estas solicitudes para reducir la cantidad de conexiones HTTP que debe hacer el cliente.
Crea un rol de administrador personalizado con privilegios
La API de Directory te permite usar el control de acceso basado en roles (RBAC) para administrar el acceso a las funciones de tu dominio de Google Workspace. Puedes crear roles personalizados con privilegios para limitar el acceso de los administradores de forma más específica que los roles precompilados que se proporcionan con Google Workspace. Puedes asignar roles a usuarios o grupos de seguridad. Para obtener información más detallada sobre las limitaciones de la creación de roles, consulta las limitaciones de los roles personalizados y la asignación de roles.
Para crear un rol nuevo, usa la siguiente solicitud POST al método roles.insert
de la API de Directory:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles
El customerId
es el mismo que se usa en el paso 1 de esta guía.
La cuenta que realiza la solicitud POST requiere el siguiente permiso:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Cuerpo de la solicitud
El cuerpo de la solicitud contiene detalles del role
que se creará. Agrega un privilegeName
y un serviceId
para cada privilegio que se debe otorgar con este rol.
Estadísticas de Classroom
El privilegio EDU_ANALYTICS_DATA_ACCESS
es necesario para crear un rol personalizado que pueda acceder a los datos de estadísticas, junto con el serviceId
establecido en 019c6y1840fzfkt
.
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to view analytics data", // customize as needed
rolePrivileges: [
{
privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
serviceId: "019c6y1840fzfkt"
}
]
}
Acceso temporal a la clase
El privilegio ADMIN_OVERSIGHT_MANAGE_CLASSES
es necesario para crear un rol personalizado que pueda acceder temporalmente a las clases, junto con el serviceId
establecido en 019c6y1840fzfkt
.
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to manage classes privilege", // customize as needed
rolePrivileges: [
{
privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
serviceId: "019c6y1840fzfkt"
}
]
}
Llama al método privileges.list
para recuperar una lista de privilegeIds
y serviceIds
.
Respuesta
La respuesta contiene la instancia nueva del rol.
Estadísticas de Classroom
{
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
}
Acceso temporal a la clase
{
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
}
Cómo recuperar los IDs de las unidades organizativas
Puedes limitar el acceso del rol de administrador personalizado a una o más unidades organizativas con el ID de la unidad organizativa. Usa la API de OrgUnit para recuperar la orgUnitId
.
Estadísticas de Classroom
Se recomienda que selecciones una unidad organizativa de estudiantes y una unidad organizativa para profesores cuando asignes la función de administrador personalizada a un usuario o grupo específico. De esta manera, los usuarios designados con el privilegio de administrador personalizado pueden acceder a los datos a nivel de los estudiantes y las clases de las unidades organizativas. Si se omite la unidad organizativa del estudiante, los usuarios designados no tendrán acceso a sus datos. Si se omite la unidad organizativa del profesor, los usuarios designados no tendrán acceso a los datos a nivel de la clase.
Acceso temporal a las clases
Puedes limitar los privilegios de acceso temporal a las clases si permites que los usuarios con el rol de administrador personalizado accedan a las clases en unidades organizativas específicas. Si restringes el acceso a una unidad organizativa, el grupo al que se le asignó el rol de administrador personalizado solo podrá acceder a las clases en las que el profesor principal de la clase esté en esa unidad organizativa.
Asigna el rol de administrador personalizado
Para asignar el rol de administrador personalizado a un grupo, usa la siguiente solicitud POST. Consulta la guía sobre las limitaciones de los roles personalizados y la asignación de roles para conocer los límites de asignación de roles.
API de Directory roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
Asignar a un grupo o usuario individual
Si asignas el privilegio a un grupo, incluye groupId
en el campo assignedTo
del cuerpo de la solicitud. El groupId
se obtuvo en el paso Crea grupos de seguridad. Si asignas el privilegio a un usuario individual, incluye el ID del usuario en el campo assignedTo
del cuerpo de la solicitud. Para recuperar el ID del usuario, llama a users.get
y especifica la dirección de correo electrónico del usuario como el parámetro userKey
o llama a users.list
.
La cuenta que realiza la solicitud POST requiere el siguiente permiso:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Cuerpo de la solicitud
El cuerpo de la solicitud contiene detalles del RoleAssignment
que se creará. Debes realizar una solicitud por cada unidad organizativa que quieras asociar con 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
}
Respuesta
La respuesta contiene la instancia nueva de 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
Puedes encontrar información adicional en:
- Descripción general de la API de Directory
- Autenticación y autorización específicas de la API de Directory
- Documentación de REST de la API de Directory
- Asistencia para desarrolladores de la API del SDK de Admin