【发布时间】:2020-05-24 12:04:50
【问题描述】:
我正在创建一个应用程序,其中:
- 我有一个 REST API - /hello
- 用户只有在登录后才能访问此 API。
为此,我决定使用 AWS Cognito 并实施 Oauth 2.0 流程。
现在,当用户尝试访问 /hello 时,他们会被重定向到 AWS Cognito 登录页面。用户登录后,我的服务器端应用程序(包含 REST API /hello)可以从 AWS Cognito 获取 id_token 和 access_token。
我是否应该将此 id_token 传递给浏览器,并要求浏览器在访问 /hello REST API 时发送它?这是否有任何安全隐患?这是正确的方法吗?
或者,在用户通过身份验证后,我是否应该创建一个由我自己的自定义密钥签名的新 id_token,然后将其发送到浏览器?用户在尝试访问 /hello REST API 时会将其发回。然后,我将使用我的自定义密钥验证 id_token 是否有效。
id_token 的目的是验证用户的会话是否有效并且没有过期。 id_token 是否应该用于会话管理?
【问题讨论】:
标签: security spring-security oauth-2.0 amazon-cognito