我想将adal4j lib用于与广告相关的任务。它似乎不支持访问令牌的本地缓存,不是吗?是否有其他库提供这种支持?
答案 0 :(得分:2)
大多数开源库仅提供协议实现。 ADAL4J不提供缓存支持(与其他ADAL不同),但从开发人员中抽象出协议详细信息,以便它们可以与Azure AD集成。您可以考虑自己保存AuthenticationResult,并在访问令牌过期时使用结果中的刷新令牌。你可以为此调用acquireTokenUsingRefreshToken。
答案 1 :(得分:1)
正如@ KanishkPanwar-MSFT所说,ADAL4j不支持访问令牌的任何缓存机制。
但是,正如我所知,有一条指南显示了如何缓存来自文章Best Practices for OAuth 2.0 in Azure AD
的“缓存访问令牌”部分的访问令牌。
缓存访问令牌
要最大程度地减少来自客户端应用程序的网络调用及其相关延迟,客户端应用程序应缓存访问令牌,以获取OAuth 2.0响应中指定的令牌生存期。要确定令牌生存期,请使用expires_in或expires_on参数值。
如果Web API资源返回invalid_token错误代码,则可能表示资源已确定令牌已过期。如果客户端和资源时钟时间不同(称为“时间偏差”),则在从客户端缓存中清除令牌之前,资源可能会认为令牌已过期。如果发生这种情况,请清除缓存中的令牌,即使它仍在计算的生命周期内。
与此同时,我认为你可以参考一篇文章Caching access tokens in a multitenant application
,其中包括.NET的一些示例代码。