Directory API:组织部门

管理组织部门

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

  • 一个 Google Workspace 账号只有一个组织树。在最初配置此账号时,它在账号级别有一个组织部门。这是与主域名关联的组织。如需详细了解主域名,请参阅 API 限制信息
  • 组织部门的路径名是唯一的。组织部门的名称在组织层次结构中可能不唯一,但在同级组织部门中是唯一的。单位部门的名称不区分大小写。
  • 组织部门会继承组织层次结构中的政策。任何组织部门都可以通过替换继承的政策来阻止这种父级继承链。一个政策相对于另一个政策的优先级由最近的组织部门决定。 也就是说,级别较低的组织部门的政策可以优先于级别较高的父级部门的政策。如需详细了解组织结构中的继承和用户,请参阅管理帮助中心
  • 您可以上下移动组织部门,使其在分层树中的位置发生变化。此外,在为新的组织填充信息或者将一部分用户从一个组织部门移到另一个组织部门时,可以单独或批量移动该组织的关联用户。
  • 组织部门媒体资源中保留的数据可能会不断变化。发出请求时,系统保证为实体返回的属性与检索实体时一致。也就是说,您不会看到“部分”更新。如果检索操作返回多个实体,则无法保证各个实体之间的一致性。当响应跨分页中的多个页面时,这一点尤为重要。

创建组织部门

如需创建组织部门,请使用以下 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",
}

JSON 响应

成功的响应会返回 HTTP 201 状态代码。除了状态代码以外,响应还会返回新组的属性:

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

更新组织部门

如需更新组织部门,请使用以下 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"
}

如果在创建用户账号时未向用户分配特定组织部门,则该账号会位于顶级组织部门中。用户所在的组织部门决定了用户可以使用哪些 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 响应

在以下示例中,系统会检索“前线销售”组织部门。请注意请求 URI 中的“frontline+sales”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"
}

检索组织部门

如需检索某个组织部门下的所有子组织部门、某个组织部门下的直接子级,或所有子组织部门以及指定的组织部门,请使用以下 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"
     },
     {
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales"
     },
     {
    "kind": "directory#orgUnit",
    "name": "support",
    "description": "The corporate support team",
    "orgUnitPath": "/corp/support",
    "parentOrgUnitPath": "/corp"
     },
     {
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support"
     }
  ]
  }

删除组织部门

如需删除组织部门,请使用以下 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 状态代码

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