【发布时间】:2020-07-08 21:57:19
【问题描述】:
问题: 在我的应用程序中,用户是团队的一部分,可以访问团队资源(例如任务)。当用户对任务发出获取请求时,我必须验证该用户是否是拥有该任务的团队的一员。我将如何在我的堆栈中执行此操作?
堆栈: 我有一个 HttpApi 形式的 Api 网关,后面有一堆 Lambda,可以从 DynamoDb 表中获取资源。
当前解决方案: 我已经在路由上配置了 JWT 授权方,并且正在发送我的用户在登录 lambdas 时获得的访问令牌。这包含用户 ID。我使用此 ID 对数据库进行额外调用,以检查它可以访问哪些团队。这意味着每个请求都会额外调用 dynamo db。
更好的解决方案是什么样的? 我习惯于向我的令牌添加授权资源所需的声明(我一直在不同公司运行许多身份服务器),但这似乎不是在这个堆栈中完成的方式。我不确定使用 aws 无服务器堆栈向用户授权用户 ID 以外的信息的“推荐”方式是什么。请指教=)
这是项目来源(正在进行中的工作等): https://github.com/stilren/typescript-cdk-react/tree/master/backend
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway amazon-cognito lambda-authorizer