API Directory: unités organisationnelles

Gérer les unités organisationnelles

L'arborescence organisationnelle d'un compte Google Workspace est composée d'unités organisationnelles qui vous permettent de gérer les utilisateurs selon une structure logique et hiérarchique. Cette fonctionnalité est semblable à celle de la section "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 possède qu'une seule arborescence organisationnelle. Lors de sa configuration initiale, ce compte comporte 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 les informations sur les limites de l'API.
  • Le nom de chemin d'une unité organisationnelle est unique. Même si le nom d'une unité organisationnelle n'est pas unique dans la hiérarchie, il est unique parmi ses unités organisationnelles sœurs. Par ailleurs, 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. Toutes les organisations bloc peut bloquer cette chaîne d'héritage parental en remplaçant la règle héritée. La la priorité d'une règle sur une autre est déterminée par l'unité organisationnelle la plus proche. Cela signifie que les règles d'une unité organisationnelle inférieure peuvent prévaloir sur celles des d'unités parentales plus élevées. Le paramètre blockInheritance permet de bloquer l'héritage des paramètres une unité organisationnelle et sa sous-organisation. Abandon de blockInheritance. La définition de cette valeur sur "true" n'est plus acceptée et peut avoir des conséquences imprévues. Pour plus d'informations sur l'héritage et les utilisateurs dans une structure organisationnelle, consultez la Centre d'aide pour l'administration.
  • Une unité organisationnelle peut être déplacée vers le haut ou vers le bas dans une arborescence hiérarchique. Par ailleurs, les utilisateurs associés à l'organisation peuvent être déplacés individuellement ou de façon groupée lorsqu'ils remplissent une nouvelle organisation ou en déplaçant 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 constamment. Lors de l'envoi d'une requête, la cohérence des propriétés renvoyées pour une entité est garantie au moment où l'entité a été récupérée.Par conséquent, vous ne verrez pas les propriétés "partielles" mises à jour. Si une opération de récupération renvoie plusieurs entités, la cohérence entre les entités n'est pas garantie.Cela est particulièrement vrai lorsqu'une réponse s'étend sur plusieurs pages de 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 le 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 pour les administrateurs. Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

Requête JSON

L'exemple de revendeur JSON suivant montre un exemple de corps de requête qui 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 réponses positives affichent 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 de requête et de réponse, consultez la documentation de référence de l'API:

Si vous êtes administrateur et que vous mettez à jour une unité organisationnelle, utilisez my_customer.

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

Si vous êtes un revendeur et que vous mettez à jour une unité organisationnelle pour un client indirect, utilisez customerId. Pour obtenir la valeur 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é mise à jour:

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 requête 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 un utilisateur n'a pas été affecté à une unité organisationnelle spécifique lors de la création du compte utilisateur, ce dernier 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 requête. Il est important de noter que le déplacement d'une unité organisationnelle peut avoir une incidence sur les services et les paramètres des utilisateurs de cette unité.

Réponse JSON

Les réponses positives affichent 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 un utilisateur n'a pas été affecté à une unité organisationnelle spécifique lors de la création du compte utilisateur, ce dernier 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 savoir comment déplacer un 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 de requête et de réponse, 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 l'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, les ventes de première ligne est récupérée. Notez l'aspect "ventes de première ligne" Encodage HTTP dans l'URI de la requête:

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

Les réponses positives affichent un code d'état HTTP 200. En plus du 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, les enfants immédiats d'une unité organisationnelle, ou toutes les sous-unités, plus 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 de requête et de réponse, 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 faciliter la lecture, 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, en tant que revendeur, vous récupérez les unités organisationnelles d'un client indirect, utilisez l'customerId. Pour obtenir 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és organisationnelles sous orgUnitPath, le children immédiat du 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, la requête suivante 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 réponses positives affichent un code d'état HTTP 200. En plus du 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 le customerId, utilisez l'opération Récupérer un utilisateur. Pour en savoir plus sur les propriétés de requête et de réponse, 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 l'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 la partie "backend_tests" unité organisationnelle:
DELETE https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits/corp/sales/backend_tests

Les réponses positives affichent un code d'état HTTP 200.

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