Google Admin SDK 目录 API:将组添加为角色 "OWNER" 的成员时出错

Google Admin SDK Directory API: Adding group as member with role "OWNER" gets error

正在尝试使用新的 Google Admin SDK 来创建一些群组并向这些群组添加 adding/removing 成员。这实际上只是更新我以前使用旧配置 API.

的一些代码

我正在尝试添加 作为组的成员,角色 所有者。我从 Google 收到错误消息。如果我尝试将一个组添加为成员,并且角色仅为 MEMBER,那没问题。只有 OWNER 角色才会 return 错误。这是一个例子:

POST https://www.googleapis.com/admin/directory/v1/groups/mygroup/members

{
 "email": "myGroupToAddAsMember@mydomain.com",
 "role": "OWNER"
}

我从 Google 收到以下回复:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid Input: memberKey"
   }
  ],
  "code": 400,
  "message": "Invalid Input: memberKey"
 }
}

我也尝试过将群组添加为成员,然后更新成员并将角色更改为所有者。这会得到同样的错误。

我可以进入管理 Web 界面并将成员资格更改为所有者,因此系统显然可以接受。我究竟做错了什么?感谢您的帮助。

编辑: 这似乎是 Google 错误跟踪中的一个已知问题 (Issue 3791: Unable to insert group owner using Directory API if the owner is group as well),尽管目前还没有解决方案。我无法确定任何可编程的解决方法。有人吗?

不久前,我向 Google 支持团队记录了一个案例。这种行为实际上成为我们在最新版本的 GADS 中注意到的一个问题 - 因为它现在使用目录 API。

本质上,这是预期的行为。 Google 不希望群组拥有群组。以前,配置 API 否决了这一点,还有另一个错误,它还允许您通过 UI 手动添加一个组作为组的所有者(不确定这是否已修复)。

tl;dr 这是预期的行为,Google 上次听说我不打算更改它。

我也记录了支持票。这对我们来说是一个主要问题,因为我们使用群组作为所有者来为群组提供动态安全性(例如,阻止成员 posting 但允许所有员工 post 加入群组)。

但是我怀疑这是 Google 的产品组没有相互交谈的情况。例如,管理控制台仍然支持它,并且 API 文档有一个针对这种情况的示例响应:https://developers.google.com/admin-sdk/directory/v1/guides/manage-group-members#json-response_2

我们目前的工作是:

  1. 将一个成员添加到每个组,并将您想要的组作为所有者名称(例如 all_staff_temp)
  2. 将成员设为群主
  3. 在控制台创建同名群组。该群现已成为群主

我们每晚分批执行此操作,首先删除我们的临时组,这将删除它的所有成员资格,然后将其重新添加,然后再次创建该组。这真的很 hacky,但它有效 - 并表明背面确实支持团体作为所有者。