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

能否将多个外部SAML身份提供商集成到同一AWS Cognito用户池?

关于Cognito用户池与多SAML身份提供商的集成问题

用户背景与需求

我正试图理解Cognito用户池与基于SAML的外部身份提供商之间的关系。

当前情况

我有一个使用Amplify库、以AWS Cognito为后端的ReactJS多租户应用,不同租户的用户处于同一用户池,通过用户组和自定义属性区分。我使用CloudFormation和serverless框架部署堆栈,目前采用自定义登录表单,通过Amplify库实现用户登录。

目标

除了允许客户在平台创建自有账户外,我希望提供通过外部身份提供商的SAML进行认证的选项,让每个客户能使用自身单点登录(SSO)访问Web应用。

前期研究

  • 已了解AWS提供的部署支持SAML的用户池的示例;
  • 阅读过Azure与Cognito集成的指南;
  • 理解SAML认证流程。

核心问题

是否可以将这些外部身份提供商都附加到同一个用户池,还是必须为每个新客户部署新的用户池?


解答

可以将多个SAML身份提供商(IdP)附加到同一个Cognito用户池,不需要为每个客户单独部署新用户池。

关键说明

  • Cognito用户池原生支持添加最多100个SAML身份提供商,完全覆盖多租户场景下的需求。
  • 你可以沿用现有逻辑,通过用户组、自定义属性(比如租户ID)来区分不同客户的SAML用户,和本地账户的区分规则保持统一。
  • 部署层面,不管是CloudFormation还是Serverless Framework,都可以通过AWS::Cognito::UserPoolIdentityProvider资源来按需添加新的SAML IdP配置,每个IdP可独立设置元数据、属性映射规则。
  • 登录流程上,Amplify库支持在自定义登录表单中展示可用的SAML IdP选项,让用户选择对应租户的SSO入口,也可以通过租户标识自动匹配对应的IdP发起认证。

注意事项

  • 确保每个SAML IdP的属性映射配置正确,将外部IdP返回的租户相关属性映射到Cognito用户的自定义属性(例如custom:tenantId),保障后续业务逻辑能正常区分租户。
  • 针对多租户场景,建议在Cognito用户池的应用客户端中配置合适的OAuth范围,同时在SAML IdP侧限制用户仅能访问对应租户的资源。

内容的提问来源于stack exchange,提问作者Struan McDonough

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:10:29