能否将AWS Cognito用户池作为AWS IAM身份中心的身份提供商?
可以实现该需求
AWS IAM身份中心支持接入外部SAML 2.0身份提供商(IdP),而AWS Cognito用户池可配置为SAML 2.0 IdP,完全满足你用Cognito用户池用户(如helloworld)登录IAM身份中心的需求。以下是具体配置步骤:
1. 将Cognito用户池配置为SAML 2.0身份提供商
- 登录AWS管理控制台,进入目标Cognito用户池
- 切换至应用集成标签页,在「SAML 2.0身份提供商」区域点击添加SAML身份提供商
- 在「配置SAML」步骤中,点击下载元数据(后续配置IAM身份中心需用到该文件)
- 填写提供商名称(例如
Cognito-IAM-SSO-IdP),完成创建
2. 创建Cognito应用客户端
- 在Cognito用户池的应用集成标签页,找到「应用客户端和资源服务器」,点击创建应用客户端
- 选择公共客户端类型(IAM身份中心发起SAML请求无需客户端密钥)
- 勾选授权范围:至少选择
openid、email、profile - 在「高级设置」的「OAuth 2.0授权类型」中,勾选授权码授予和SAML 2.0
- 创建完成后,记录该客户端的客户端ID
3. 配置Cognito SAML属性映射
- 回到Cognito用户池的应用集成标签页,找到刚创建的SAML身份提供商,点击编辑属性映射
- 将Cognito用户属性映射到标准SAML断言属性:
email→http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressname→http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name- 可选:
username→http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
- 保存映射配置
4. 将Cognito接入IAM身份中心作为外部身份源
- 进入IAM身份中心控制台,左侧导航栏选择身份源,点击添加身份源
- 选择外部身份提供商 → SAML 2.0类型
- 上传之前从Cognito下载的SAML元数据文件,或手动粘贴元数据内容
- 设置身份源名称(例如
Cognito-User-Pool),点击下一步 - 配置属性映射,将SAML断言属性对应到IAM身份中心用户属性:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress→Emailhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/name→DisplayName
- 完成身份源创建
5. 测试登录流程
- 在IAM身份中心仪表板复制用户门户URL并打开
- 选择配置好的Cognito身份源,输入Cognito用户池中的
helloworld账号密码 - 验证是否成功进入IAM身份中心用户门户,并可访问已授权的AWS资源
内容的提问来源于stack exchange,提问作者voidcraft
相关产品推荐
相关产品推荐

