AWS Cognito 将自定义身份验证流程与外部身份提供商结合使用
AWS Cognito use custom auth flow with external identity provider
是否可以使用启用了自定义身份验证流程的 AWS Cognito,同时还可以使用 Facebook 或 Google 等外部身份提供商?我已经在 Facebook 和 Cognito Hosted UI 上尝试过这个,但是我的 DefineAuthChallenge 触发器没有被触发。
我联系了 AWS Support,他们向我指出了 Cognito 文档 here,其中一条注释说
The Amazon Cognito hosted sign-in web page does not support the custom authentication flow.
作为替代方案,提出了这个解决方案:
Alternatively, if you would like to use custom authentication flow with an external identity provider, you will have to write your own custom login flow using one of Cognito's SDKs and use Facebook as a way of login.
我的想法是,您可以通过定义一个自定义质询来做到这一点,该质询将询问您要使用哪个身份提供者,作为第一个初始质询。如果选择 Cognito,用户需要提供他们的 SRP 资料或用户名和密码(如果已启用)。例如,如果选择 Facebook,您可能需要向客户发送身份验证质询,说您想要他们的令牌或代码,只有在客户显示带有 Facebook 登录名的网站时才能获得。然后,对服务器的质询响应将是从 Facebook 或代码或服务器可以用来在 Cognito 中对用户进行身份验证的代码或其他答案,其中 Facebook 应用程序已连接并注册为外部身份提供者
这是我将如何着手做这件事的想法,但我还没有真正实施过。不过,我希望这对尝试这样做的人有所帮助。
是否可以使用启用了自定义身份验证流程的 AWS Cognito,同时还可以使用 Facebook 或 Google 等外部身份提供商?我已经在 Facebook 和 Cognito Hosted UI 上尝试过这个,但是我的 DefineAuthChallenge 触发器没有被触发。
我联系了 AWS Support,他们向我指出了 Cognito 文档 here,其中一条注释说
The Amazon Cognito hosted sign-in web page does not support the custom authentication flow.
作为替代方案,提出了这个解决方案:
Alternatively, if you would like to use custom authentication flow with an external identity provider, you will have to write your own custom login flow using one of Cognito's SDKs and use Facebook as a way of login.
我的想法是,您可以通过定义一个自定义质询来做到这一点,该质询将询问您要使用哪个身份提供者,作为第一个初始质询。如果选择 Cognito,用户需要提供他们的 SRP 资料或用户名和密码(如果已启用)。例如,如果选择 Facebook,您可能需要向客户发送身份验证质询,说您想要他们的令牌或代码,只有在客户显示带有 Facebook 登录名的网站时才能获得。然后,对服务器的质询响应将是从 Facebook 或代码或服务器可以用来在 Cognito 中对用户进行身份验证的代码或其他答案,其中 Facebook 应用程序已连接并注册为外部身份提供者
这是我将如何着手做这件事的想法,但我还没有真正实施过。不过,我希望这对尝试这样做的人有所帮助。