【发布时间】:2021-07-08 10:41:25
【问题描述】:
我有一个问题,我设法获得了访问令牌和刷新令牌,它允许我从 Microsoft 日历 API 访问用户数据,目前我面临的唯一问题是微软是否提供任何安全存储令牌的方法端点方面类似于谷歌:
AppEngineDataStoreFactory.class
任何最佳实践或类似建议的解决方案,我都会避免将令牌存储在文件中或内存中。
谢谢。
【问题讨论】:
标签: java oauth-2.0 microsoft-graph-api
我有一个问题,我设法获得了访问令牌和刷新令牌,它允许我从 Microsoft 日历 API 访问用户数据,目前我面临的唯一问题是微软是否提供任何安全存储令牌的方法端点方面类似于谷歌:
AppEngineDataStoreFactory.class
任何最佳实践或类似建议的解决方案,我都会避免将令牌存储在文件中或内存中。
谢谢。
【问题讨论】:
标签: java oauth-2.0 microsoft-graph-api
对于这种情况,我会推荐 MSAL,这是 Microsoft 的身份验证库,可简化和管理获取、管理、缓存和刷新令牌,并使用最佳实践来实现弹性。使用 MSAL 时,会自动支持令牌缓存、刷新和静默获取。
这里是 Github 上 MSAL for Java 存储库的链接:https://github.com/AzureAD/microsoft-authentication-library-for-java
如果这有帮助,请告诉我。
【讨论】:
以下建议假设您使用 MSAL 获取令牌。
首先,设计您的应用程序,使您的 MSAL 令牌缓存s遵守安全和性能建议:在 Web 应用程序中,为每个浏览器会话和帐户使用和存储单独的令牌缓存。即,当您序列化/反序列化令牌缓存时,它应该是仅与该会话相关联的令牌缓存,此外,keyed to the account ID of the logged-in user.
现在,您可以考虑将令牌缓存保存在何处。对于要使用的数据存储没有任何硬性规定,因此您可以选择适合您需要的任何内容。
最后,最重要的是,安全地存储令牌缓存。使用强加密,将存储数据的访问权限限制在您的网络应用程序中,并保护您的加密密钥。您可以使用 Azure Key Vault 获取和存储加密/解密密钥。
【讨论】: