如何通过JavaAPI使用AWS Cognito对用户进行身份验证
我们正在构建一个iOS/android应用程序,带有一个Web(角度)门户(用于管理目的)。后端API将使用Java构建,考虑到web门户可以有不同类型的用户,我正在考虑使用Spring security 我正在考虑使用我的后端服务来使用AWS Cognito对用户进行身份验证。我不想将iOS/android/Web直接与AWS Cognito集成,因为将来我们可能需要切换到其他提供商 我不确定这是否可能,但我在想这样的事情: 1.注册API:iOS/Android/Web(具有角色)使用电子邮件和密码调用我的后端服务。后端服务向AWS Cognito注册用户。AWS Cognito将返回该用户的标识符,我将在本地数据库中使用该标识符创建一个链接b/w用户、角色和其他表。后端服务将向客户端(iOS/Android和web)返回一个json响应,声明用户已创建如何通过JavaAPI使用AWS Cognito对用户进行身份验证,java,amazon-web-services,spring-security,aws-sdk,aws-cognito,Java,Amazon Web Services,Spring Security,Aws Sdk,Aws Cognito,我们正在构建一个iOS/android应用程序,带有一个Web(角度)门户(用于管理目的)。后端API将使用Java构建,考虑到web门户可以有不同类型的用户,我正在考虑使用Spring security 我正在考虑使用我的后端服务来使用AWS Cognito对用户进行身份验证。我不想将iOS/android/Web直接与AWS Cognito集成,因为将来我们可能需要切换到其他提供商 我不确定这是否可能,但我在想这样的事情: 1.注册API:iOS/Android/Web(具有角色)使用电子邮
提前谢谢 我认为您应该在客户机上与Cognito集成,尽管您明确指出了以下几点: 我不想将iOS/android/Web直接与AWS Cognito集成,因为将来我们可能需要切换到其他提供商 通过在服务器端集中处理客户凭据,您增加了客户的风险和潜在威胁。这听起来不像是应用程序的核心业务。这是科尼托的核心业务 在我看来,在客户机上与Cognito集成可以解决所有问题。我只是不确定是否要取回用户元数据(比如电子邮件地址),但在任何情况下,你自己只做这一部分的工作要比什么都少
此外,即使您希望将来切换身份提供商,Cognito也支持多个(Google、Facebook、Amazon),如果您真的需要,甚至支持一个自定义的。正如@Viccari在其回复中所解释的,您不应该提供有关安全性的“自定义”解决方案。最好的方法是在客户机代码中集成Cognoto SDK。它将处理与您的代币有关的一切。另外,如果应用程序使用的是AWS API网关,则可以将API配置为使用。无论如何,如果您确实需要自定义身份验证,我建议使用,它提供了一种机制,允许您在与Cognito集成时对用户进行身份验证 致以最良好的祝愿