编程语言
首页 > 编程语言> > 如何通过Java API使用AWS Cognito对用户进行身份验证

如何通过Java API使用AWS Cognito对用户进行身份验证

作者:互联网

我们正在构建一个带有Web(角度)门户的iOS / Android应用程序(用于管理目的).后端API将使用Java构建,考虑到Web门户可以拥有我正在考虑使用Spring安全性的不同类型的用户.

我正在考虑使用我的后端服务来使用AWS Cognito对用户进行身份验证.我不想将iOS / Andorid / Web直接与AWS Cognito集成,因为将来我们可能需要切换到其他提供商.

我不确定这是否可能,但是正在考虑这样的事情:
1.注册API:iOS / Android / Web(带角色)通过电子邮件和密码调用我的后端服务.后端服务使用AWS Cognito注册用户. AWS Cognito将返回该用户的标识符以及我将在本地数据库中使用的相同标识符,以创建链接b / w用户以及角色和其他表.后端服务将向客户端(iOS / Android和Web)返回json响应,指出已创建用户.

>登录API:iOS / Android / Web(带角色)通过电子邮件和密码调用我的后端服务.后端服务将电子邮件和密码传递给AWS Cognito.如果用户可用,AWS Coginto将返回通过后端服务传递给客户端(iOS / Andorid / Web)的令牌(具有过期时间),如果它不可用,则会抛出异常.
>获取用户信息API:用户登录后,iOS / Android / Web(带角色)使用令牌(从Login API获取)调用我的后端服务.后端服务使用AWS Cognito验证令牌.如果令牌有效,AWS Cognito将返回用户信息,如电子邮件和标识符,以标识本地数据库中的用户.
>任何其他API:所有其他后端工作为获取用户信息,即客户端(iOS / Andorid / Web)使用令牌调用后端服务,并且支持的服务使用相同的令牌来使用AWS Cognito对用户进行身份验证.
>注销API.调用此API后,令牌应失效.

我已经阅读了很多关于AWS Cognito的文档,但是我读到的内容越来越多.如果有人可以通过AWS Cognito告诉我上述是否可行,那将是一个很大的帮助,如果是,我该如何继续.

提前致谢!!

解决方法:

正如@Viccari在回复中所解释的那样,您不应该提供有关安全性的“定制”解决方案.最好的方法是将Cognito SDK集成到客户端代码中.它将处理有关您的令牌的所有内容.另外,如果您的应用程序使用AWS API Gateway,您可以将API配置为使用Cognito Authorizer.无论如何,如果您确实需要自定义身份验证,我建议使用Developer Authenticated Identities,它提供了一种机制,允许您在集成时对用户进行身份验证与Cognito.

最好的祝福,

标签:java,amazon-web-services,spring-security,aws-sdk,aws-cognito
来源: https://codeday.me/bug/20190710/1428839.html