Office 365: Flujo de autenticación y autorización de Aplicaciones con Azure AD OAuth!

Estos días me ha tocado meterme un poco en “las tripas” del Flujo de Autenticación y Autorización de Aplicaciones de Office 365 con Azure AD OAuth (como dije el otro día en CEUS By Iberian SharePoint Conference, Azure AD es el anillo único del poder en Office 365…todo pasa por él ;-)) que está muy bien descrito en los siguientes dos recursos creados por Microsoft (muy bien documentados desde mi punto de vista):

En concreto, el diagrama del Authorization Code Grant Flow detalla el proceso que tiene lugar desde que se inicia una petición a recursos de Office 365 expuestos por la API:

Authorization Code Flow diagram

 

  1. La Aplicación cliente inicia el flujo de petición realizando una redirección al EndPoint de autorización de Azure AD. El usuario se autentica y da su consentimiento si este es requerido.
  2. El EndPoint de autorización de Azure devuelve un código de autorización a la aplicación a través del Agente de Usuario.
  3. La aplicación cliente solicita un token de Acceso a Azure AD haciendo uso del código de autorización obtenido.
  4. Azure AD devuelve un Access Token y un Refresh Token. Este último se puede usar para pedir Access Token adicionales.
  5. La aplicación cliente utiliza el Token de Acceso para autenticarse con las APIs de Office 365.
  6. Después de autenticarse, las APIs de Office 365 devuelven los datos solicitados a la aplicación.