【Azure 环境】使用az login登录遇见OSError: [WinError 2146893813] : '' 错误 - LuBu0505/My-Code GitHub Wiki

问题描述

使用 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

错误截图 image.png

问题解答

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

问题原因

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

解决办法

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

参考资料

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

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

⚠️ **GitHub.com Fallback** ⚠️