online office microsoft php azure oauth office365 azure-active-directory

php - office - microsoft graph online



La integraciĆ³n de OAuth con O365 falla con el error AADSTS65005 (1)

Tenemos un sitio web (basado en un marco php) donde proporcionamos herramientas educativas en línea para profesores / estudiantes. Hemos realizado una integración de OAuth con google.com donde los usuarios pueden ''registrarse'' e ''iniciar sesión'' en nuestro sitio usando sus cuentas de Google (podría ser una cuenta personal de Gmail o un miembro de un dominio de aplicaciones de Google).

Intentamos hacer una integración similar con O365, donde nuestro sitio web puede solicitar O365 para el correo electrónico del usuario y nombre / apellido para que podamos crear una cuenta para ellos en nuestro sitio, y una vez que se crea la cuenta, inicie sesión. Hemos creado una lista de aplicaciones en Azure -> Active Directory, y ha generado el ID y el secreto del cliente, y los ha conectado al código PHP. El flujo de trabajo de OAuth que se describe aquí funciona hasta el momento en que intento solicitar el token de acceso mediante una solicitud POST a https://login.windows.net/common/oauth2/token . Redirige a mi redirect_uri pero en lugar de darme el código de autenticación, me da estos parámetros en la 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

Todo lo que necesito es que O365 me dé el correo electrónico del usuario y los nombres f / l. Seguramente hay una solución rápida para esto que me estoy perdiendo.


De forma predeterminada, una aplicación registrada está configurada para solicitar "Leer el perfil del usuario", que una vez que el usuario consiente, permite que la aplicación obtenga un token de usuario (id. De identificación si usa OpenID Connect) y lee el perfil del usuario que inició sesión (incluido su dirección de correo o direcciones) al llamar a Azure AD Graph API . Las aplicaciones protegidas por Azure AD deben configurar los ámbitos de permisos que requieren de antemano (como parte de la experiencia de registro de la aplicación, en la sección "Permisos para otras aplicaciones"). Aquí parece que ha especificado Outlook.com como el recurso para el que desea obtener un código y un token de acceso, pero su aplicación no está configurada para permitir el acceso a O365 Outlook.com/Exchange Online.

Intente configurar el recurso en su solicitud a Azure AD - https://graph.windows.net/ . Eso debería funcionar para ti. A continuación, puede intercambiar el código de un token de acceso para llamar a Azure AD Graph API.

Espero que esto ayude