技术堆栈在前端是reactJS,后端由APIGateway和Lambda提供动力。我在我的反应应用程序中使用Auth0作为身份服务。在通过Auth0提供的社交登录之一进行身份验证时,我会返回access_token
,id_token
和expiry_time
。此外,我可以使用emailId
获取用户信息,例如id_token
。现在,我需要保护/阻止访问我的后端,即APIGateway和Lambda。
有很多选项可以保护对AWS APIGateway的访问,例如 IAM授权程序,自定义授权程序。有关如何使用IAM authorizer with Auth0的Auth0文档。我想知道,如何使用自定义授权器。我理解自定义授权程序如何工作的高级架构。
以下是有关自定义授权程序的问题:
1Q。通过使用react auth0身份验证模块,我返回access_token
,id_token
和expiry
。收到的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的正确方法,那就太好了。
答案 0 :(得分:1)
在与Auth0支持团队讨论后,我找到了上述问题的答案。以下是使用自定义Authorizer解释APIGateway和Auth0集成的详尽指南。 https://github.com/lakshmantgld/auth0-APIGateway-CustomAuthorizer