Azure の PaaS である KeyVault を使っている C# のプログラムを起動したら不正終了したので、その原因の特定と解決方法のメモ。
エラーメッセージ
こんなログがでました。
Azure.Identity.AuthenticationFailedException: 'Azure CLI authentication failed due to an unknown error. ERROR: Get Token request returned http error: 400 and server response: {"error":"invalid_grant","error_description":"AADSTS9002313: Invalid request. Request is malformed or invalid.\r\nTrace ID: c8b9a0dc-18cf-4575-b9b7-7e0e519e5400\r\nCorrelation ID: e6a420b5-d57c-449c-9a73-2b2b501efab6\r\nTimestamp: 2023-02-20 01:45:46Z","error_codes":[9002313],"timestamp":"2023-02-20 01:45:46Z","trace_id":"c8b9a0dc-18cf-4575-b9b7-7e0e519e5400","correlation_id":"e6a420b5-d57c-449c-9a73-2b2b501efab6","error_uri":"https://login.microsoftonline.com/error?code=9002313"}
Traceback (most recent call last):
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\knack\knack\cli.py", line 206, in invoke
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\azure-cli-core\azure\cli\core\commands\__init__.py", line 346, in execute
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\six\six.py", line 693, in reraise
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\azure-cli-core\azure\cli\core\commands\__init__.py", line 320, in execute
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\azure-cli-core\azure\cli\core\commands\__init__.py", line 169, in __call__
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\azure-cli-core\azure\cli\core\__init__.py", line 440, in default_command_handler
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\azure-cli-profile\azure\cli\command_modules\profile\custom.py", line 61, in get_access_token
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\azure-cli-core\azure\cli\core\_profile.py", line 569, in get_raw_token
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\azure-cli-core\azure\cli\core\_profile.py", line 880, in retrieve_token_for_user
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\authentication_context.py", line 145, in acquire_token
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\authentication_context.py", line 128, in _acquire_token
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\authentication_context.py", line 143, in token_func
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\token_request.py", line 352, in get_token_from_cache_with_refresh
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\token_request.py", line 128, in _find_token_from_cache
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\cache_driver.py", line 199, in find
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\cache_driver.py", line 184, in _refresh_entry_if_necessary
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\cache_driver.py", line 160, in _acquire_new_token_from_mrrt
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\token_request.py", line 138, in _get_token_with_token_response
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\token_request.py", line 344, in _get_token_with_refresh_token
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\token_request.py", line 113, in _oauth_get_token
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-e5ce5s7r\adal\adal\oauth2_client.py", line 289, in get_token
adal.adal_error.AdalError: Get Token request returned http error: 400 and server response: {"error":"invalid_grant","error_description":"AADSTS9002313: Invalid request. Request is malformed or invalid.\r\nTrace ID: c8b9a0dc-18cf-4575-b9b7-7e0e519e5400\r\nCorrelation ID: e6a420b5-d57c-449c-9a73-2b2b501efab6\r\nTimestamp: 2023-02-20 01:45:46Z","error_codes":[9002313],"timestamp":"2023-02-20 01:45:46Z","trace_id":"c8b9a0dc-18cf-4575-b9b7-7e0e519e5400","correlation_id":"e6a420b5-d57c-449c-9a73-2b2b501efab6","error_uri":"https://login.microsoftonline.com/error?code=9002313"}'
なぜに、python のエラー?という感じです。
試したこと
どこに手を付けていいか分かりませんでしたので、まずはそのプログラムが使用している Azure.Identity や Azure.Security.KeyVault.Secrets などのパッケージのアップデートをしてみました。
結果、改善しませんでした。
python 関係?ってことで、pip で python モジュールの adal などを最新化してみたのですが、変わらずでした。
解決ポイント
エラーに「Azure CLI authentication failed」とあるので、もしやと思い、
C:\> az login # ブラウザで MS 認証を行います
をやってみて、その後、もう一度、プログラムを実行したところ、無事に起動しました!
原因
思い返してみたら、2,3日前に Windows Update で 22H1 から 22H2 にアップデートしていました。
この際に az login がクリアされたようです。
解決できたら拍子抜けな話で、「簡単すぎ。なんで分からなかったの!」と自分にツッコミを入れてしまいましたが、気づかない時は気づかない訳で、次がないように備忘録としてアップします。