首页 > 解决方案 > 具有角度前端的微服务架构的身份验证 (AWS Cognito)

问题描述

我正在构建一个以 Angular 前端作为 ui 组件的微服务架构。每个微服务都使用 flask-restx 和 pycognito 来保护其路由。前端使用 aws-amplify 对用户进行身份验证。每个微服务都需要一个用于安全路由的有效令牌,该令牌在各自的后端进行验证。在 aws 用户池中,我们创建了多个应用程序客户端。目标是针对 webapp 进行一次身份验证,并使用令牌访问所有微服务后端。我已经尝试在 aws 文档中找到正确的解决方案,但直到现在还没有运气。也许有人可以给我一个提示,什么是正确完成这项工作的最佳实践解决方案。

标签: amazon-web-servicesmicroservicesamazon-cognitoamplify

解决方案


保持简单和愚蠢(亲吻)。我看不到多个应用程序客户端的任何用例。

请在微服务端按照以下步骤操作:

  1. Cognito 使用非对称密钥生成 jwt 令牌。
  2. 因此,通过此代码链接从 Cognito 获取公钥。
  3. 通过公钥链接解码该 jwt 令牌。
  4. 验证将通过上述步骤完成。如果在请求头函数中传递了无效令牌,jwt.decode则会引发异常链接
  5. 解码的有效负载包含sub该子并将其存储在分布式数据库(dynamodb,SQL)中
  6. 可以存储自定义属性并将 Cognito 用户分配到组。这将有助于授权微服务端的个人用户。

我希望这能给你一个继续前进的提示。


推荐阅读