Iva*_*iev 5 caching token oauth-2.0 spring-boot
我正在实现一个 Spring Boot 应用程序,其中的方法调用第三方 REST 端点。此 REST API 在 OAuth2 身份验证后即可访问。这就是为什么我从第三方检索令牌(各种用户可以使用我的应用程序并恭敬地调用 REST 端点)并使用这些令牌进行授权以调用端点。但在当前的实现中,这发生在每次调用之前。这就是为什么我想请教如何缓存这些令牌以及这是否是一个好的做法?令牌也会在 1 小时后过期。
如果您可以将访问令牌存储在客户端并随每个请求一起发送,则不应在 Web 应用程序的后端缓存访问令牌。
如果您无法将其存储在客户端(可能是您的 API 正在与某些消息客户端(如 USSD、SMS 等)通信),获取 OAuth 访问令牌的成本将很高,因为它需要 HTTP 请求来令牌端点。这种情况是一个很好的例子,您可以尽可能缓存令牌。如果您有多个实例,则可以使用 REDIS。
请记住:令牌是敏感数据,因为它们授予对用户资源的访问权限。(此外,与用户密码不同,您不能只存储令牌的哈希值。)因此,保护令牌不被泄露至关重要。您可以使用加密。请检查以下链接以了解更多详细信息:
https://auth0.com/docs/best-practices/token-best-practices。
https://learn.microsoft.com/en-us/azure/architecture/multitenant-identity/token-cache
根据 Auth0 令牌最佳实践
储存和重复使用。 减少不必要的往返,从而扩展应用程序的攻击面,并通过存储从授权服务器获取的访问令牌来优化计划令牌限制(如果适用)。不要请求新令牌,而是在以后的调用中使用存储的令牌,直到它过期。如何存储令牌将取决于应用程序的特征:典型的解决方案包括数据库(适用于无论是否存在会话都需要执行 API 调用的应用程序)和 HTTP 会话(适用于活动窗口仅限于交互式会话的应用程序) )。有关服务器端存储和令牌重用的示例,请参阅我们的 Github 存储库中的获取和存储访问令牌以调用外部 API
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |