启用来自 Google Workplace 的群组同步

要开始操作,请按照以下说明配置 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 Group 链接到 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)登录是一个麻烦。如果这个功能是稳定的,潜在的障碍就会被消除,我们可以专注于为受众提供迁移的有力理由。

谢谢!