启用来自 Google Workplace(试验版)的群组同步

:warning: 这是一个实验性功能。该功能可能会在没有通知的情况下发生更改。

要开始使用,请按照以下说明配置 Google 登录:

然后,请按照以下步骤操作:

  1. 在您的 OAuth 集成的 Google 信息中心中,转到“API 和服务”,然后添加“Admin SDK”。

  2. 转到“IAM 和管理” → “服务帐号” → “创建服务帐号”并设置一个帐号。两个可选步骤不是必需的 - 跳过它们。

  3. 在服务帐号列表中,点击新创建的帐号,记录下“唯一 ID”以备后用,然后转到“密钥”选项卡。创建一个格式为“JSON”的新密钥,并将文件保存以备后用。

  4. 转到 admin.google.com,然后访问“安全”部分。打开“API 控件”,“管理第三方应用访问权限”。然后点击“添加应用”,“OAuth 应用名称或客户端 ID”。输入您 OAuth 应用的客户端 ID,然后从列表中选择它。按照步骤操作,确保将应用设置为“受信任”。然后它应该会出现在列表中:

  5. 返回“API 控件”部分,向下滚动,然后选择“管理域广泛委派”。选择“添加新”,然后输入您之前创建的服务帐号的客户端 ID。在范围下,粘贴值

    https://www.googleapis.com/auth/admin.directory.group.readonly
    
  6. 在您的 Discourse 管理面板中,转到设置选项卡并搜索“google oauth2 hd”。配置以下设置:

    google oauth2 hd:您的 Google Workspace 的域名

    google_oauth2_hd_groups_service_account_json:粘贴您之前生成的服务帐号密钥文件的内容

    google_oauth2_hd_groups_service_account_admin_email:输入任何 Google Workspace 管理帐号的电子邮件地址。服务帐号在获取 Google 群组信息时将使用此身份。

    google oauth2 hd groups:已启用

下次用户登录时,Discourse 将在后台获取并存储 Google 群组信息。

要将 Google 群组链接到 Discourse 群组,请访问 Discourse 中的群组配置,然后转到管理成员资格部分。在“自动”下,您会看到一个新的下拉菜单,允许您将任意数量的 Google 群组链接到 Discourse 群组:

对此设置的更改应立即生效。群组成员资格在 Google 上的更改将在用户下次登录时生效。

非常感谢 @angus此功能上所做的工作。我们希望在不久的将来将此群组同步系统扩展到其他登录方式。

8 个赞

我很想将此与“通用oauth2”(特别是auth0)一起使用。是否有其他线程或GitHub问题可以关注?

3 个赞

@david@angus 您能否提供关于项目 6 的更多详细信息?

Blockquote google oauth2 hd:您的 Google Workspace 的域名

  1. 您是指我拥有工作区帐户的域名 (ebsp.org)?还是工作区的实际域名。
  2. 只是网址吗?

Blockquote google_oauth2_hd_groups_service_account_json:粘贴您之前生成的服务帐户密钥文件的内容

复制并粘贴 JSON 中的所有内容?

@angus @david 我已按照说明进行操作。我有一个搜索群组的框,但没有群组显示出来。有什么想法吗?

你好 Charlie,google oauth2 hd 来自 Google OIDC API(文档 在此)。他们说它是:

与用户所属的 Google Workspace 或 Cloud 组织关联的域名

举个例子,如果我为我们的员工设置这个,我会将值设置为 discourse.org

是的!

Google 群组只有在群组成员使用 Google 登录 Discourse 后才会出现在 Discourse 中。我们没有任何预先列出的系统。

1 个赞

@david 我终于搞定了。我必须关闭一些东西。我的网站设置方式是通过 Google Oauth 自动登录用户。我关闭了它和 Discourse Connect,然后就好了。不确定是哪个导致了断开。一旦我用 Google 实际登录,所有信息都填充好了。

1 个赞

阅读 Google Groups 仍然是实验性的吗?这些说明有变吗?

1 个赞

就像 @John_Faig 一样,我也想知道这是否仍处于实验阶段。

我刚看到这个功能,有三个谷歌群组我希望迁移。让人们“改变”非常困难。我们需要有充分的理由走出舒适区。然后我们不希望在这个过程中遇到障碍。为那些已经习惯了 GG 的人来说,在另一个网站上创建(Discourse)登录是一个麻烦。如果这个功能是稳定的,潜在的障碍就会被消除,我们可以专注于为受众提供迁移的有力理由。

谢谢!