我目前正在使用 Cognito 用户池作为 API 网关端点的授权方,一直到 Lambda 函数。
我可以将集成请求传递给 Lambda 并根据自定义属性从 Lambda 内部安全地允许或拒绝吗?
映射:“管理员”:“$context.authorizer.claims['custom:administrator']”,
Lambda 处理程序:
boolean isAdmin = Boolean.parseBoolean(request.getContext().get("administrator"));
if(isAdmin) etc...
需要明确的是,不是管理员的用户不应访问与管理员相同的 API 端点。
在此之前/之后我还需要做其他事情吗?
在用户登录 Cognito 后,我通过包含 Authorization: JWToken 标头,使用 Javascript 向 API Gateway 发送初始请求。
我需要在 Lambda 函数中验证令牌的签名吗?我认为 API Gateway 已经做到了。
在安全性方面有没有更好的方法来管理这个?
理想情况下,我希望能够根据用户池中的 GROUPS 限制对 API 端点的访问,但我认为这是不可能的。
Groups 文档讨论了通过 AWS Identity and Access Management 限制访问/权限。如果我沿着这条路走,我如何向 API Gateway 发出请求?我是否仍然使用 JWToken 授权标头,并使用 Cognito 作为 API 网关中的授权者?