Платформа Microsoft Identity с веб-приложением (In Python) *** - PullRequest
0 голосов
/ 09 мая 2020

Я работал с «Интеграцией платформы Microsoft Identity Platform с веб-приложением Python» (https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp). Я пытаюсь получить доступ к графическому API от Microsoft с помощью веб-приложения python.

Вкратце, моя проблема: после успешного принятия учетных данных учетной записи Microsoft, он показывает мне эту проблему на веб-странице: Мы не можем выполнить ваш запрос: invalid_request: предоставленное значение для входной параметр «redirect_uri» недействителен. Ожидаемое значение - это URI, который соответствует URI перенаправления, зарегистрированному для этого клиентского приложения.

Я пробовал найти множество решений, но ни одно из них не помогло. Я тоже пробовал это решение - https://github.com/microsoftgraph/msgraph-training-uwp/issues/15

Но это не решает проблему для python. Проблема осталась прежней.

Я сделал все по инструкции -

  1. Скачать проект python из microsoft graph api docs (https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-python-webapp)

  2. Зарегистрировано в приложении Azure Регистрация.

  3. Аутентификация - URI перенаправления - http://localhost: 5000 / getAToken (URL-адрес, предложенный документами) -> Я добавил тот же URL-адрес в azure, я также попытался поставить оба «https» и «http».

  4. Получен секретный ключ. (под сертификатами и секретом)

  5. Добавлены необходимые разрешения.

  6. Я изменил файл app.config, взяв все данные из моего azure регистрация приложения (я добавляю код ниже) 7. Я ничего не менял в своем файле app.py.

  7. Запущен сервер Flask и наконец открыт требуемый адрес localhost.

Пожалуйста, помогите мне, где я ошибся и какие исправления мне нужно делать. Я буду очень признателен. Заранее благодарим.

App.config

import os

CLIENT_SECRET = "my key" 

AUTHORITY = "https://login.microsoftonline.com/common"  # For multi-tenant app

CLIENT_ID = "my id here"

REDIRECT_PATH = "/getAToken"    

ENDPOINT = 'https://graph.microsoft.com/v1.0/users'  

SCOPE = ["User.ReadBasic.All"]

SESSION_TYPE = "filesystem"  # So token cache will be stored in server-side session

Ответы [ 2 ]

0 голосов
/ 12 мая 2020

Моя проблема решена, всегда проверяйте следующее:

  1. При создании регистрации приложения вам необходимо выбрать поддерживаемые типы учетных записей: Учетные записи в любом каталоге организации (Любые Azure AD Ddirectory-multitenant) и личные учетные записи Microsoft.

  2. Введите URI перенаправления в веб-конфигурацию, что я делал в SPA, что было неправильно.

  3. Вместо того, чтобы набирать http://127.0.0.1: 5000 / , введите в браузере 'http://localhost: 5000 / '. Я знаю, что это то же самое, но для меня это имело значение.

  4. Вы не можете использовать бесплатную учетную запись Microsoft для Azure активного каталога, вы должны использовать платную премиум-версию. Вы можете предоставить данные карты и использовать ее в течение месяца бесплатно.

надеюсь, что это поможет. Спасибо

0 голосов
/ 10 мая 2020

Я просто попробовал выложенный вами образец, и он отлично сработал.

при условии, что вы уверены, что flask работает на порту 5000,

Попробуйте изменить URL-адрес вашего авторизации на https://login.microsoftonline.com/yourtenantid

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

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