AWS Cognito与外部身份提供者一起使用自定义身份验证流

时间:2019-12-18 08:34:58

标签: amazon-cognito amazon-cognito-triggers

是否可以使用启用了自定义身份验证流程的AWS Cognito,同时还可以使用外部身份提供商(如Facebook或Google)?我已经在Facebook和Cognito Hosted UI上尝试过此操作,但是我的DefineAuthChallenge-trigger没有被点击。

1 个答案:

答案 0 :(得分:0)

我联系了AWS支持人员,他们向我指出了Cognito文档here,其中有一条注释说

  

Amazon Cognito托管的登​​录网页不支持自定义身份验证流程。

作为替代方案,提出了以下解决方案:

  

或者,如果您想与外部身份提供商一起使用自定义身份验证流程,则必须使用Cognito's SDKs之一编写自己的自定义登录流程,并使用Facebook作为登录方式。

我的想法是,您可以通过定义一个自定义质询来做到这一点,该质询询问您要使用哪个身份提供者作为第一个初始质询。如果选择了Cognito,则用户需要提供其SRP资料或用户名和密码(如果已启用)。例如,如果选择了Facebook,则可能需要向客户端发送身份验证挑战,要求您从他们那里获得令牌或代码,只有当客户端显示带有Facebook登录名的网站时,才能获得令牌或代码。然后,对服务器的质询响应将是从Facebook获得的身份验证令牌或代码,或服务器可以用来在Cognito内对用户进行身份验证的其他答案,Cognito连接了Facebook应用并已注册为外部身份提供商。

这是我将如何执行此操作的想法,但实际上尚未实现。我希望这对尝试这样做的人有所帮助。