Интеграция OAuth с O365 с ошибкой AADSTS65005

У нас есть веб-сайт (построенный на основе php), где мы предоставляем онлайн-образовательные инструменты для учителей / студентов. Мы внедрили интеграцию OAuth с google.com, где пользователи могут «зарегистрироваться» и «войти» на наш сайт, используя свои учетные записи google (может быть личная учетная запись gmail или член домена Google Apps).

Мы пытаемся сделать аналогичную интеграцию с O365, где наш веб-сайт может запросить O365 для электронной почты пользователя и фамилии / имени, чтобы мы могли создать учетную запись для них на нашем сайте, и как только учетная запись будет создана, запишите их. Мы создали список приложений в Azure -> Active Directory, и сгенерировали идентификатор клиента и секрет, и подключили их к PHP-коду. Описанный здесь рабочий процесс OAuth работает до тех пор, пока я попробую и не прошу токен доступа с помощью запроса POST на https://login.windows.net/common/oauth2/token . Он перенаправляет обратно на мой redirect_uri но вместо того, чтобы давать мне код auth, он дает мне эти параметры в URL-адресе:

 [error] => access_denied [error_description] => AADSTS65005: The client application has requested access to resource 'https://outlook.office365.com/'. This request has failed because the client has not specified this resource in its requiredResourceAccess list. Trace ID: xxxxxx Correlation ID: xxxxxx Timestamp: 2014-09-29 06:28:25Z [state] => xxxxxx 

Все, что мне нужно, это для O365 дать мне адрес электронной почты пользователя и имена f / l. Наверняка есть ли быстрое решение для этого, что мне не хватает?

По умолчанию зарегистрированное приложение настроено так, чтобы запрашивать «Прочитать профиль пользователя», который когда-то был одобрен пользователем, позволяет приложению получать токен пользователя (маркер ID при использовании OpenID Connect) и читать профиль пользователя, подписанный в нем (в том числе их адрес или адрес электронной почты) при вызове API-интерфейса Azure AD Graph . Приложения, защищенные Azure AD, должны в настоящее время настраивать области разрешений, которые им требуются, перед началом работы (как часть регистрации приложений в разделе «Разрешения для других приложений»). Здесь, похоже, вы указали Outlook.com как ресурс, для которого нужен код и токен доступа, но ваше приложение не настроено для доступа к O365 Outlook.com / Exchange Online.

Попробуйте настроить ресурс в своем запросе на Azure AD – https://graph.windows.net/ . Это должно сработать для вас. Затем вы можете поменять код для токена доступа, чтобы вызвать API-интерфейс Azure AD Graph.

Надеюсь это поможет