Directory API:组织部门

管理组织部门

Google Workspace 账号的组织树由多个组织部门组成,这些组织部门让您能够以逻辑和分层结构管理用户。此功能类似于管理控制台中“单位和用户”中的功能。标签页。客户的组织部门层次结构最多只能有 35 个层级。有关详情,请参阅管理员帮助中心

  • 一个 Google Workspace 账号只有一个组织树。此账号完成初始配置后,会有一个账号级组织部门。这是与主域名关联的组织。如需详细了解主域名,请参阅 API 限制信息
  • 组织部门的路径名是唯一的。组织部门的名称在组织层次结构中可能不是唯一的,但其名称在其同级组织部门中是唯一的。组织部门的名称不区分大小写。
  • 组织部门会沿用组织层次结构的政策。任何组织 可以通过覆盖继承的政策来阻止此父代继承链。通过 一项政策的优先级取决于最近的组织部门。 也就是说,下级组织部门的政策会优先于该组织部门的政策。 更高的父级广告单元 blockInheritance 设置允许继承屏蔽设置 某个组织部门及其下级组织。blockInheritance 已弃用。 系统已不再支持将此属性设为“true”,这可能会导致意想不到的后果。对于 如需详细了解组织结构中的沿用和用户,请参阅 管理帮助中心
  • 可以在树状结构中向上或向下移动组织部门。此外,在为新的组织填充信息或将一部分用户从一个组织部门移动到另一个组织部门时,可以单独或批量移动该组织的关联用户。
  • 组织部门属性中保留的数据可能会不断变化。发出请求时,系统会保证针对实体返回的属性在检索该实体时是一致的。也就是说,您不会看到“部分”更新。如果检索操作返回多个实体,则实体之间不保证一致性。在响应跨分页的多个页面时尤其如此。

创建组织部门

如需创建组织部门,请使用以下 POST 请求,并在其中添加授权请求中所述的授权。

如果您是创建组织部门的管理员,请使用 my_customer

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

如果您是转销商,且为转销商的客户创建组织部门,请使用 customerId。如需检索 customerId,请使用检索用户操作。

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

要了解您账号的组织结构,请参阅管理员帮助中心。如需了解请求和响应属性,请参阅 API 参考

JSON 请求

以下 JSON 转销商示例展示了创建 sales_support 组织部门的示例请求正文。nameparentOrgUnitPath 是必需的:

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

JSON 响应

成功的响应会返回 HTTP 201 状态代码。响应将返回状态代码以及新组的属性:

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

更新组织部门

如需更新组织部门,请使用以下 PUT 请求,并在其中添加授权请求中所述的授权。如需了解请求和响应属性,请参阅 API 参考

如果您是更新组织部门的管理员,请使用 my_customer

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

如果您是转销商,且需要为转销商的客户更新组织部门,请使用 customerId。如需获取 customerId,请使用检索用户操作。

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

JSON 请求

在下面的示例中,组织部门说明已更新:

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

有关更新请求的备注:

  • 您只需在申请中提交更新后的信息即可。您无需在请求中输入组的所有属性。
  • 如果在创建用户账号时未将该用户分配到特定的组织部门,则该账号位于顶级组织部门。
  • 您可以通过在请求中设置 parentOrgUnitPath 属性,将某个组织部门移动到账号组织结构的其他部分。请务必注意,移动组织部门可能会为要移动的组织部门中的用户更改服务和设置。

JSON 响应

成功的响应会返回 HTTP 201 状态代码。除了状态代码之外,该响应还会返回更新后的组织部门的属性。

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

如果在创建用户账号时未将该用户分配到特定的组织部门,则该账号位于顶级组织部门。用户所在的组织部门决定了用户有权访问哪些 Google Workspace 服务。如果用户被移至新的组织,其访问权限会发生变化。如需详细了解组织结构,请参阅管理帮助中心。要详细了解如何将用户移至其他组织,请参阅更新用户

检索组织部门

如要检索组织部门,请使用以下 GET 请求,并包含授权请求中所述的授权。orgUnitPath 查询字符串是此组织部门的完整路径。如需了解请求和响应属性,请参阅 API 参考

如果您是检索组织部门的管理员,请使用 my_customer

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

如果您是负责检索转销商客户的组织部门的转销商,请使用 customerId。如需获取 customerId,请使用检索用户操作。

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

JSON 响应

在下面的示例中,“Frontline sales”(一线销售)已检索组织部门。请注意“前线 + 销售”请求 URI 中的 HTTP 编码:

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

成功的响应会返回 HTTP 200 状态代码。除了状态代码之外,该响应还会返回组织部门的设置:

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

检索组织部门

如要检索某个组织部门下的所有下级组织部门、该组织部门的直属下级组织部门,或检索所有下级组织部门和指定的组织部门,请使用以下 GET 请求,并在其中添加授权请求中所述的授权。如需了解请求和响应属性,请参阅 API 参考

如果您是检索所有下级组织部门的账号管理员,请使用 my_customer。为确保可读性,此示例使用行返回:

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

如果您是负责检索转销商客户的组织部门的转销商,请使用 customerId。如需获取 customerId,请使用检索用户操作:

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

get 查询字符串要么会返回 orgUnitPath 下的 all 个下级组织部门(位于 orgUnitPath 的直接 children),要么返回所有下级组织部门和 all_including_parent 的指定 orgUnitPath。默认值为 type=children

JSON 响应

例如,此请求会返回从“/corp”组织部门开始的所有组织部门:

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

成功的响应会返回 HTTP 200 状态代码。除了状态代码之外,该响应还会返回账号的组织部门:

{
"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
     }
  ]
  }

删除组织部门

如需删除组织部门,请使用以下 DELETE 请求,并包含授权请求中所述的授权。如需检索 customerId,请使用检索用户操作。如需了解请求和响应属性,请参阅 API 参考

如果您是删除某个组织部门的账号管理员,请使用 my_customer

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

如果您是转销商,且需要为转销商的客户删除组织部门,请使用customerId。如需获取 customerId,请使用检索用户操作。

DELETE https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath
例如,此转销商管理员的 DELETE 请求删除了“backend_tests”组织部门:
DELETE https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits/corp/sales/backend_tests

成功的响应会返回 HTTP 200 状态代码

您只能删除既没有下级组织部门,也没有分配任何用户的组织部门。您需要先将用户重新分配到其他组织部门并移除所有下级组织部门,然后才能将其删除。