首页 > 解决方案 > python-msal 用于基于 Azure 活动目录的身份验证、缓存

问题描述

我遵循了此处找到的示例应用程序: https ://github.com/Azure-Samples/ms-identity-python-webapp/blob/master/app.py

python 使用基于烧瓶的会话来存储(缓存)来自 Azure 身份验证服务的返回值。

问题:为什么要求 Web 应用程序将令牌存储在自己的存储中?
为什么 Web 应用不会简单地将访问令牌传递给用户的浏览器,这将在后续请求中以 cookie 或 Authorization 标头的形式发送,然后对于每个请求,Web 应用都会咨询 Azure API 以检查是否令牌是否有效?

假设 Web 应用程序只需要身份验证,那么 的意义何在msal.TokenCache,我可以避免使用它吗?

标签: pythonazureoauth-2.0azure-active-directorymsal

解决方案


MSAL 的令牌缓存带有大量令牌刷新逻辑,以最大限度地减少最终用户交互。比如说,如果您在缓存中以某种方式已经有范围 A 和 B 的令牌,而稍后您需要 A 的令牌,MSAL 将重用缓存中的令牌,并在必要时自动刷新它。

Web 应用程序示例选择以会话的形式实现这样的令牌缓存持久层,因此所有上述缓存行为都将存在,以防您的应用程序以后需要使用它。

话虽如此,整个令牌缓存在技术上是可选的。您可以选择定制您的实施。(警告:不过,简单地忽略令牌缓存可能不是正确的方法,因为这样会启动默认的内存中令牌缓存,然后所有最终用户的令牌都会累积在烧瓶应用程序的内存中。)


推荐阅读