Les administrateurs peuvent créer des rôles d'administrateur personnalisés dans la console d'administration pour permettre à certaines personnes ou à certains groupes disposant d'une licence Education Plus d'effectuer les opérations suivantes:
Consultez les analyses Classroom pour analyser des données telles que la réussite des devoirs, les tendances des notes et l'adoption de Classroom.
Accédez temporairement aux cours dans Classroom pour aider les enseignants, publier des annonces et plus encore, sans être désigné comme co-enseignant permanent.
Ce guide explique comment configurer ces fonctionnalités dans votre domaine à l'aide des API Google.
Automatiser le processus d'attribution de rôles personnalisés
Pour automatiser le processus d'attribution de rôles personnalisés:
- Créez des groupes de sécurité pour organiser les utilisateurs ayant accès à ces fonctionnalités.
- Ajoutez des membres aux groupes.
- Créez un rôle d'administrateur personnalisé en sélectionnant le droit approprié.
- Récupérez les ID d'unité organisationnelle.
- Appliquez le rôle d'administrateur personnalisé aux nouveaux groupes.
Conditions préalables
- Consultez les guides de démarrage rapide pour comprendre comment configurer et exécuter une application à l'aide des API Google dans des langages tels que JavaScript, Python et Java.
- Consultez la présentation de l'API Groups.
- Avant d'utiliser l'une des API Cloud Identity décrites dans ce guide, vous devez configurer Cloud Identity. Ces API permettent de créer des groupes et d'attribuer des droits d'administrateur.
- Configurez l'API Groups.
Créer des groupes de sécurité
Créez un groupe de sécurité à l'aide de la méthode groups.create
. Un groupe peut être défini en tant que groupe de sécurité lorsque le libellé de sécurité est inclus dans le champ labels
de la requête. Pour en savoir plus sur la création de groupes de sécurité et les limites associées, consultez le guide Créer des groupes de sécurité.
POST https://cloudidentity.googleapis.com/v1/groups
Vous pouvez éventuellement inclure le paramètre de requête InitialGroupConfig
pour initialiser le propriétaire du groupe:
POST https://cloudidentity.googleapis.com/v1/groups&initialGroupConfig={initialGroupConfig}
Le compte à l'origine de cette requête nécessite l'un des champs d'application suivants:
https://www.googleapis.com/auth/cloud-identity.groups
https://www.googleapis.com/auth/cloud-identity
https://www.googleapis.com/auth/cloud-platform
Corps de la requête
Le corps de la requête contient les détails du groupe à créer. L'élément customerId
doit commencer par la lettre "C" (par exemple, C046psxkn
). Recherchez votre numéro client.
{
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": ""
}
}
Réponse
La réponse contient une nouvelle instance de la ressource 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": ""
}
}
}
Ajouter des membres au groupe
Une fois le groupe créé, l'étape suivante consiste à ajouter des membres. Un membre de groupe peut être un utilisateur ou un autre groupe de sécurité. Si vous ajoutez un groupe en tant que membre d'un autre groupe, la propagation de l'adhésion peut prendre jusqu'à 10 minutes. En outre, l'API renvoie une erreur pour les cycles d'appartenance aux groupes. Par exemple, si group1
est membre du groupe group2
, group2
ne peut pas être membre du groupe group1
.
Pour ajouter un membre à un groupe, utilisez la requête POST suivante.
API Directory members.insert
:
POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members
Le paramètre de chemin d'accès groupKey
correspond à l'adresse e-mail du groupe du nouveau membre ou à l'identifiant unique du groupe.
Le compte à l'origine de la requête POST requiert l'un des champs d'application suivants:
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
Corps de la requête
Le corps de la requête contient des détails sur l'member
à créer.
{
email: "person_one@example.com",
role: "MEMBER", // can be `MEMBER`, `OWNER`, `MANAGER`
}
Réponse
La réponse contient la nouvelle instance du membre.
{
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"
}
Cette demande doit être effectuée pour chaque utilisateur que vous souhaitez ajouter en tant que membre. Vous pouvez traiter ces requêtes par lot pour réduire le nombre de connexions HTTP que votre client doit établir.
Créer un rôle d'administrateur personnalisé privilégié
L'API Directory vous permet d'utiliser le contrôle des accès basé sur les rôles (RBAC) pour gérer l'accès aux fonctionnalités de votre domaine Google Workspace. Vous pouvez créer des rôles personnalisés disposant de droits pour limiter l'accès administrateur plus spécifiquement que les rôles prédéfinis fournis avec Google Workspace. Vous pouvez attribuer des rôles à des utilisateurs ou à des groupes de sécurité. Pour en savoir plus sur les limites liées à la création de rôles, consultez la section Limites concernant les rôles personnalisés et l'attribution des rôles.
Pour créer un rôle, utilisez la requête POST suivante.
API Directory roles.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles
La customerId
est identique à celle utilisée à l'étape 1 de ce guide.
Le compte à l'origine de la requête POST doit avoir le champ d'application suivant:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Corps de la requête
Le corps de la requête contient des détails sur l'role
à créer. Ajoutez des autorisations privilegeName
et serviceId
pour chaque droit devant être accordé avec ce rôle.
Analyses Classroom
Le droit EDU_ANALYTICS_DATA_ACCESS
est requis pour créer un rôle personnalisé pouvant accéder aux données d'analyse, avec le paramètre serviceId
défini sur 019c6y1840fzfkt
.
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to view analytics data", // customize as needed
rolePrivileges: [
{
privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
serviceId: "019c6y1840fzfkt"
}
]
}
Accès temporaire aux cours
Le droit ADMIN_OVERSIGHT_MANAGE_CLASSES
est requis pour créer un rôle personnalisé pouvant accéder temporairement aux classes, avec le serviceId
défini sur 019c6y1840fzfkt
.
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to manage classes privilege", // customize as needed
rolePrivileges: [
{
privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
serviceId: "019c6y1840fzfkt"
}
]
}
Appelez la méthode privileges.list
pour récupérer la liste des privilegeIds
et serviceIds
.
Réponse
La réponse contient la nouvelle instance du rôle.
Analyses 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
}
Accès temporaire aux cours
{
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
}
Récupérer les ID d'unité organisationnelle
Vous pouvez limiter l'accès du rôle d'administrateur personnalisé à une ou plusieurs unités organisationnelles à l'aide de l'ID de l'unité organisationnelle. Utilisez l'API OrgUnit pour récupérer orgUnitId
.
Analyses Classroom
Nous vous recommandons de sélectionner une unité organisationnelle d'élève et une unité organisationnelle d'enseignant lorsque vous attribuez le rôle d'administrateur personnalisé à un utilisateur ou à un groupe spécifique. Les utilisateurs désignés comme ayant des droits d'administrateur personnalisés peuvent ainsi accéder aux données des élèves et de la classe pour les unités organisationnelles. Si l'unité organisationnelle des élèves est omise, les utilisateurs désignés n'ont pas accès à leurs données. Si l'unité organisationnelle de l'enseignant est omise, les utilisateurs désignés n'ont pas accès aux données du cours.
Accès temporaire aux cours
Vous pouvez limiter les droits d'accès temporaire aux cours en autorisant les utilisateurs disposant du rôle d'administrateur personnalisé à accéder aux cours d'unités organisationnelles spécifiques. Si vous limitez l'accès à une unité organisationnelle, le groupe auquel le rôle d'administrateur personnalisé est attribué ne peut accéder qu'aux cours dont l'enseignant principal appartient à cette unité.
Attribuer le rôle d'administrateur personnalisé
Pour attribuer le rôle d'administrateur personnalisé à un groupe, utilisez la requête POST suivante. Consultez les conseils sur les limites d'attribution de rôles personnalisés.
API Directory roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
Attribuer à un groupe ou à un utilisateur individuel
Si vous attribuez le droit à un groupe, incluez groupId
dans le champ assignedTo
du corps de la requête. Le groupId
a été obtenu à l'étape Créer des groupes de sécurité. Si vous attribuez le droit à un utilisateur individuel, incluez l'ID de l'utilisateur dans le champ assignedTo
du corps de la requête. Vous pouvez récupérer l'ID de l'utilisateur en appelant users.get
et en spécifiant son adresse e-mail en tant que paramètre userKey
, ou en appelant users.list
.
Le compte à l'origine de la requête POST doit avoir le champ d'application suivant:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Corps de la requête
Le corps de la requête contient les détails du RoleAssignment
à créer. Vous devez effectuer une requête par unité organisationnelle que vous souhaitez associer à ce groupe.
{
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
}
Réponse
La réponse contient la nouvelle instance 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>"
}
Ressources
Vous trouverez des informations supplémentaires à l'adresse suivante:
- Présentation de l'API Directory
- Authentification et autorisation spécifiques à l'API Directory
- Documentation REST de l'API Directory
- Assistance pour les développeurs pour l'API SDK Admin