跳转到内容
搜索文档

Google Workspace

最后更新 查看 MarkdownAgent 设置

您可以将 Google Workspace(前身为 G Suite)账户与 Cloudflare Access 集成。与常规 Google 身份验证的说明不同,以下步骤将允许您从 Google Workspace 账户中提取群组成员身份信息。

集成后,用户将使用其 Google Workspace 凭据登录,以访问受 Cloudflare Access 保护的资源或将其设备注册到 Cloudflare Gateway 中。

您不需要成为 Google Cloud Platform 用户即可将 Google Workspace 作为身份提供程序集成到 Cloudflare One。您只需要打开 Google Cloud Platform 来配置 IdP 集成设置。

将 Google Workspace 设置为身份提供程序

1. 配置 Google Workspace

  1. 登录到 Google Cloud Platform 控制台。这与您的 Google Workspace 控制台是分开的。

  2. 启用 Google Workspace API 需要 Google Cloud 项目。如果您还没有 Google Cloud 项目,请转到 IAM & Admin(IAM 和管理)> Create Project(创建项目)。命名项目并选择 Create(创建)

  3. 转到 **APIs & Services(API 和服务)**并选择 Enable APIs and Services(启用 API 和服务)。API 库将加载。

  4. 在 API 库中,搜索 admin 并选择 Admin SDK API(Admin SDK API)

  5. **Enable(启用)**Admin SDK API。

  6. 返回 **APIs & Services(API 和服务)**页面并转到 Credentials(凭据)

  7. 选择 Configure Consent Screen(配置同意屏幕)

    在 Google Cloud Platform 控制台中配置 Consent Screen 的位置。
  8. 要配置同意屏幕(consent screen):

    1. 选择 Get Started(开始)
    2. 输入 **App name(应用名称)**和 User support email(用户支持电子邮件)
    3. 选择 **Internal(内部)**作为 Audience Type(受众类型)。该受众类型将授权请求限制为您 Google Workspace 中的用户,并阻止拥有常规 Gmail 地址的用户。
    4. 输入您的 Contact Information(联系信息)。Google Cloud Platform 需要您账户中的电子邮件。
    5. 同意 Google 的用户数据政策并选择 Continue(继续)
    6. 选择 Create(创建)
  9. OAuth 概览页面将加载。选择 Create OAuth Client(创建 OAuth 客户端)

    在 Google Cloud Platform 控制台中创建 OAuth 客户端的位置。
  10. 选择 Web application 作为 Application type(应用程序类型),并为您的 OAuth Client ID 命名。

  11. 在 **Authorized JavaScript origins(已授权的 JavaScript 来源)**下的 URIs 字段中,输入您的团队域:

    https://<your-team-name>.cloudflareaccess.com

    您可以在 Cloudflare 仪表板Settings(设置)> Team name and domain(团队名称和域名)> **Team name(团队名称)**下找到您的团队名称。

  12. 在 **Authorized redirect URIs(已授权的重定向 URI)**下的 URIs 字段中,输入以下 URL:

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback
  13. 创建 OAuth 客户端后,选择您刚刚创建的 OAuth 客户端。Google 将显示 **OAuth Client ID(OAuth 客户端 ID)**值和 **Client secret(客户端密钥)**值。客户端密钥(client secret)字段的作用类似于密码,不应共享。复制 **OAuth Client ID(OAuth 客户端 ID)**值和 **Client secret(客户端密钥)**值。

  14. 在您的 Google 管理控制台上,转到 Security(安全)> Access and data control(访问和数据控制)> API controls(API 控制)

  15. 在 **API Controls(API 控制)**中,选择 Settings(设置)

  16. 选择 **Internal apps(内部应用)**并勾选 **Trust internal apps(信任内部应用)**旁边的框以启用此选项。**Trust internal apps(信任内部应用)**设置默认处于禁用状态,必须启用它才能使 Cloudflare Access 正常工作。

    在 Google Cloud Platform 控制台中信任内部应用的位置。

2. 将 Google Workspace 添加到 Cloudflare One

  1. Cloudflare 仪表板中,转到 Zero Trust > Integrations(集成) > Identity providers(身份提供商)

  2. 选择 **Add new identity provider(添加新身份提供商)**并选择 Google Workspace(Google Workspace)

  3. 输入之前生成的 Client ID(在 Cloudflare 仪表板中为 App ID(应用程序 ID))和 **Client Secret(客户端密钥)**字段。此外,输入您的 Google Workspace 账户的域名。

  4. (可选) 启用 Key Exchange 证明 (PKCE)。PKCE 将在所有登录尝试中执行。

  5. (可选) 在 **Optional configurations(可选配置)**下,输入您希望添加到用户身份的自定义 OIDC 声明

  6. 选择 Save(保存)。要完成设置,您必须访问生成的链接。如果您不是 Google Workspace 管理员,请与管理员共享该链接。

  7. 生成的链接将提示您登录您的 Google 管理员账户,并授权 Cloudflare Access 查看群组信息。允许权限后,您将看到 Cloudflare Access 的成功页面。

要测试您的连接是否正常工作,请转到 Integrations(集成)> Identity providers(身份提供商),然后选择 Google Workspace 旁边的 Test(测试)。应当返回您的用户身份和群组成员身份。

示例 API 配置

{
	"config": {
		"client_id": "<your client id>",
		"client_secret": "<your client secret>",
		"apps_domain": "mycompany.com"
	},
	"type": "google-apps",
	"name": "my example idp"
}

故障排除

Error 401: deleted_client

如果您在 Google 中删除了 OAuth 客户端(或 OAuth 客户端已过期),您将收到 Error 401: deleted_client 授权错误。

要解决此问题,请完成 Google 指南中的步骤 6 至 12,以及 Google Workspace 指南中的步骤 9 至 15。

这篇文档对您有帮助吗?