我们目前正在AWS上使用完整的无服务器堆栈构建Web应用程序.到目前为止,我们使用AWS Lambda,AWS DynamoDB和Cognito用户池非常成功.此应用程序旨在成为企业应用程序,我的一个客户希望能够使用其当前的Active Directory凭据记录所有用户.我过去曾在其他应用程序中使用AD FS,但它总是被证明是一个让它运行起来的黑客攻击.
现在,我想向客户发送有关如何配置其AD FS信赖方信任以对我的应用程序进行身份验证的说明.
我已经读过,最好的方法是创建一个链接到Cognito用户池的Cognito Identity Provider.在用户池中,您应该创建SAML提供程序并从AD FS服务器上载metadata.xml.
我已经设置了一个带有AD FS的实验室服务器,我可以使用它.现在我不确定在依赖方信任设置或Cognito设置方面我做错了什么.我已经在这里工作了很长时间,并阅读了我能找到的每篇博客文章.如果有人可以帮助我或指出我正确的方向,将不胜感激.
我对我的 AD FS 服务器有以下声明:
LDAP 属性:
令牌组 - 不合格名称
传出索赔类型:团体
它在我的 Saml 响应中返回用户所属的组:
<AttributeStatement>
<Attribute Name="http://schemas.xmlsoap.org/claims/Group">
<AttributeValue>Domain Users</AttributeValue>
<AttributeValue>AWS-Production</AttributeValue>
<AttributeValue>AWS-Dev</AttributeValue>
</Attribute>
</AttributeStatement>
Run Code Online (Sandbox Code Playgroud)
如何将这些组映射到自定义认知用户池属性?
我尝试使用以下 SAML 属性名称进行映射: http://schemas.xmlsoap.org/claims/Group 和 http://schemas.microsoft.com/ws/2008/06/identity/claims/groups
但这些属性不会映射到 Cognito。我尝试将我的自定义映射到其他属性(例如电子邮件地址)并且取得了成功,只是我无法成功映射值的组。
PS 抱歉,我本想发布更详细地记录该过程的照片,但 imgur 在我的工作中被屏蔽了。