使用 AWS API 网关验证会话
Authenticate session with AWS API Gateway
情况:我有一个应用程序(Next.js/React on Vercel)运行 on example.com。我在 api.example.com 上有一个 api(AWS API 网关)。目前 example.com 上的应用程序支持使用 Auth0 作为身份验证提供程序登录。
问题:我希望能够从应用程序 (example.com) 向 api (api.example.com).
在架构上,我希望 API 网关(api.example.com)能够处理来自app/Auth0 cookie (example.com)。我认为浏览器可以共享 cookie(因为 api.example.com 是可信的)并且 API 可以验证它。
但我没有看到 标准 的方法。我想我可以尝试为 AWS 的 API 网关创建一些自定义的 lambda 授权方。但由于我们正在处理身份验证,我更愿意尽可能地外包并避免任何自定义代码。我似乎无法拼凑 API 网关处理会话的方式,我认为这是一个很常见的问题。
旁注:以前,我使用 Next.js 中的 pages/api 直接调用 AWS 上的 Lambdas 并公开它们。有了这个,身份验证就可以正常工作了。这就是我现在正在尝试重新创建的体验,但用户无需往返。
当你想保护 API 时,最好使用 JWT 令牌来继承必要的声明,例如经过身份验证的用户的 ID。 OpenID 连接和 Oauth2.0 是要研究的标准。
Auth0 有推荐的身份验证流程的文档:https://auth0.com/docs/flows/authorization-code-flow
以及 Api 网关 HTTP api 的示例:https://auth0.com/blog/securing-aws-http-apis-with-jwt-authorizers/
AWS 文档包含有关 Http Apis 和 JWT 令牌授权方的更多信息:https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html
如果您的 Api 网关使用 Rest api 而不是更轻便的 Http api,那么基于令牌的 Lambda 授权方是正确的解决方案:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
情况:我有一个应用程序(Next.js/React on Vercel)运行 on example.com。我在 api.example.com 上有一个 api(AWS API 网关)。目前 example.com 上的应用程序支持使用 Auth0 作为身份验证提供程序登录。
问题:我希望能够从应用程序 (example.com) 向 api (api.example.com).
在架构上,我希望 API 网关(api.example.com)能够处理来自app/Auth0 cookie (example.com)。我认为浏览器可以共享 cookie(因为 api.example.com 是可信的)并且 API 可以验证它。
但我没有看到 标准 的方法。我想我可以尝试为 AWS 的 API 网关创建一些自定义的 lambda 授权方。但由于我们正在处理身份验证,我更愿意尽可能地外包并避免任何自定义代码。我似乎无法拼凑 API 网关处理会话的方式,我认为这是一个很常见的问题。
旁注:以前,我使用 Next.js 中的 pages/api 直接调用 AWS 上的 Lambdas 并公开它们。有了这个,身份验证就可以正常工作了。这就是我现在正在尝试重新创建的体验,但用户无需往返。
当你想保护 API 时,最好使用 JWT 令牌来继承必要的声明,例如经过身份验证的用户的 ID。 OpenID 连接和 Oauth2.0 是要研究的标准。
Auth0 有推荐的身份验证流程的文档:https://auth0.com/docs/flows/authorization-code-flow
以及 Api 网关 HTTP api 的示例:https://auth0.com/blog/securing-aws-http-apis-with-jwt-authorizers/
AWS 文档包含有关 Http Apis 和 JWT 令牌授权方的更多信息:https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html
如果您的 Api 网关使用 Rest api 而不是更轻便的 Http api,那么基于令牌的 Lambda 授权方是正确的解决方案:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html