Amazon web services AWS Cognito+;API网关,基于用户名授权

Amazon web services AWS Cognito+;API网关,基于用户名授权,amazon-web-services,authorization,aws-api-gateway,amazon-cognito,Amazon Web Services,Authorization,Aws Api Gateway,Amazon Cognito,我有一个API网关HTTP API。对于一些路由,我附加了一个Cognito用户池授权器,它运行良好。但是,现在我想对授权添加一个限制,以便只有具有正确用户名的用户才能访问特定的API 例如,如果路由是PUT/users/{username},我只希望具有相应用户名的用户能够编辑其配置文件信息。对于其他用户,它应该是未经授权的 这似乎是一个常见的用例,我如何做到这一点?我已经研究了范围,但这似乎不是解决方案。我是否需要为此编写自定义Lambda授权程序,而不是使用Cognito授权程序?如果是这

我有一个API网关HTTP API。对于一些路由,我附加了一个Cognito用户池授权器,它运行良好。但是,现在我想对授权添加一个限制,以便只有具有正确用户名的用户才能访问特定的API

例如,如果路由是
PUT/users/{username}
,我只希望具有相应用户名的用户能够编辑其配置文件信息。对于其他用户,它应该是未经授权的


这似乎是一个常见的用例,我如何做到这一点?我已经研究了范围,但这似乎不是解决方案。我是否需要为此编写自定义Lambda授权程序,而不是使用Cognito授权程序?如果是这样,您可以提供一个示例,因为我没有编写Lambda授权程序的经验。

您可以使用映射模板在API网关中构造请求,并使用存储在Cognito令牌中的信息

对于您对
/users/{username}
的特定请求,您可以使用if仅在用户匹配时提供所需的信息

或者,您可以简化放置到/users的路径,然后从cognito令牌中提取用户名并在映射模板中使用它