[メモ] Azure PaaS で Azure.Identity.AuthenticationFailedException が発生したときの対処法

Azure の PaaS である KeyVault を使っている C# のプログラムを起動したら不正終了したので、その原因の特定と解決方法のメモ。


# エラーメッセージ

こんなログがでました。

```log:エラーメッセージ
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」とあるので、もしやと思い、

```cmd:コンソールで実行
C:\> az login # ブラウザで MS 認証を行います
```

をやってみて、その後、もう一度、プログラムを実行したところ、無事に起動しました！

# 原因

思い返してみたら、２，３日前に Windows Update で 22H1 から 22H2 にアップデートしていました。
この際に az login がクリアされたようです。

解決できたら拍子抜けな話で、「簡単すぎ。なんで分からなかったの！」と自分にツッコミを入れてしまいましたが、気づかない時は気づかない訳で、次がないように備忘録としてアップします。