python - 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
,我可以避免使用它吗?
解决方案
MSAL 的令牌缓存带有大量令牌刷新逻辑,以最大限度地减少最终用户交互。比如说,如果您在缓存中以某种方式已经有范围 A 和 B 的令牌,而稍后您需要 A 的令牌,MSAL 将重用缓存中的令牌,并在必要时自动刷新它。
Web 应用程序示例选择以会话的形式实现这样的令牌缓存持久层,因此所有上述缓存行为都将存在,以防您的应用程序以后需要使用它。
话虽如此,整个令牌缓存在技术上是可选的。您可以选择定制您的实施。(警告:不过,简单地忽略令牌缓存可能不是正确的方法,因为这样会启动默认的内存中令牌缓存,然后所有最终用户的令牌都会累积在烧瓶应用程序的内存中。)
推荐阅读
- python - 使用 ipywidgets,如何关闭包含按下按钮的选项卡?
- javascript - Route 没有将我重定向到正确的页面。它只是向我显示相同的页面,但网址发生了变化
- sql - 过去 7 天的运行金额平均为每个日期的进度
- java - 在android中获取firebase用户ID
- python - dict理解中的海象运算符
- java - 从 recursion 返回时对象值的状态
- asp.net-mvc - ASP.Net 身份与 SAML 集成
- vba - 连接 Azure Databricks - VBA
- java - Android studio:如何正确导入可以在我的项目中导入的第三方代码?
- android - 带蓝牙的安卓模拟器