2014-10-01 7 views
0

Continuation of this question I had asked. Я пытаюсь внедрить функцию «Войти с вашей учетной записью O365» в мое веб-приложение PHP.Ошибка AADSTS50020 при запросе доступа к ресурсу https://graph.windows.net/

Когда мое приложение запрашивает доступ к ресурсу API Графа (https://graph.windows.net/), кажется, что только администраторы могут разрешить доступ. Если без прав администратора пытается завершить рабочий процесс OAuth, они получают эту ошибку из login.windows.net:

AADSTS50020: This operation can only be performed by an administrator. Sign out and sign in as an administrator or contact one of your organization's administrators. 

Я на самом деле не хочу получить доступ к информации о детальной всех пользователях в каталоге (I может понять что-то вроде этого, требующее административных привилегий), а просто имя/адрес электронной почты текущего пользователя (admin или non-admin).

Так что мне нужен в принципе любой пользователь O365, чтобы иметь возможность читать свою основную информацию о профиле моим приложением. Правильно ли работает API-интерфейс Graph? Что мне нужно сделать по-другому, чтобы достичь этого?

ответ

0

Если вы добавили 'scope = openid' в ваш токен OAuth, ответ от AAD должен содержать ключ 'id_token'. Значение этого ключа является беззнакового JWT маркером, внутри которого вы найдете следующие атрибуты о пользователе, если они доступны в каталоге:

  • подъязычный = каталог ObjectId.
  • tid = идентификатор идентификатора арендатора, в котором пользователь является членом.
  • ISS = Эмитент
  • UPN
  • электронной
  • предмет
  • given_name
  • family_name

Примечание: id_token вернулся вместе с основным лексем ответ OAuth является без знака токен. Его не следует путать с подписанным id_token, возвращенным в ответ протокола OpenID Connect. Для принятия решений об аутентификации должно использоваться , а не. Это чисто информационный.

Смежные вопросы