如何在AWS Custom authorizer中对用户进行身份验证?

时间:2017-07-24 13:41:32

标签: amazon-web-services aws-api-gateway aws-cognito

我正在尝试在API网关中使用AWS自定义授权程序。如果我理解正确,那么我应该在自定义授权器中验证用户。我不知道是谁发送了请求。我应该使用自己的服务通过令牌检测用户。正确?

2 个答案:

答案 0 :(得分:1)

有多个授权选项

  • IAM授权人
  • Cognito authorizer
  • 自定义授权程序

如果您使用STS颁发的令牌授予对AWS资源的访问权限,则可以使用IAM。

同样,Cognito授权程序将验证Cognito Userpools id令牌。

如果您有自己的身份验证方案或需要自定义身份验证机制,则可以使用自定义授权程序。

答案 1 :(得分:1)

我想在这里加上我的2美分,这是流程:

  1. 一旦持票人令牌(你也可以使用JWT),就会发给 客户端(即移动应用/网络应用),客户端调用通过API网关创建,配置和部署的REST API。

  2. 自定义授权程序,它是用Java编写的lambda函数 (您可以使用NodeJS,C#,Python实现它),需要验证持有者令牌是否有效。在我的例子中,使用SHA-512算法对Bearer令牌进行哈希处理。所以我们基本匹配如果令牌 存储在DB和客户端matche提供的令牌中。

  3. 如果令牌匹配,则自定义授权程序返回IAM策略允许但是 它令牌不正确然后返回IAM策略拒绝,

  4. API网关根据自定义授权者的响应做出反应,如果策略允许它直接调用后端,则返回HTTP代码403。

    希望它会有所帮助。