通过自定义授权方法

时间:2017-07-10 08:44:12

标签: amazon-web-services aws-lambda aws-api-gateway auth0 custom-authentication

技术堆栈在前端是reactJS,后端由APIGateway和Lambda提供动力。我在我的反应应用程序中使用Auth0作为身份服务。在通过Auth0提供的社交登录之一进行身份验证时,我会返回access_tokenid_tokenexpiry_time。此外,我可以使用emailId获取用户信息,例如id_token。现在,我需要保护/阻止访问我的后端,即APIGateway和Lambda。

有很多选项可以保护对AWS APIGateway的访问,例如 IAM授权程序自定义授权程序。有关如何使用IAM authorizer with Auth0的Auth0文档。我想知道,如何使用自定义授权器。我理解自定义授权程序如何工作的高级架构。

以下是有关自定义授权程序的问题:

1Q。通过使用react auth0身份验证模块,我返回access_tokenid_tokenexpiry。收到的access_token不是JWT。如何获取JWT access_token,以便我可以通过Authorization标头传递它。

2Q。我在Auth0信息中心中看到了一个名为 API 的单独部分。这非常令人困惑和含糊不清。据我所知,这个Auth0的API部分需要单独调用Auth0服务器并接收新的access_token,这与社交登录的访问令牌不同。为什么我不能使用react的Auth客户端访问令牌?我可能错了,但我不理解Auth0中的这个API部分。

3Q。假设某种方式,我在授权标头中发送了access_token,如何在自定义授权程序的Lambda 中验证该问题。有几个博客文章,但每个帖子都采用不同的方法。有些使用id_token进行验证,有些使用jwt package进行解码,但我没有看到对Auth0的验证调用。

有一些关于使用Auth0授权APIGateway的博客文章,但它们要么已旧/已弃用,要么使用一些黑客来授权它。如果我们能够记录使用Auth0授权APIGateway的正确方法,那就太好了。

1 个答案:

答案 0 :(得分:1)

在与Auth0支持团队讨论后,我找到了上述问题的答案。以下是使用自定义Authorizer解释APIGateway和Auth0集成的详尽指南。 https://github.com/lakshmantgld/auth0-APIGateway-CustomAuthorizer