Flujo de inicio de sesión de aplicaciones con la Plataforma de identidad de Microsoft

En este tema se describe el flujo de inicio de sesión básico de aplicaciones web, de escritorio y móviles con la Plataforma de identidad de Microsoft. Consulte Flujos de autenticación y escenarios de aplicaciones para más información sobre los escenarios de inicio de sesión que admite la Plataforma de identidad de Microsoft.

Flujo de inicio de sesión de aplicaciones web

Cuando un usuario navega en el explorador a una aplicación web, ocurre lo siguiente:

  • La aplicación web determina si el usuario está autenticado.
  • Si el usuario no está autenticado, la aplicación web delega en Microsoft Entra ID el inicio de sesión del usuario. Ese inicio de sesión tendrá que cumplir la directiva de la organización, lo que puede significar que se le pida al usuario que escriba sus credenciales, que utilice la autenticación multifactor (a veces denominada autenticación en dos fases o 2FA) o que ni siquiera tenga que especificar una contraseña (por ejemplo, si utiliza Windows Hello).
  • Se pide al usuario que dé el consentimiento de acceso que necesita la aplicación cliente. Este es el motivo por el que las aplicaciones cliente deben registrarse con Microsoft Entra ID, de modo que la plataforma de identidad de Microsoft pueda proporcionar tokens que representen el acceso autorizado por el usuario.

Cuando el usuario se ha autenticado correctamente:

  • La Plataforma de identidad de Microsoft envía un token a la aplicación web.
  • Se guarda una cookie asociada al dominio de Microsoft Entra, que contiene la identidad del usuario en el archivo JAR de la cookie del explorador. La próxima vez que una aplicación use el explorador para ir al punto de conexión de autorización de la plataforma de identidad de Microsoft, el explorador presentará la cookie para que el usuario no tenga que volver a iniciar sesión. También es la mecanismo con el que se realiza el SSO. La cookie se genera mediante Microsoft Entra ID y solo se puede entender mediante Microsoft Entra ID.
  • A continuación, la aplicación web valida el token. Si la validación se realiza correctamente, la aplicación web muestra la página protegida y guarda una cookie de sesión en el archivo jar de la cookie del explorador. Cuando el usuario accede a otra página, la aplicación web sabe que el usuario está autenticado por la cookie de sesión.

En el siguiente diagrama de secuencias, se resume esta interacción:

web app authentication process

Cómo determina una aplicación web si el usuario está autenticado

Los desarrolladores de aplicaciones web pueden especificar si todas o solo algunas páginas requieren autenticación. Por ejemplo, en ASP.NET/ASP.NET Core, esto se hace agregando el atributo [Authorize] a las acciones del controlador.

Este atributo hace que ASP.NET compruebe la presencia de una cookie de sesión que contiene la identidad del usuario. Si esta cookie no está, ASP.NET redirige la autenticación al proveedor de identidades especificado. Si el proveedor de identidades es Microsoft Entra ID, la aplicación web redirige la autenticación a https://login.microsoftonline.com, que muestra un cuadro de diálogo de inicio de sesión.

Procedimiento que realiza una aplicación web para delegar el inicio de sesión en la Plataforma de identidad de Microsoft y obtener un token

La autenticación del usuario se realiza mediante el explorador. El protocolo OpenID usa mensajes con el protocolo HTTP estándar.

  • La aplicación web envía una solicitud HTTP 302 (redireccionamiento) al explorador para que utilice la plataforma de identidad de Microsoft.
  • Cuando se autentica el usuario, la Plataforma de identidad de Microsoft envía el token a la aplicación web utilizando un redireccionamiento mediante el explorador.
  • La aplicación web proporciona el redireccionamiento en forma de un URI de redirección. Este URI de redirección se registra con el objeto de aplicación de Microsoft Entra. Puede haber varios URI de redireccionamiento, ya que la aplicación puede estar implementada en varias direcciones URL. Por lo tanto, la aplicación web también tendrá que especificar el URI de redirección que va a utilizar.
  • Microsoft Entra ID verifica que el URI de redirección enviado por la aplicación web sea uno de los URI de redirección registrados para la aplicación.

Flujo de inicio de sesión para aplicaciones móviles y de escritorio

El flujo descrito anteriormente se aplica, con ligeras diferencias, tanto a las aplicaciones móviles como a las aplicaciones de escritorio.

Las aplicaciones móviles y de escritorio pueden utilizar un control web integrado o un explorador del sistema para la autenticación. En el diagrama siguiente se muestra cómo una aplicación móvil o de escritorio usa la Biblioteca de autenticación de Microsoft (MSAL) para adquirir tokens de acceso y llamar a las API web.

Desktop app how it appears to be

MSAL usa un explorador para obtener los tokens. Al igual que con las aplicaciones web, la autenticación se delega en la plataforma de identidad de Microsoft.

Como Microsoft Entra ID guarda en el explorador la misma cookie de identidad que utiliza con las aplicaciones web, si la aplicación nativa o la aplicación móvil usan el explorador del sistema, obtendrá de inmediato el SSO con la aplicación web correspondiente.

De forma predeterminada, MSAL usa el explorador del sistema. La excepción son las aplicaciones de escritorio de .NET Framework, en las que se usa un control integrado para proporcionar al usuario una experiencia más fluida.

Pasos siguientes

Para ver otros temas en los que se traten aspectos básicos de la autenticación y la autorización:

  • Consulte Autenticación frente a autorización para obtener información sobre los aspectos básicos de la autenticación y la autorización en la Plataforma de identidad de Microsoft.
  • Consulte Tokens de seguridad para obtener información sobre el acceso a tokens, la actualización de tokens y el uso de tokens de identificación en la autenticación y la autorización.
  • Vea Modelo de aplicación para obtener información sobre el proceso de registro de la aplicación para que pueda integrarse con la Plataforma de identidad de Microsoft.
  • Consulte Protección de aplicaciones y API mediante la validación de notificaciones para obtener información sobre cómo usar de forma segura notificaciones de token para la lógica de autorización en las aplicaciones.

Para más información sobre el flujo de inicio de sesión de aplicaciones:

  • Consulte Flujos de autenticación y escenarios de aplicaciones para más información sobre otros escenarios de autenticación de usuarios compatibles con la Plataforma de identidad de Microsoft.
  • Consulte las Bibliotecas MSAL para obtener más información sobre las bibliotecas de Microsoft que le ayudarán a desarrollar aplicaciones que funcionan con cuentas Microsoft, cuentas de Microsoft Entra y usuarios de Azure AD B2C en un modelo de programación simplificado y único.