API Directory: unités organisationnelles

Gérer les unités organisationnelles

L'arborescence d'un compte Google Workspace est composée d'unités organisationnelles qui vous permettent de gérer vos utilisateurs selon une structure logique et hiérarchique. Cette fonctionnalité est semblable à celle de l'onglet "Organisations et utilisateurs" de la console d'administration. La hiérarchie des unités organisationnelles du client est limitée à 35 niveaux de profondeur. Pour en savoir plus, consultez le Centre d'aide Administrateur.

  • Un compte Google Workspace ne peut comporter qu'une seule arborescence organisationnelle. Lorsque ce compte est configuré initialement, il possède une unité organisationnelle au niveau du compte. Il s'agit de l'organisation associée au domaine principal. Pour en savoir plus sur le domaine principal, consultez l'article À propos des limites d'API.
  • Le nom de chemin d'accès d'une unité organisationnelle est unique. Le nom de l'unité organisationnelle peut être unique dans la hiérarchie de l'organisation, mais son nom est unique parmi ses unités organisationnelles sœurs. De plus, le nom d'une unité organisationnelle n'est pas sensible à la casse.
  • Une unité organisationnelle hérite des règles de la hiérarchie organisationnelle. N'importe quelle unité organisationnelle peut bloquer cette chaîne d'héritage parental en remplaçant la règle héritée. La priorité d'une règle sur une autre est déterminée par l'unité organisationnelle la plus proche. Autrement dit, les règles d'une unité organisationnelle inférieure peuvent prévaloir sur celles des unités parentales de niveau supérieur. Le paramètre blockInheritance permet d'hériter des paramètres de blocage pour une unité organisationnelle et ses sous-organisations. Abandon de blockInheritance. La définir sur "true" n'est plus acceptée et peut avoir des conséquences inattendues. Pour plus d'informations sur l'héritage et les utilisateurs dans une structure organisationnelle, consultez le Centre d'aide pour l'administration.
  • Une unité organisationnelle peut être déplacée vers le haut ou vers le bas d'une arborescence hiérarchique. De plus, les utilisateurs associés à l'organisation peuvent être déplacés individuellement ou de façon groupée lors de l'ajout de membres à une nouvelle organisation ou du déplacement d'un sous-ensemble d'utilisateurs d'une unité organisationnelle à une autre.
  • Les données conservées dans les propriétés des unités organisationnelles peuvent changer en permanence. Lorsque vous effectuez une requête, les propriétés renvoyées pour une entité sont sûres d'être cohérentes au moment de la récupération de l'entité.En d'autres termes, vous ne verrez pas de mises à jour "partielles". Si une opération de récupération renvoie plusieurs entités, il n'y a aucune garantie de cohérence entre les entités.Cela est particulièrement vrai lorsqu'une réponse couvre plusieurs pages dans la pagination.

Créer une unité organisationnelle

Pour créer une unité organisationnelle, utilisez la requête POST suivante et incluez l'autorisation décrite dans la section Autoriser les requêtes.

Si vous êtes administrateur et que vous créez une unité organisationnelle, utilisez my_customer.

POST https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits

Si vous créez une unité organisationnelle pour un client indirect en tant que revendeur, utilisez customerId. Pour récupérer customerId, utilisez l'opération Récupérer un utilisateur.

POST https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits

Pour comprendre la structure organisationnelle de votre compte, consultez le Centre d'aide Administrateur. Pour en savoir plus sur les propriétés des requêtes et des réponses, consultez la documentation de référence de l'API.

Requête JSON

Dans l'exemple suivant de revendeur JSON, le corps de la requête crée l'unité organisationnelle sales_support. Les champs name et parentOrgUnitPath sont obligatoires:

POST https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits
{
    "name": "sales_support",
    "description": "The sales support team",
    "parentOrgUnitPath": "/corp/support",
    "blockInheritance": false
}

Réponse JSON

Les appels réussis renvoient un code d'état HTTP 201. Avec le code d'état, la réponse renvoie les propriétés du nouveau groupe:

{
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The sales support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support",
    "blockInheritance": false
  }

Mettre à jour une unité organisationnelle

Pour mettre à jour une unité organisationnelle, utilisez la requête PUT suivante et incluez l'autorisation décrite dans la section Autoriser les requêtes. Pour en savoir plus sur les propriétés des requêtes et des réponses, consultez la documentation de référence de l'API:

Si vous êtes administrateur de la mise à jour d'une unité organisationnelle, utilisez my_customer.

 PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Si vous êtes un revendeur mettant à jour une unité organisationnelle pour un client indirect, utilisez customerId. Pour obtenir le customerId, utilisez l'opération Récupérer un utilisateur.

PUT https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath

Requête JSON

Dans l'exemple ci-dessous, la description de l'unité organisationnelle a été modifiée:

PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/corp/support/sales_support
{
    "description": "The BEST sales support team"
}

Remarques concernant une demande de mise à jour:

  • Il vous suffit d'envoyer les informations mises à jour dans votre demande. Il n'est pas nécessaire de saisir toutes les propriétés du groupe dans la demande.
  • Si aucun utilisateur n'a été affecté à une unité organisationnelle spécifique lors de sa création, le compte se trouve dans l'unité organisationnelle racine.
  • Vous pouvez déplacer une unité organisationnelle vers une autre partie de la structure organisationnelle de votre compte en définissant la propriété parentOrgUnitPath dans la demande. Il est important de noter que le déplacement d'une unité organisationnelle peut modifier les services et les paramètres des utilisateurs concernés.

Réponse JSON

Les appels réussis renvoient un code d'état HTTP 201. Avec le code d'état, la réponse renvoie les propriétés de l'unité organisationnelle mise à jour.

{
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST sales support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support",
    "blockInheritance": false
}

Si aucun utilisateur n'a été affecté à une unité organisationnelle spécifique lors de sa création, le compte se trouve dans l'unité organisationnelle racine. L'unité organisationnelle d'un utilisateur détermine les services Google Workspace auxquels il a accès. Si l'utilisateur est déplacé vers une nouvelle organisation, ses droits d'accès sont modifiés. Pour en savoir plus sur les structures organisationnelles, consultez le Centre d'aide pour les administrateurs. Pour en savoir plus sur le déplacement d'un compte utilisateur vers une autre organisation, consultez Mettre à jour un compte utilisateur.

Récupérer une unité organisationnelle

Pour récupérer une unité organisationnelle, utilisez la requête GET suivante et incluez l'autorisation décrite dans la section Autoriser les requêtes. La chaîne de requête orgUnitPath correspond au chemin d'accès complet de cette unité organisationnelle. Pour en savoir plus sur les propriétés des requêtes et des réponses, consultez la documentation de référence de l'API:

Si vous êtes administrateur et que vous récupérez une unité organisationnelle, utilisez my_customer.

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Si, en tant que revendeur, vous récupérez une unité organisationnelle pour un client indirect, utilisez customerId. Pour obtenir le customerId, utilisez l'opération Récupérer un utilisateur.

GET https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath

Réponse JSON

Dans l'exemple ci-dessous, l'unité organisationnelle "Ventes de première ligne" est récupérée. Notez l'encodage HTTP "frontline+sales" dans l'URI de la requête:

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/corp/sales/frontline+sales

Les appels réussis renvoient un code d'état HTTP 200. Avec le code d'état, la réponse renvoie les paramètres de l'unité organisationnelle :

{
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales",
    "blockInheritance": false
}

Récupérer des unités organisationnelles

Pour récupérer toutes les sous-unités organisationnelles d'une unité organisationnelle, ses sous-unités organisationnelles immédiates, ou toutes les sous-unités organisationnelles et l'unité organisationnelle spécifiée, utilisez la requête GET suivante et incluez l'autorisation décrite dans la section Autoriser les requêtes. Pour en savoir plus sur les propriétés des requêtes et des réponses, consultez la documentation de référence de l'API.

Si vous êtes administrateur de compte et que vous récupérez toutes les sous-unités organisationnelles, utilisez my_customer. Pour une meilleure lisibilité, cet exemple utilise des retours à la ligne:

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer
/orgunits?orgUnitPath=full org unit path&type=all or children or all_including_parent

Si vous êtes un revendeur et que vous récupérez des unités organisationnelles pour un client indirect, utilisez customerId. Pour obtenir le customerId, utilisez l'opération Récupérer un utilisateur:

GET https://admin.googleapis.com/admin/directory/v1/customer/customerId
/orgunits?orgUnitPath=full org unit path&type=all or children or all_including_parent

La chaîne de requête get renvoie all sous-unité organisationnelle sous orgUnitPath, la children immédiate de orgUnitPath, ou toutes les sous-unités organisationnelles et le orgUnitPath spécifié pour all_including_parent. La valeur par défaut est type=children.

Réponse JSON

Par exemple, cette requête renvoie toutes les unités organisationnelles à partir de l'unité organisationnelle /corp :

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits?orgUnitPath=/corp&type=all

Les appels réussis renvoient un code d'état HTTP 200. Avec le code d'état, la réponse renvoie les unités organisationnelles du compte:

{
"kind": "directory#orgUnits",
    "organizationUnits": [
     {
    "kind": "directory#orgUnit",
    "name": "sales",
    "description": "The corporate sales team",
    "orgUnitPath": "/corp/sales",
    "parentOrgUnitPath": "/corp",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "support",
    "description": "The corporate support team",
    "orgUnitPath": "/corp/support",
    "parentOrgUnitPath": "/corp",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support",
    "blockInheritance": false
     }
  ]
  }

Supprimer une unité organisationnelle

Pour supprimer une unité organisationnelle, utilisez la requête DELETE suivante et incluez l'autorisation décrite dans la section Autoriser les requêtes. Pour récupérer customerId, utilisez l'opération Récupérer un utilisateur. Pour en savoir plus sur les propriétés des requêtes et des réponses, consultez la documentation de référence de l'API:

Si vous êtes administrateur de compte et que vous supprimez une unité organisationnelle, utilisez my_customer.

DELETE https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Si vous êtes un revendeur et que vous supprimez une unité organisationnelle pour un client indirect, utilisez customerId. Pour obtenir le customerId, utilisez l'opération Récupérer un utilisateur.

DELETE https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath
Par exemple, la requête DELETE de cet administrateur revendeur supprime l'unité organisationnelle "backend_tests" :
DELETE https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits/corp/sales/backend_tests

Les appels réussis renvoient un code d'état HTTP 200.

Vous ne pouvez supprimer que des unités organisationnelles qui ne sont associées à aucune unité organisationnelle enfant, ni à aucun utilisateur. Vous devez réaffecter les utilisateurs à d'autres unités organisationnelles et supprimer toutes les unités organisationnelles enfants avant de procéder à la suppression.