这是尚未发布的文档。 SUSE® Rancher Manager v2.16 (Unreleased).

配置 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 身份验证已成功配置。