AWS|API Gateway 用 Lambda 自定义授权器/Authorizer

by 穿卡芦苇 #AWS手册
文章目录

由于完整的内容篇幅较长,拆分成了几篇子文章,本文偏向总览/索引。

应用场景

API Gateway 的访问授权, 可以选择 Cognito,Userpool 里的用户登录并提交授权的Token 即可。 另外就是可以选择 Lambda,按照自定义需求自己写授权器。

自定义授权器的使用场景:

  • 自定义分配 API Key
      API 的访问控制,开启了 API Key + Usage plan 的方式,控制访问频次和使用量。想要有一套自己的 API Key 分配逻辑,则可以使用 Lambda 写一个 Function,作为 Custom Authorizer。API Key 来源选择来自这个 Lambda function。  
  • 要验证额外的信息
      其它方式的 token 或除了cognito 登录的 token,还要用户额外提供一些验证信息。  

在哪里配置/Start

API 控制面板,Create Authorizer , Type 选择 Lambda

Lambda Event Payload 的选择

返回授权结果

AWS|API 自定义授权器——输出(如何返回授权结果)

调试

参考:Call an API with API Gateway Lambda authorizers

报错

  • 错误:AuthorizerConfigurationException
      可能是返回的数据格式不对,要是 json object (而不是 json string)  

相关参考: ➦ Input to an Amazon API Gateway Lambda authorizerThe Complete Guide to Custom Authorizers with AWS Lambda and API Gateway

更多: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html https://rakibul.net/apigateway-with-cognito https://www.alexdebrie.com/posts/lambda-custom-authorizers/ https://tools.ietf.org/html/draft-ietf-oauth-jwt-bearer-12 https://www.alexdebrie.com/posts/lambda-custom-authorizers/


(正文结束。芝士就是力量!