在 AWS Lambda 中使用 id_token 与 access_token 的最佳实践
Best practice for id_token vs. access_token use in AWS Lambda
考虑一个由 AWS-ApiGateway 和 -Lambda 组成的 restapi 后端。
oauth2 身份验证成功后,AWS Cognito returns access_token 和 id_token 到代码授权授予流程中的客户端。
在 api 调用期间,lambda 函数需要知道经过身份验证的客户端的电子邮件地址,所以我基本上有 2 个选择:
- 发送 id_token 中的
Authorization
header 由 ApiGateway 验证并传递给 Lambda。让 Lambda 解密 id_token 并访问其中包含的电子邮件地址。
- 在
Authorization
header 中发送 access_token 由 ApiGateway 使用 scope=openid email
验证并传递给拉姆达。让 Lambda 使用 Authorization
header 中的 access_token 对 /oauth2/userinfo
端点进行 GET
调用以获取电子邮件地址。
两者中哪一个是最佳做法?为什么?
考虑一个由 AWS-ApiGateway 和 -Lambda 组成的 restapi 后端。
oauth2 身份验证成功后,AWS Cognito returns access_token 和 id_token 到代码授权授予流程中的客户端。
在 api 调用期间,lambda 函数需要知道经过身份验证的客户端的电子邮件地址,所以我基本上有 2 个选择:
- 发送 id_token 中的
Authorization
header 由 ApiGateway 验证并传递给 Lambda。让 Lambda 解密 id_token 并访问其中包含的电子邮件地址。 - 在
Authorization
header 中发送 access_token 由 ApiGateway 使用scope=openid email
验证并传递给拉姆达。让 Lambda 使用Authorization
header 中的 access_token 对/oauth2/userinfo
端点进行GET
调用以获取电子邮件地址。
两者中哪一个是最佳做法?为什么?