背景:我们使用Keycloak通过通常通过授权头传递令牌来保护我们的API。但是,这些API还允许用户下载文件(例如:https://api.service.io/users.xlsx
)。
为了使用这些“下载端点”,我们的Web客户端应用程序通过查询字符串传递用户令牌。(例如:https://api.service.io/users.xlsx?accessToken=${bearerToken})
)。
问题:通过查询字符串传递令牌存在几个安全漏洞(浏览器历史记录等)。因此,我们希望传递一个非常短暂的令牌(例如,15秒的寿命)而不是普通令牌(默认情况下为300秒的寿命)。
问题:我们如何从Keycloak API请求不同的令牌(例如,/realms/#{realm_id}/protocol/openid-connect/token
),方法是:
- 提供普通访问令牌(而不是凭据);
- 并且指定不同的生命周期?