通过自定义授权方方法使用 Auth0 授权 AWS APIGateway



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

有很多选项可以保护对 AWS APIGateway 的访问,例如IAM授权方、自定义授权方。有一个关于如何将 IAM 授权方与 Auth0 一起使用的 Auth0 文档。我想知道,如何使用自定义授权方。我了解自定义授权方如何工作的高级架构。

以下是我关于自定义授权方的问题:

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

2Q.我在 Auth0 仪表板中看到一个名为API的单独部分。这是非常令人困惑和模棱两可的。在我的理解中,这个 Auth0 的 API 部分需要单独调用 Auth0 服务器并接收新access_token,这与社交登录的访问令牌不同。为什么我不能使用 react 的身份验证客户端的访问令牌? 我可能是错的,但我不理解 Auth0 中的这个 API 部分。

3Q.假设我以某种方式在授权标头中发送access_token,如何在自定义授权方的 Lambda中验证这一点。有几篇关于此的博客文章,但每篇文章都遵循不同的方法。有些人使用id_token进行验证,有些人使用jwt package进行解码,但我没有看到对 Auth0 的验证调用。

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

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

最新更新