Power BI Rest API — AADSTS50034: учетная запись пользователя {EmailHidden} не существует в каталоге XXXXX

#python #azure #azure-active-directory #powerbi

#python #azure #azure-active-directory #powerbi

Вопрос:

Я пытаюсь получить токен доступа вместо получения этого сообщения об ошибке

 AdalError: Get Token request returned http error: 400 and server response: {"error":"invalid_grant","error_description":"AADSTS50034: The user account {EmailHidden} does not exist in the XXXXX directory. To sign into this application, the account must be added to the directory.rnTrace ID: f18021a8-b10a-40bf-9f0a-7975b38e2300rnCorrelation ID: 4f61c8f5-ed06-41f1-8d7b-756dd7c09e10rnTimestamp: 2020-12-16 03:27:49Z","error_codes":[50034],"timestamp":"2020-12-16 03:27:49Z","trace_id":"f18021a8-b10a-40bf-9f0a-7975b38e2300","correlation_id":"4f61c8f5-ed06-41f1-8d7b-756dd7c09e10","error_uri":"https://login.windows.net/error?code=50034"}
 

Мой код на python

 import adal
import json
import pyodbc
import requests

AUTHORITY_URL = 'https://login.windows.net/XXXXX'
RESOURCE = 'https://analysis.windows.net/powerbi/api'
CLIENT_ID = 'XXXXX'
userid='nurdin@xxxxx.com.my'
userpassword='xxxxx'
completedtime = []
verify = []

def make_headers(access_token):
    return {
    'Authorization': 'Bearer {}'.format(access_token)
    }

context = adal.AuthenticationContext(AUTHORITY_URL)
token = context.acquire_token_with_username_password(RESOURCE,userid,userpassword,CLIENT_ID)
access_token = token['accessToken']
print(access_token)
 

Комментарии:

1. Ваша учетная запись является личной учетной записью или рабочей учетной записью?

2. Рабочая учетная запись @JoyWang

3. Находится ли она под арендатором XXXXX https://login.windows.net/XXXXX ? Или она находится в другом клиенте?

Ответ №1:

Ваш код отлично работает на моей стороне, убедитесь, что ваша рабочая учетная запись находится под арендатором в AUTHORITY_URL , если нет, вы можете перейти по этой ссылке, чтобы создать нового пользователя без поддержки MFA.

 import adal

AUTHORITY_URL = 'https://login.windows.net/<tenant-id>'
RESOURCE = 'https://analysis.windows.net/powerbi/api'
CLIENT_ID = '<client-id>'
userid='username@tenantname.onmicrosoft.com'
userpassword='xxxxxx'

context = adal.AuthenticationContext(AUTHORITY_URL)
token = context.acquire_token_with_username_password(RESOURCE,userid,userpassword,CLIENT_ID)
access_token = token['accessToken']
print(access_token)
 

введите описание изображения здесь