Azure AD Python-意外的轮询状态invalid_client错误

时间:2020-03-04 21:27:17

标签: azure azure-active-directory

    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

输入设备代码并成功登录后,如何消除该错误。

步骤:

  1. 在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”:真正的权限。

1 个答案:

答案 0 :(得分:1)

您的代码可以正常工作。

如果我们将allowPublicClient设置为:false,则会遇到此错误。

enter image description here

将allowPublicClient更新为true后,它将起作用。 注意:配置会稍有延迟才能生效。

enter image description here