如何让本地Python应用清除已缓存的Azure凭证以重新进行交互式登录
解决步骤
azure.identity 底层依赖MSAL(微软身份验证库)存储持久化令牌,和 Azure CLI 的缓存体系完全独立,这是你之前删除~/.azure、执行az logout都不生效的核心原因,按以下步骤操作即可清除旧缓存触发重新登录:
1. 定位并删除MSAL持久化缓存文件
不同操作系统的缓存文件路径如下,直接删除对应文件即可清除所有已存储的登录凭证:
- Windows:删除
%USERPROFILE%\.IdentityService\msal.cache - macOS:删除
~/.IdentityService/msal.cache - Linux:删除
~/.IdentityService/msal.cache
2. 可选:代码层面临时禁用持久化缓存
如果你后续需要频繁切换账号,可以在初始化凭证时显式关闭缓存持久化,避免每次切换都要手动删文件:
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential, TokenCachePersistenceOptions # 方式1:给DefaultAzureCredential禁用持久化缓存 credential = DefaultAzureCredential( cache_persistence_options=TokenCachePersistenceOptions(enabled=False) ) # 方式2:显式使用InteractiveBrowserCredential,强制每次启动都触发登录 credential = InteractiveBrowserCredential( cache_persistence_options=None )
操作完成后重启本地应用,首次调用Azure服务时会自动弹出交互式登录窗口,选择你需要的me@admin.com账号登录即可解决授权报错问题。
内容的提问来源于stack exchange,提问作者Chuck
相关产品推荐
相关产品推荐

