Keycloak中添加Google供应商

在Keycloak中添加Google供应商,可以让用户使用他们的Google账户登录到你的应用程序,实现单点登录(SSO)。以下是详细步骤:

1. 在 Google Cloud Platform (GCP) 中创建 OAuth 2.0 客户端 ID:

  • 访问 Google Cloud Console: 打开 Google Cloud Console 并登录你的 Google 账户。
  • 创建或选择项目: 如果你还没有项目,需要创建一个新的 GCP 项目。如果已有项目,则选择它。
  • 配置 OAuth 同意屏幕:
    • 在左侧导航栏中,选择 “API 和服务” -> “OAuth 同意屏幕”。
    • 选择 “外部” 或 “内部” 用户类型。如果你的应用只供组织内部使用,选择 “内部”。如果你的应用需要外部用户访问,则选择 “外部”。
    • 填写应用信息,包括应用名称、用户支持电子邮件、开发者联系信息等。
    • 添加授权域(可选,但推荐):在“授权域”部分,添加你的 Keycloak 服务器的域名。
    • 点击 “保存并继续”。
    • 在“范围”部分,至少添加 openidprofileemail 范围。这些范围允许你的应用访问用户的基本信息。
    • 点击 “保存并继续”。
    • 在“测试用户”部分,添加用于测试的 Google 账户。
    • 点击 “保存并继续”。
    • 检查摘要并点击 “返回控制台”。
  • 创建凭据:
    • 在左侧导航栏中,选择 “API 和服务” -> “凭据”。
    • 点击 “创建凭据” -> “OAuth 客户端 ID”。
    • 选择 “Web 应用” 作为应用类型。
    • 填写名称(例如 “Keycloak Google Login”)。
    • 在 “授权的重定向 URI” 中,添加 Keycloak 的重定向 URI。这个 URI 的格式通常是:https://<your-keycloak-server>/realms/<your-realm-name>/broker/google/endpoint
    • 点击 “创建”。
  • 获取客户端 ID 和客户端密钥: 创建完成后,会弹出一个窗口显示你的客户端 ID 和客户端密钥。请务必保存这两个值,稍后在 Keycloak 配置中需要使用。

2. 在 Keycloak 中配置 Google 身份提供商:

  • 登录 Keycloak 管理控制台: 使用管理员账户登录。
  • 选择 Realm: 在左上角的下拉菜单中选择你要配置的 Realm。
  • 导航到 “Identity Providers”: 在左侧导航栏中,点击 “Identity Providers”。
  • 选择 “Google”: 在 “Add provider…” 下拉菜单中选择 “google”。
  • 配置 Google 身份提供商:
    • Alias: 为这个身份提供商设置一个别名(例如 “google”)。
    • Client ID: 粘贴你在 GCP 中创建的 OAuth 2.0 客户端 ID。
    • Client Secret: 粘贴你在 GCP 中创建的 OAuth 2.0 客户端密钥。
    • Default Scopes: 默认范围通常是 openid profile email。你可以根据需要添加其他范围。
    • 其他配置: 你可以根据需要配置其他选项,例如 “Store Token”、”Trust Email”、”Validate Signature” 等。
  • 保存配置: 点击 “Save”。

3. 测试 Google 登录:

  • 访问 Keycloak 登录页面: 访问你的 Keycloak 登录页面。
  • 点击 “Google” 按钮: 你应该会看到一个 “Google” 登录按钮。点击它。
  • 重定向到 Google 登录页面: 你将被重定向到 Google 的登录页面。
  • 使用 Google 账户登录: 输入你的 Google 账户凭据进行登录。
  • 重定向回 Keycloak: 成功登录后,你将被重定向回 Keycloak。如果一切配置正确,你应该能够成功登录到 Keycloak。

重要提示:

  • 重定向 URI: 确保在 GCP 和 Keycloak 中的重定向 URI 完全一致,否则登录将无法工作。
  • HTTPS: 确保你的 Keycloak 服务器使用 HTTPS,否则 Google 登录将无法工作。
  • 网络连接: 确保你的 Keycloak 服务器可以访问 Google 的服务器。
  • 用户映射: 如果你需要将 Google 用户的信息映射到 Keycloak 用户属性,可以在 Keycloak 客户端的 “Mappers” 选项卡中进行配置。