bte*_*res 7 adfs amazon-web-services node.js aws-cognito
我们目前正在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设置方面我做错了什么.我已经在这里工作了很长时间,并阅读了我能找到的每篇博客文章.如果有人可以帮助我或指出我正确的方向,将不胜感激.
bte*_*res 15
在经历了很多挫折之后,我现在可以回答这个问题,所以我决定为这些斗争的初学者提供一个简单的逐步解答.
我只进入身份验证设置而不是授权.授权需要IAM角色和一些特定于体系结构的其他逻辑.我很高兴在别处讨论.
这种设置有2个组件:
在" 常规设置"下的"Cognito用户池"中,选择" 应用程序客户端",如果没有,则添加一个(稍后您将需要该ID).
然后转到App Integration下的Domain Name并选择一个有效的域前缀并保存.
您需要让公司建立信赖方信任.所需步骤如下:
https://<domain_prefix>.auth.<region>.amazoncognito.com/saml2/idpresponse在上一步中设置域前缀)urn:amazon:cognito:sp:<pool-id>在pool-id用户池的" 常规设置"中找到的AWS Cognito用户池ID现在,您需要向依赖方信任添加声明.
因此,作为应用程序开发人员,您需要设置Cognito用户池.完成向导并选择您喜欢的设置.无论如何,联合身份不一定遵循与用户池本身相同的规则.
设置联合身份的步骤如下:
https://<fqdn>/FederationMetadata/2007-06/FederationMetadata.xml).如果您无法下载该文件并通过单击"选择文件"上传该文件测试之前的最后一步是设置您之前创建的应用客户端.
要进行测试,您可以尝试使用以下形式的几个不同的URL: -
https://<domain_prefix>.auth.<region>.amazoncognito.com/authorize?idp_identifier=<idp_identifier>&response_type=token&client_id=<app_client_id>&redirect_uri=<app_client_callback_URL> 直接转到授权端点https://<domain_prefix>.auth.<region>.amazoncognito.com/login?response_type=token&client_id=<app_client_id>&redirect_uri=<app_client_callback_URL> 转到AWS托管登录UI这idp_identifier是创建联合身份时定义的可选字段.这在URL中也不是必需的.
这个单页webapp是一个很好的工具,用于测试事情是否有效,并且您正在获得所需的响应.
我希望这有助于其他人.