许多代码示例建议使用msal提供的令牌缓存来缓存访问令牌,并利用msal可以静默获取令牌的良好特性。但是msal如何在缓存中保护访问令牌呢?它安全吗?它容易被黑客入侵吗?
提前谢谢你。
缓存的安全性取决于您使用的令牌缓存,通常由应用程序的场景决定。我将重点介绍MSAL。但是类似的概念也适用于其他语言和环境中的库。
在。net web应用程序和api中,有几种可用的选项,包括内存和分布式缓存,如Redis, SQL Server, Cosmos DB或自定义解决方案。内存缓存只能从同一进程访问。对于分布式缓存,开发人员有责任保护这些数据源免受未经授权的访问,并在发生安全漏洞时检测它们。
在。net桌面和移动应用中,令牌缓存使用特定于操作系统的工具来加密和存储令牌。如何授予对存储在其中的令牌的访问权限是特定于操作系统的。
在所有情况下(除了移动),您都可以编写自己的自定义令牌序列化和缓存机制。除了最高级的场景,我不建议所有人都这样做。