首页 > 解决方案 > 获取 Cognito 令牌的代码应该在哪里(前端或后端)

问题描述

我有一个应用程序,它有角度的前端代码。此前端应用程序调用后端 API(spring-boot)。

我已经在应用程序负载均衡器(ALB)后面的 EKS 中部署了它

请求流程:Route53 -> ALB -> 前端目标组或后端目标组。

我想在 ALB 设置 AWS Cognito 以进行用户身份验证。我将从我的活动目录联合用户池。我只想允许那些用户使用用户名/密码登录网站。我想确保只能使用有效的登录名/令牌调用后端 API。

问题: 应该使用什么授权类型?(授权码授予/隐式授予/客户端凭据)

我应该在哪里有从 cognito 获取令牌的代码?在前端(角度)还是后端?

我是否需要保护后端 API,例如只能使用令牌调用 API?还是仅仅确保有角度的路线就足够了?(因为后端点从集群外部不可见,它们只能从前端 POD 调用)例如,我们可以保持 mywebsite/login 允许没有令牌,任何其他页面(mywebsite/serach、mywebsite/home、mywebsite/product)仅在提供令牌时才允许

标签: amazon-web-servicesamazon-cognito

解决方案


您的 Angular 前端应该使用授权码授权来启动流程。Cognito Identity SDK为此提供了一些有用的帮助程序,但您可以使用任何 OIDC 客户端 SDK,例如AppAuth


推荐阅读