【发布时间】:2021-03-07 18:20:05
【问题描述】:
考虑一个由 AWS-ApiGateway 和 -Lambda 组成的 restapi 后端。
在成功进行 oauth2 身份验证后,AWS Cognito 在代码授权授予流程中向客户端返回 access_token 和 id_token。
在api调用时,lambda函数需要知道认证客户端的email地址,所以我基本上有2个选择:
- 在
Authorization标头中发送 id_token,该标头由 ApiGateway 验证并传递给 Lambda。让 Lambda 解密 id_token 并访问其中包含的电子邮件地址。 - 在
Authorization标头中发送 access_token,该标头由 ApiGateway 使用scope=openid email验证并传递给 Lambda。让 Lambda 使用Authorization标头中的 access_token 对/oauth2/userinfo端点进行GET调用以获取电子邮件地址。
两者哪一个是最佳做法?为什么?
【问题讨论】:
标签: amazon-web-services api authentication oauth-2.0 openid