Не удалось получить разрешения для интеграции Microsoft Graph API Drive - PullRequest
0 голосов
/ 26 июня 2018

мы используем Microsoft Graph API для загрузки файлов для коммерческих и личных учетных записей.

После входа в учетную запись мы запрашиваем некоторые разрешения, но не добавляем один раз, необходимый для OneDrive. После того, как пользователь явно запросил выгрузку файла, мы отправляем еще один запрос на AccessToken, включая все области действия, до сих пор + files.readwrite.all. Это работало отлично до (может быть) месяц назад. Теперь это работает для бизнес-аккаунтов, но не для личных аккаунтов.

Шаги, которые мы делаем:

  1. Перенаправить пользователя на login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=...&redirect_uri=https%3A%2F%2Fmywebsite.com%2Fsignin-microsoft&response_type=code%20id_token&scope=openid%20offline_access%20profile%20email%20mail.readwrite%20mail.send%20contacts.readwrite%20calendars.readwrite%20people.read%20user.read%20files.readwrite.all&response_mode=form_post&nonce=636656...&state=CfDJ8MLMcPchE...

  2. Пользователь выбирает свою учетную запись (в которой он уже зарегистрирован)

  3. Они перенаправляются на https://login.live.com/oauth20_authorize.srf со следующим экраном:

    enter image description here

Разрешения не добавлены для нашего приложения, и мы не получаем никакой ошибки. Вот также ответ со страницы ошибки:

Error Info
"/pp1600/oauth20_authorize.srf?client_id=9d3c...&scope=openid+offline_access+profile+email+mail.readwrite+mail.send+contacts.readwrite+calendars.readwrite+people.read+user.read+files.readwrite.all&redirect_uri=https%3a%2f%2fmywebsite.com%2fsignin-microsoft&response_type=code+id_token&state=CfD...&response_mode=form_post&nonce=636...&x-client-Ver=5.2.0&display=host&uaid=521...&msproxy=1&issuer=mso&tenant=common&ui_locales=en-US&username=pesho..."
loginserverprotocolhandler(846)
HR=0x80041018
Method string:GET
URL:"/pp1600/oauth20_authorize.srf"
Query string:"code=5"
Server protocol:HTTP/1.1

Обновление: после нескольких попыток мне действительно удалось предоставить доступ к одной из моих учетных записей для интеграции с OneDrive. Не совсем уверен, что изменилось. Я просто входил и выходил из разных учетных записей Outlook в Outlook и в нашем приложении. После этого я попробовал тот же процесс с другой учетной записью, и снова не удалось. Каждый раз, когда я пытался это сделать, меня регистрировали с одной и той же учетной записью в обоих местах.

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

...