【Azure 环境】使用az login登录遇见OSError: [WinError -2146893813] : '' 错误
问题描述
使用 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
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!