如何继续使用适用于 AWS Cognito 的 AD FS SAML?

Posted

技术标签:

【中文标题】如何继续使用适用于 AWS Cognito 的 AD FS SAML?【英文标题】:How to proceed with AD FS SAML for AWS Cognito? 【发布时间】:2018-05-19 04:55:34 【问题描述】:

我正在设置 AD FS 以生成用于 SAML 的元数据以连接到 AWS Cognito 用户池。我已经生成了 xml 元数据并将其上传到用户池。我应该在 AD FS 站点上创建信任中继吗?是否有任何其他步骤可以让我的 AD 用户可用于 Web 应用登录?

【问题讨论】:

【参考方案1】:

对于 ADFS 2.0,步骤如下:

    转到“信任关系”->“依赖方信任”->“添加 信赖方信托”。这将启动一个向导。 选择“手动输入有关依赖方的数据”选项。 输入显示名称。 选择 ADFS 2.0 在下一个屏幕上。不要配置证书。 启用对“SAML 2.0 SSO 服务 URL”的支持 添加依赖方信任标识符,它将是 “urn:amazon:cognito:sp:” 选择“允许所有用户访问此信赖方” 点击完成。

现在您将在列表中看到您配置的信赖方信任。信任已经建立,但是我们仍然需要设置当用户使用这个依赖方进行身份验证时发送什么声明。右键单击依赖方信任,然后单击“编辑声明规则”

    选择声明规则名称 如果您的用户在 Active Directory 中,属性存储可以是 Active Directory 将 LDAP 属性(例如电子邮件地址)映射到传出声明类型(例如电子邮件)

Cognito 端的配置非常简单,您只需上传 metadata.xml 或提供托管 metadata.xml 的 URL。

如果您使用的是 URL,那么我们会定期提取最新的证书。

【讨论】:

非常感谢您提供如此全面的答案!这正是我想象的那样。是否有必要拥有一个可公开解析的 AD 域或私有域。带有自签名证书的本地就足够了? 你好法国,你找到关于域名的答案了吗? 我已经尝试过了,并且成功地针对 AD 对用户进行身份验证,但令牌中没有通过声明。你能澄清一下吗? “我们会定期提取最新的证书”-您能否详细说明这种情况发生的频率。本质上,这意味着证书轮换期间的停机时间,直到提取新证书

以上是关于如何继续使用适用于 AWS Cognito 的 AD FS SAML?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Cognito:注册/登录后如何在 .Net 中发出身份验证请求

如何安全地存储适用于 iOS 的 AWS 服务 ID?

Android 和 AWS Cognito - 无法使用 proguard 解组错误响应

Cognito / S3 用户特定策略

在 AWS Cognito 中回答 NEW_PASSWORD_REQUIRED 质询后继续使用自定义身份验证流程

如何在iOS中使用AWSMobileClient获取AWS Cognito用户属性?