Ошибка AADSTS50020 при запросе доступа к ресурсу https://graph.windows.net/

Продолжение этого вопроса я задавал. Я пытаюсь реализовать функцию «Вход в систему с вашей учетной записью O365» в моем веб-приложении PHP.

Когда мое приложение запрашивает доступ к ресурсу Graph 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.

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

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

0

Решение

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

  • oid = Идентификатор объекта каталога.
  • tid = GUID идентификатора клиента, в котором пользователь является участником.
  • iss = Issuer
  • UPN
  • Эл. адрес
  • предмет
  • собственное имя
  • фамилия

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]