我目前使用Cognito用户池作为API网关端点的授权者,直至Lambda函数。使用自定义属性通过API网关对Lambda进行身份验证Cognito用户是否安全?
我可以将集成请求传递给Lambda,并基于自定义属性安全地允许或拒绝Lambda内部?
映射: “管理员”: “$ context.authorizer.claims [ '定制:管理员']”,
LAMBDA处理程序:
boolean isAdmin = Boolean.parseBoolean(request.getContext().get("administrator"));
if(isAdmin) etc...
需要明确的是,用户是不管理员不应该访问与管理员相同的API端点。
我需要在此之前/之后做任何其他事情吗?
在用户登录到Cognito之后,我通过包含授权:JWToken标头,向Javascript API网关发送初始请求。
我需要验证Lambda函数中令牌的签名吗?我认为API网关已经做到了。
有没有更好的方法来管理这个安全方面?
我非常希望能够限制访问基于用户游泳池内组API端点,不过我不认为这是可能的。
本文档介绍如何通过AWS Identity and Access Management限制访问权限。如果我沿着这条路走下去,我该如何向API网关发出请求?我仍然使用JWToken授权标题,并将Cognito用作API网关中的授权者吗?
我现在知道使用自定义属性来确保endpoing绝对不安全:用户可以更新自己的属性。 – comfytoday