store_token = context.acquire_token_with_device_code(resource_uri, code, client_id)
File "/Users/jyao/Desktop/azureblobtest/lib/python3.7/site-packages/adal/authentication_context.py", line 273, in acquire_token_with_device_code
return self._acquire_token(token_func)
File "/Users/jyao/Desktop/azureblobtest/lib/python3.7/site-packages/adal/authentication_context.py", line 109, in _acquire_token
return token_func(self)
File "/Users/jyao/Desktop/azureblobtest/lib/python3.7/site-packages/adal/authentication_context.py", line 266, in token_func
token = token_request.get_token_with_device_code(user_code_info)
File "/Users/jyao/Desktop/azureblobtest/lib/python3.7/site-packages/adal/token_request.py", line 398, in get_token_with_device_code
token = client.get_token_with_polling(oauth_parameters, interval, expires_in)
File "/Users/jyao/Desktop/azureblobtest/lib/python3.7/site-packages/adal/oauth2_client.py", line 345, in get_token_with_polling
wire_response)
adal.adal_error.AdalError: Unexpected polling state invalid_client
Как можно избавиться от этой ошибки после ввода кода устройства и успешного входа.
шаги:
- Из python интерактивная подсказка, запустите этот код [1] (все модули уже загружены). Где:
authority_url = 'https://login.microsoftonline.com/my_tenant_id'
resource_uri = "https://storage.azure.com/"
context = adal.AuthenticationContext(authority_uri)
code = context.acquire_user_code(resource_uri, client_id)
print(code['message'])
store_token = context.acquire_token_with_device_code(resource_uri, code, client_id)
credentials = AADTokenCredentials(store_token, client_id)
2.Открыть URL-адрес https://microsoft.com/devicelogin в браузере.
3.Ввести код E8B2DVT67
4.Подтвердите имя приложения, оно правильное.
5.Аутентификация с использованием учетных данных пользователя.
6.Получите в браузере сообщение «Вы вошли в приложение TEST-APP». на вашем устройстве. Теперь вы можете закрыть это окно. "
7.Получите ошибку, показанную в моем предыдущем сообщении в интерактивном приглашении python.
Я использую собственное приложение и обновляю манифест и установите «allowPublicClient»: истинное разрешение.