Intranet API 的 REST 身份验证缓存

Posted

技术标签:

【中文标题】Intranet API 的 REST 身份验证缓存【英文标题】:REST Authentication cache for intranet API 【发布时间】:2014-06-14 02:23:26 【问题描述】:

我在企业 Intranet 上公开了一个基于 REST 的 API,以支持 Web 应用程序和其他服务。对于网络应用程序,基于 cookie 的解决方案符合我的要求。而对于其他服务,基本身份验证就可以了。

但诀窍是,用户是针对 ldap 进行身份验证的,我不想在每次服务调用时都访问 ldap 服务器。我想知道这种情况是否有任何最佳做法。

我正在使用 Spring (3.2) 和其他常见的嫌疑人,Spring Security、MVC、Hibernate...

Ldap 身份验证有点麻烦,所以我使用的是我自己的东西,也许我可能会在其中引入某种缓存。

【问题讨论】:

【参考方案1】:

执行一次 LDAP 查找。您的 API 可以保留经过身份验证的用户 ID 的内存缓存。让缓存条目在固定时间或自上次调用后的一段时间内保持有效。客户端仍然可以使用 cookie 或基本身份验证来发送凭据。

【讨论】:

谢谢。这就是我在问题中所暗示的,但是您说的是手动解决方案,对吗? Spring 或任何其他库都没有提供任何东西? 我要么手动滚动缓存,要么使用 Guava 定时驱逐缓存:code.google.com/p/guava-libraries/wiki/…。就缓存而言,我不熟悉 Spring 提供的功能。

以上是关于Intranet API 的 REST 身份验证缓存的主要内容,如果未能解决你的问题,请参考以下文章

REST API 身份验证令牌

使用 Camel 的 REST 服务调用需要首先调用身份验证 api

Shopware REST Api - 身份验证无效或缺失

自定义 REST 服务的 API 身份验证最佳实践

带有 jwt 身份验证的 django rest api 要求 csrf 令牌

如何实现 REST API 的身份验证?