本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

配置 Google OAuth

如果您的组织使用 G Suite 进行用户身份验证,您可以配置 Rancher 以允许用户使用其 G Suite 凭据登录。

只有 G Suite 域的管理员可以访问 Admin SDK。因此,只有 G Suite 管理员可以为 Rancher 配置 Google OAuth。

在 Rancher 中,只有具有 管理身份验证 全局角色 的管理员或用户可以配置身份验证。

先决条件

  • 您必须配置一个 G Suite 管理员账户

  • G Suite 需要一个 顶级私有域 FQDN 作为授权域。获取 FQDN 的一种方法是在 Route53 中为您的 Rancher 服务器创建 A 记录。您不需要使用该记录更新 Rancher 服务器 URL 设置,因为可能有集群正在使用该 URL。

  • 您必须为您的 G Suite 域启用 Admin SDK API。您可以按照 此页面上的步骤 启用它。

    启用 Admin SDK API 后,您的 G Suite 域的 API 屏幕应如下所示:

    启用管理员 API

为 Rancher 设置 G Suite 的 OAuth

在您可以在 Rancher 中设置 Google OAuth 之前,您需要登录到您的 G Suite 账户并执行以下操作:

1.将 Rancher 添加为授权域

  1. 点击 这里 访问您的 Google 域的凭证页面。

  2. 选择您的项目并点击 OAuth 同意屏幕

    OAuth 同意屏幕
  3. 前往 授权域,在列表中输入您的 Rancher 服务器 URL 的顶级私有域。顶级私有域是最右侧的超级域。例如,www.foo.co.uk 是 foo.co.uk 的顶级私有域。有关顶级域的更多信息,请参阅 这篇文章。

  4. 前往 Google API 的范围,确保 电子邮件, 个人资料openid 已启用。

*结果:*Rancher 已被添加为 Admin SDK API 的授权域。

2.为 Rancher 服务器创建 OAuth2 凭证

  1. 前往 Google API 控制台,选择您的项目,然后访问 凭证页面。

    凭证
  2. 创建凭证 下拉菜单中,选择 OAuth 客户端 ID

  3. 点击 Web 应用程序

  4. 提供一个名称。

  5. 填写 授权的 JavaScript 来源授权的重定向 URI。注意:Rancher UI 页面用于设置 Google OAuth(可在全局视图下的 安全性  身份验证  Google 中访问)为您提供了此步骤所需的确切链接。

    • 授权的 JavaScript 来源, 中输入您的 Rancher 服务器 URL。

    • 授权的重定向 URI, 中输入您的 Rancher 服务器 URL,并附加路径 verify-auth。例如,如果您的 URI 是 https://rancherServer,您将输入 https://rancherServer/verify-auth

  6. 点击 Create

  7. 凭证创建后,您将看到一个包含您凭证列表的屏幕。选择您刚刚创建的凭证,在最右侧的那一行中,点击 Download JSON。保存该文件,以便您可以将这些凭证提供给 Rancher。

*结果:*您的 OAuth 凭证已成功创建。

3.创建服务帐户凭证

由于 Google Admin SDK 仅对管理员可用,普通用户无法使用它来检索其他用户或其组的资料。普通用户甚至无法检索自己的组。

由于 Rancher 提供基于组的成员访问,我们要求用户能够获取自己的组,并在需要时查找其他用户和组。

作为获取此功能的变通方法,G Suite 建议创建一个服务帐户,并将您的 G Suite 域的权限委托给该服务帐户。

本节介绍如何执行下列操作:

  • 创建服务帐户

  • 为服务帐户创建一个密钥,并将凭证下载为 JSON

    1. 点击 here 并选择您生成 OAuth 凭证的项目。

    2. 点击 Create Service Account

    3. 输入名称并点击 Create

      服务帐户创建 第 1 步
    4. 服务帐户权限 页面上不要提供任何角色,然后点击 继续

      服务帐户创建 第 2 步
    5. 点击 Create Key 并选择 JSON 选项。下载 JSON 文件并保存,以便将其作为服务帐户凭据提供给 Rancher。

      服务帐户创建 第 3 步

*结果:*您的服务帐户已创建。

4.将服务帐户密钥注册为 OAuth 客户端

您需要为上一步中创建的服务帐户授予一些权限。Rancher 要求您仅为用户和组授予只读权限。

使用服务帐户密钥的唯一 ID,按照以下步骤将其注册为 OAuth 客户端:

  1. 获取您刚刚创建的密钥的唯一 ID。如果它没有显示在您创建的密钥旁边的密钥列表中,您需要启用它。要启用它,请单击 唯一 ID 并单击 确定。这将向服务帐户密钥列表中添加一个 唯一 ID 列。保存为您创建的服务帐户所列出的那一项。注意:这是一个数字密钥,不要与字母数字字段 密钥 ID 混淆。

    服务帐户唯一 ID
  2. 转到 域范围委派 页面。

  3. 客户端名称 字段中添加在上一步中获得的唯一 ID。

  4. 一个或多个 API 范围 字段中,添加以下范围:

     openid,profile,email,https://www.googleapis.com/auth/admin.directory.user.readonly,https://www.googleapis.com/auth/admin.directory.group.readonly
  5. 单击 授权

*结果:*服务帐户已在您的 G Suite 帐户中注册为 OAuth 客户端。

在 Rancher 中配置 Google OAuth

  1. 使用分配了 管理员 角色的本地用户登录 Rancher。该用户也称为本地主体。

  2. 在左上角,点击 ☰ > 用户与身份验证

  3. 在左侧导航菜单中,点击 身份验证提供者

  4. 单击 Google。用户界面中的说明涵盖了使用 Google OAuth 设置身份验证的步骤。

    1. 管理员电子邮件:提供您 GSuite 设置中管理员帐户的电子邮件。为了执行用户和组查找,Google API 需要管理员的电子邮件以及服务帐户密钥。

    2. 域:提供您已配置 GSuite 的域名。提供确切的域名,而不是任何别名。

    3. 嵌套组成员资格:选中此框以启用嵌套组成员资格。Rancher 管理员可以在配置身份验证后随时禁用此功能。

      • 第一步 是将 Rancher 添加为授权域,我们已经在 本节中 进行了介绍。

      • 对于 第二步,,提供您在完成 本节 后下载的 OAuth 凭据 JSON。您可以上传文件或将内容粘贴到 OAuth 凭据 字段中。

      • 对于 第三步,,提供您在 本节 结束时下载的服务帐户凭据 JSON。凭据仅在您成功 注册服务帐户密钥 作为 OAuth 客户端时有效。

  5. 单击 使用 Google 进行身份验证

  6. 单击 启用

*结果:*Google 身份验证已成功配置。