Продолжение этого вопроса я задавал. Я пытаюсь реализовать функцию «Вход в систему с вашей учетной записью 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 правильным способом? Что мне нужно сделать по-другому, чтобы добиться этого?
Если вы добавите ‘scope = openid’ в свой запрос токена OAuth, ответ от AAD должен содержать ключ ‘id_token’. Значение этого ключа является неподписанный Токен JWT, в котором вы найдете следующие атрибуты о пользователе, если они доступны в каталоге:
НОТА: Идентификатор id_token, возвращаемый вместе с базовым ответом токена OAuth, представляет собой неподписанный маркер. Его не следует путать с подписанным id_token, возвращаемым в ответе протокола OpenID Connect. Должно точно нет использоваться для принятия решений об аутентификации. Это чисто информационный.
Других решений пока нет …