amazon-web-services - 获取 Cognito 令牌的代码应该在哪里(前端或后端)
问题描述
我有一个应用程序,它有角度的前端代码。此前端应用程序调用后端 API(spring-boot)。
我已经在应用程序负载均衡器(ALB)后面的 EKS 中部署了它
请求流程:Route53 -> ALB -> 前端目标组或后端目标组。
我想在 ALB 设置 AWS Cognito 以进行用户身份验证。我将从我的活动目录联合用户池。我只想允许那些用户使用用户名/密码登录网站。我想确保只能使用有效的登录名/令牌调用后端 API。
问题: 应该使用什么授权类型?(授权码授予/隐式授予/客户端凭据)
我应该在哪里有从 cognito 获取令牌的代码?在前端(角度)还是后端?
我是否需要保护后端 API,例如只能使用令牌调用 API?还是仅仅确保有角度的路线就足够了?(因为后端点从集群外部不可见,它们只能从前端 POD 调用)例如,我们可以保持 mywebsite/login 允许没有令牌,任何其他页面(mywebsite/serach、mywebsite/home、mywebsite/product)仅在提供令牌时才允许
解决方案
您的 Angular 前端应该使用授权码授权来启动流程。Cognito Identity SDK为此提供了一些有用的帮助程序,但您可以使用任何 OIDC 客户端 SDK,例如AppAuth。
推荐阅读
- html - 在 HTML 中为浏览器呈现(和重新呈现)更快的是:表格或 flex-box
- linux - 是否可以使用 pybluez“授权服务”?
- midi - Audiokit MIDI 线程安全
- android - 设置项目 Android Studio
- c# - C# - 当我尝试创建构造函数时,出现 CS7036 错误
- python - 获取源代码不可见的网页内容
- javascript - 如何在javascript中更新数组的特定对象值
- excel - 查看隐藏工作表,无法设置工作表类的可见属性错误
- python - 获取多维数组中的最大值、最小值和最后一个索引值
- docker - 当我尝试执行我的 Docker 容器时为什么会出现这个错误?绑定:地址已经在使用中