Аутентификация Microsoft Graph API - область действия недействительна - PullRequest
0 голосов
/ 10 марта 2020

Я успешно выполнил базовое руководство по c по подключению приложения RailsOnRails к Microsoft Graph API, приведенное здесь: https://docs.microsoft.com/en-us/graph/tutorials/ruby?tutorial-step=3

Как я уже сказал, я вставил область действия из учебника, просто чтобы увидеть, будет ли она работать openid email profile User.Read, и она работает!

Теперь я пытаюсь расширить область видимости и читать электронные письма, но когда я пытаюсь добавить Mail.ReadBasic I получите ошибку:

The provided value for the input parameter 'scope' is not valid. The scope "openid email profile User.Read Mail.ReadBasic" doesn't exist.

Я пробовал с Mail.Read, это работает, но это не то, что мне нужно. Мне нужно ровно Mail.ReadBasic.

Это пример запроса, который я делаю к Microsoft:

https://login.live.com/oauth20_authorize.srf?client_id=XXX&scope=openid profile email offline_access User.Read Mail.ReadBasic&redirect_uri=https://my-redirect-uri&response_type=code&state=XXX&uaid=XXX&msproxy=1&issuer=mso&tenant=common&ui_locales=en-US&username=XXX

Я также попытался поставить префикс области с https://graph.microsoft.com/, как предложено в ряде других вопросов, но это тоже не сработало.

В чем может быть проблема? Есть ли способ указать эту ограниченную область для чтения электронных писем?

1 Ответ

1 голос
/ 11 марта 2020

Ваш запрос OAuth отправляется на неверный URI. Это должно быть https://login.microsoftonline.com/common/

В соответствии с учебником вы должны использовать следующие настройки:

# Configure the Microsoft identity platform endpoints
option  :client_options,
         site:          'https://login.microsoftonline.com',
         authorize_url: '/common/oauth2/v2.0/authorize',
         token_url:     '/common/oauth2/v2.0/token'

Ваши области действия должны быть закодированы с помощью URL.

...