You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Keycloak中创建客户端以对接AWS Cognito OIDC身份联合

我之前刚帮团队搭过这套OIDC联合登录方案,给你整理了Keycloak管理员视角的简易操作步骤,亲测可行:

Keycloak管理员侧配置步骤

1. 创建专属OIDC客户端

  • 登录Keycloak后台,进入你管理用户的目标Realm
  • 左侧菜单点击「Clients」→ 右上角「Create」
  • 填写基础配置:
    • Client ID:建议设为辨识度高的名称,比如aws-cognito-oidc-client
    • Client Protocol:选择openid-connect
    • Access Type:选confidential(因为需要客户端密钥和AWS交互)
  • 点击「Save」进入客户端详情页

2. 配置客户端重定向URI

  • 在客户端详情页的「Settings」标签下,找到「Valid Redirect URIs」
  • 填入AWS Cognito的回调地址,格式为:https://<你的Cognito用户池域名>/oauth2/idpresponse

    提示:这个域名可以先去AWS Cognito用户池的「App integration」→「Domain name」里设置/查看,之后再回来补填也没问题

  • 滚动到页面底部,点击「Save」保存

3. 获取客户端密钥(后续AWS配置必用)

  • 切换到「Credentials」标签
  • 复制「Secret」字段的值,妥善保存——AWS配置OIDC身份提供商时需要这个密钥

4. 确保必要用户声明被包含在Token中

  • 切换到「Mappers」标签,检查是否有以下关键声明的映射(如果没有就手动添加):
    • sub:默认应该已经存在,对应用户的唯一标识
    • email:如果需要用邮箱作为用户标识,添加一个「User Property」类型的映射:
      • Name:随便填,比如email-claim
      • Property:选email
      • Token Claim Name:填email
      • Claim JSON Type:选String
      • 勾选「Add to ID token」和「Add to access token」
      • 点击「Save」完成添加
  • 同理可以按需添加其他用户属性(比如name、username),确保Cognito能获取到你需要的用户信息

5. 获取Keycloak OIDC元数据地址(后续AWS配置必用)

  • Keycloak的OIDC配置元数据地址格式为:
    https://<你的Keycloak域名>/auth/realms/<你的Realm名称>/.well-known/openid-configuration
    
    举个例子:如果你的Keycloak域是keycloak.example.com,Realm是my-user-realm,那地址就是:
    https://keycloak.example.com/auth/realms/my-user-realm/.well-known/openid-configuration
    
  • 复制这个地址,AWS配置OIDC身份提供商时会用到

补充:AWS侧核心配合步骤(避免你卡壳)

虽然你要的是Keycloak视角,但提一下AWS那边的关键操作:

  1. 在AWS Cognito用户池中,添加「OpenID Connect身份提供商」,填入刚才的元数据地址、客户端ID、客户端密钥
  2. 在用户池的「App client」里,启用这个OIDC提供商作为登录选项
  3. 配置API Gateway使用Cognito用户池作为授权方,或者直接使用OIDC授权(根据你的架构选择)

内容的提问来源于stack exchange,提问作者shonky linux user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:24:57