Проблемы с авторизацией в MS Graph - PullRequest
0 голосов
/ 08 февраля 2020

Итак, я уже давно использую PowerShell и немного знаком с получением токена из приложения Azure с использованием MS Graph, настроенного с разрешениями API приложения. Сейчас я пытаюсь выполнить то же самое в python консольном приложении, и я сбился с толку, так как постоянно получаю ошибку 400. вот фрагмент моего кода ...

import requests
import json
app_id='<appid>'
client_secret='<client secret>'
token_url='https://login.microsoftonline.com/<tenant id>/oauth2    /v2.0/token'
token_data = {
 'grant_type': 'client_credentials',
 'client_id': app_id,
 'client_secret': client_secret,
 'resource': 'https://graph.microsoft.com',
 'scope':'https://graph.microsoft.com/.default'
}
headers = {'content-type':'application/json'}
token_r = requests.post(token_url, json=token_data)
token = token_r.json().get('access_token')

есть идеи?

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Разобрался. Мне нужно было добавить библиотеку запросов oAuth2. Смотрите пример кода ниже:

    import requests
    import json
    from requests_oauthlib import OAuth2Session
    from oauthlib.oauth2 import BackendApplicationClient
    app_id='<app id>'
    client_secret='<client Secret>'
    token_url='https://login.microsoftonline.com/tennantname.onmicrosoft.com/oauth2/v2.0/token'
    scope='https://graph.microsoft.com/.default'
    client = BackendApplicationClient(client_id=app_id, scope=scope, grant_type="client_credentials")
    session = OAuth2Session(client=client, scope=scope)
    # fill access token
    token = session.fetch_token(token_url=token_url,client_id=app_id,scope=scope,client_secret=client_secret)
0 голосов
/ 01 марта 2020

Рад, что вы использовали библиотеку запросов oAuth2, и это помогло вам двигаться вперед. Кроме того, вы можете проверить следующие Python образец , а также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...