【Azure 环境】使用az login登录遇见OSError: [WinError -2146893813] : '' 错误

发布时间 2023-06-12 17:37:43作者: 路边两盏灯

问题描述

使用 az login指令登录,遇见 OS Error: [WinError -2146893813] : '', 在指令中添加 --debug后,输出的错误消息为:

urllib3.connectionpool: Starting new HTTPS connection (1): *****.******.com:443
urllib3.connectionpool: https://****.****.com:443 "POST /adfs/services/trust/13/usernamemixed HTTP/1.1" 200 7155
urllib3.connectionpool: Starting new HTTPS connection (1): login.chinacloudapi.cn:443
urllib3.connectionpool: https://login.chinacloudapi.cn:443 "POST /organizations/oauth2/v2.0/token HTTP/1.1" 200 4488
msal_extensions.persistence: DPAPI error likely caused by file content not previously encrypted. App developer should migrate by calling save(plaintext) first.
Traceback (most recent call last):
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal_extensions/persistence.py", line 180, in load
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msal_extensions/windows.py", line 114, in unprotect
OSError: [WinError -2146893813] : ''

从以上错误信息来看,只能发现与 MSAL扩展persistence.py有关,但是在执行的机器中,并不存在错误消息中的目录 (D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\ )

在升级 azure cli的版本后( az upgrade或下载最新的msi安装包:https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-windows?tabs=azure-cli) ,OSError 的错误代码一样,但是有了更具体的错误消息和提示信息:

cli.azure.cli.core.azclierror: Decryption failed:[WinError -2146893813] Key not vaid for use in specified state.. 
App developer may consider this guidance https://github.com/AzureAD/microsoft-authentication-extensions-for-python/wiki/PersistenceDecryptionError Please report to us via Github : https://github.com/Azure/azure-cli/issues/20231

错误截图

 

问题解答

根据最新错误中的提示,访问Github (https://github.com/Azure/azure-cli/issues/20231)找到了问题的答案和解决办法。

问题原因

可能是之前该机器中安装过旧 az cli ,它是基于ADAL做登录验证的。而新版的az cli使用的是MSAL,可能是一些历史文件存留在  C:\Users\<username>\.azure 文件夹下。 引起了格式错乱问题。

解决办法

删除本机上缓存的 C:\Users\<username>\.azure 文件夹, 再次使用 az login 即可登录成功,不报错。问题解决!

 

参考资料

`az login` fails: OSError: [WinError -2146893813] · Issue #20231  : https://github.com/Azure/azure-cli/issues/20231