AWS Gateway API 对存储在 DynamoDB 中的用户进行身份验证
AWS Gateway API authentication with users stored in DynamoDB
我正在尝试实施以下方案:
在前端使用 Angular SPA,在后端使用网关 API + lambda 函数
由于我的应用程序需要身份验证,因此将有 /auth 端点检查用户凭据(用户存储在 DynamoDB 中)并在成功时返回身份验证令牌 (JWT)。客户端必须向后端发送每个请求的身份验证令牌,而我的 lambda 函数必须验证这些令牌。
这个方案看起来不错,但我想知道能否以某种方式对其进行更改,以便将检查令牌的责任从 lambda 函数(上图中的 lambdaAction)中移出?
我看过Auth0等第三方服务的使用教程
在网关 API 中进行身份验证,然后再使用任何 lambda 函数(例如,参见 the link)但是我不知道如何将这些服务用于存储在我自己的数据库中的用户。
所以,简而言之,我的问题是:是否可以将网关 API 与基于令牌的身份验证一起用于存储在我的数据库中的用户
Auth0 示例仍然使用 Lambda 函数来验证每个请求的 JWT。 API 网关不会自动验证 JSON Web 令牌,您必须提供 Lambda 函数来执行此操作。
我会考虑使用新的 API Gateway Custom Authorizers 功能。这样您就可以拥有一个 Lambda 函数,负责为每个请求验证 JWT。这使您的身份验证代码封装在单个函数中,而不是在每个 Lambda 函数中重复。它还允许您在 Lambda 中进行身份验证,而实际 API 端点可能指向 Lambda 以外的其他内容。
除了Mark B的回答。
我写了一个通用的 Custom Authorizer that works with Auth0 第三方单点登录服务。
作为身份验证的一部分,它会选择性地将 Auth0 用户数据存储到 DynamoDB。
库可以在这里找到
https://github.com/jghaines/lambda-auth0-authorizer
我正在尝试实施以下方案:
在前端使用 Angular SPA,在后端使用网关 API + lambda 函数
由于我的应用程序需要身份验证,因此将有 /auth 端点检查用户凭据(用户存储在 DynamoDB 中)并在成功时返回身份验证令牌 (JWT)。客户端必须向后端发送每个请求的身份验证令牌,而我的 lambda 函数必须验证这些令牌。
这个方案看起来不错,但我想知道能否以某种方式对其进行更改,以便将检查令牌的责任从 lambda 函数(上图中的 lambdaAction)中移出?
我看过Auth0等第三方服务的使用教程 在网关 API 中进行身份验证,然后再使用任何 lambda 函数(例如,参见 the link)但是我不知道如何将这些服务用于存储在我自己的数据库中的用户。
所以,简而言之,我的问题是:是否可以将网关 API 与基于令牌的身份验证一起用于存储在我的数据库中的用户
Auth0 示例仍然使用 Lambda 函数来验证每个请求的 JWT。 API 网关不会自动验证 JSON Web 令牌,您必须提供 Lambda 函数来执行此操作。
我会考虑使用新的 API Gateway Custom Authorizers 功能。这样您就可以拥有一个 Lambda 函数,负责为每个请求验证 JWT。这使您的身份验证代码封装在单个函数中,而不是在每个 Lambda 函数中重复。它还允许您在 Lambda 中进行身份验证,而实际 API 端点可能指向 Lambda 以外的其他内容。
除了Mark B的回答。
我写了一个通用的 Custom Authorizer that works with Auth0 第三方单点登录服务。
作为身份验证的一部分,它会选择性地将 Auth0 用户数据存储到 DynamoDB。
库可以在这里找到 https://github.com/jghaines/lambda-auth0-authorizer