Недавно я пытался перенести процесс извлечения электронной почты из Powershell в Python, используя активный каталог Azure для библиотеки Python. Я пытался использовать для этого функцию accept_token_with_client_credentials, но у меня возникла загвоздка.
Я могу использовать приведенный ниже код для возврата кода доступа, но я не могу использовать полученный токен для возврата каких-либо элементов почтового ящика.
Мне удалось создать собственное приложение и успешно получить доступ к сообщениям с помощью accept_token_with_username_password, но не могу заставить этот набор кода работать на моем удаленном рабочем столе, поскольку он печатает сообщение об ошибке чтения :
«Из-за изменения конфигурации, внесенного вашим администратором, или из-за того, что вы переехали в новое место, вы должны использовать многофакторную аутентификацию»
У меня был готов поток учетных данных клиента, но я все еще не могу заставить работать приведенный ниже пример. Может ли кто-нибудь увидеть, где я ошибаюсь?
def test8():
import adal
import requests
authority_url = "https://login.microsoftonline.com/"+lf_tenantid
context = adal.AuthenticationContext(
authority_url,
validate_authority=True,
api_version=None
)
resource = 'https://outlook.office.com/'
token = context.acquire_token_with_client_credentials(
resource=resource,
client_id = etl_clientid2,
client_secret = etl_clientsecret2
)
access_token = token['accessToken']
print(token)
#######################################NONE OF THIS PART WORKS
#######################################
#######################################
folder_id = etl_folderid
url = "https://outlook.office.com/api/v2.0/me/MailFolders/"+folder_id+"/messages"
headers = {
'Authorization': 'Bearer '+access_token
}
r = requests.get(url, headers=headers)
print(r)