Compartir a través de


Autenticación de aplicaciones y usuarios con el identificador de Microsoft Entra

Una función principal de Id. de Entra de Microsoft para aplicaciones es la autenticación, el proceso en el que los usuarios declaran su identidad con un identificador personal, como un nombre de usuario o una dirección de correo electrónico. Se proporciona una prueba de la identidad. La prueba podría ser una contraseña, un artefacto de autenticación multifactor, un consentimiento biométrico o sin contraseña.

En este artículo se describe cómo las aplicaciones usan Microsoft Entra ID para autenticar usuarios y aplicaciones. Es el quinto de una serie de artículos sobre cómo los desarrolladores de software independientes (ISV) pueden compilar y optimizar sus aplicaciones para Microsoft Entra ID. En esta serie, puede obtener más información sobre estos temas:

Solicitud de tokens

Las aplicaciones solicitan un token del identificador de Microsoft Entra. Después de que las aplicaciones reciban el token, pueden usar la información de ese token para identificar al usuario. Cuando se basa en el identificador de Entra de Microsoft, los usuarios pueden autenticar muchas aplicaciones con una sola cuenta registrada de Microsoft Entra ID (SSO). El método de autenticación SSO permite a los usuarios iniciar sesión en varios sistemas de software independientes mediante un conjunto de credenciales.

Los protocolos que los desarrolladores pueden usar para solicitar un token del id. de Microsoft Entra usan un explorador para conectar al usuario al sitio web del identificador de Microsoft Entra. Este sitio web permite al usuario tener una conversación privada con el identificador de Microsoft Entra. Una aplicación no es un participante en esa conversación privada. Las aplicaciones inician el sitio web de Microsoft Entra ID donde el usuario inicia el proceso de autenticación. Una vez completado el proceso de autenticación, Microsoft Entra ID redirige al usuario de nuevo a la aplicación, con o sin un token.

Es importante que los usuarios rara vez necesiten pasar por el proceso de autenticación. Los usuarios con mayor frecuencia deben hacerlo, cuanto más sean susceptibles a las vulnerabilidades de seguridad, como los ataques de suplantación de identidad (phishing).

Reducción de las solicitudes de inicio de sesión

El inicio de sesión único puede reducir o eliminar las solicitudes de inicio de sesión. Los desarrolladores desempeñan un papel fundamental para reducir y eliminar los mensajes de inicio de sesión. Todas las aplicaciones deben compartir el explorador que accede al sitio web de Microsoft Entra ID donde los usuarios realizan el proceso de autenticación. Si la aplicación es una aplicación de página única (SPA) basada en explorador o aplicación web, no se requieren pasos para desarrolladores. Todas las aplicaciones del explorador comparten el explorador. En el caso de las aplicaciones nativas que se ejecutan en equipos de escritorio y dispositivos móviles, los desarrolladores deben reducir o eliminar de forma proactiva los mensajes de inicio de sesión.

El mejor método para reducir o eliminar las solicitudes de inicio de sesión es usar bibliotecas de autenticación de Microsoft (MSAL) o una biblioteca basada en MSAL y autenticaciones de agente. Este método minimiza los mensajes de inicio de sesión y proporciona la experiencia más fluida. Si no es posible compilar en MSAL, la aplicación debe usar el explorador del sistema para minimizar las solicitudes de inicio de sesión.

En el caso de las aplicaciones que se ejecutan en iOS o Android, los proveedores de plataformas móviles tienen alguna funcionalidad para que esta experiencia sea más fluida. Google tiene instrucciones para aplicaciones Android con pestañas personalizadas de Chrome. Apple tiene instrucciones para autenticar a un usuario a través de un servicio web en aplicaciones iOS. Evite usar WebView insertados, ya que es posible que no permitan el uso compartido entre aplicaciones o con el explorador del sistema.

Los dos protocolos para la autenticación de usuario son Lenguaje de Marcado para Confirmaciones de Seguridad (SAML) 2.0 y OpenID Connect (OIDC). Microsoft Entra ID es totalmente compatible con aplicaciones que usan ambos protocolos, por lo que los desarrolladores pueden elegir cualquiera de ellos en función de sus requisitos.

Estas referencias detallan la compatibilidad con SAML de Microsoft Entra ID.

  • La plataforma de identidad de Microsoft usa el protocolo SAML es el punto de partida de la documentación de SAML del id. de Microsoft Entra para desarrolladores.
  • El protocolo SAML de inicio de sesión único es la referencia para las solicitudes de autenticación de SAML 2.0 y respuestas que admite Microsoft Entra ID.
  • Los metadatos de federación de Microsoft Entra describen los metadatos de federación y los puntos de conexión de metadatos para metadatos específicos del inquilino e independientes del inquilino. Abarca los metadatos de SAML y los estándares de WS-Federation anteriores. Aunque es totalmente compatible, no se recomienda WS-Federation para las nuevas aplicaciones.
  • La referencia de notificaciones de token de SAML 2.0 es la documentación de tokens SAML (aserciones) de IDENTIFICADOR de Microsoft Entra.

Existen algunas limitaciones en la compatibilidad de SAML con el identificador de Entra de Microsoft. En concreto, no se pueden migrar aplicaciones que requieran estas funcionalidades de protocolo: compatibilidad con el patrón ActAs de WS-Trust y la resolución de artefactos SAML.

Aunque Microsoft Entra ID es totalmente compatible con SAML para aplicaciones basadas en el protocolo SAML, la plataforma de identidad de Microsoft no proporciona bibliotecas ni otras herramientas de desarrollo para desarrollar aplicaciones con SAML. Para el nuevo desarrollo de aplicaciones, se recomienda usar OpenID Connect (OIDC) para la autenticación.

Microsoft Entra ID es totalmente compatible con OpenID Connect. Microsoft proporciona bibliotecas MSAL, Microsoft Identity Web y Azure SDK para facilitar el desarrollo de aplicaciones OIDC. OpenID Connect (OIDC) en la plataforma de identidad de Microsoft detalla la compatibilidad con OIDC de Microsoft Entra ID. MSAL admite automáticamente OIDC. MSAL siempre solicita un token de identificador de OIDC con cada solicitud de token, incluidas las solicitudes de autorización para que una aplicación acceda a un recurso.

Duración del token

MSAL almacena en caché los tokens de identificador y los tokens de acceso en función de la hora de expiración del token de acceso. Dado que el identificador de Entra de Microsoft establece de forma diferente la duración de los tokens de identificador y los tokens de acceso, puede recibir un token de identificador expirado de una caché de MSAL expirada mientras el token de acceso todavía está dentro de su vigencia válida.

MSAL no renueva automáticamente los tokens de identificador. MSAL renueva los tokens de acceso en, o cerca, el final del ciclo de vida del token de acceso cuando una aplicación solicita el token. En ese momento, MSAL solicita un nuevo token de identificador. Para implementar OIDC, use la notificación exp (expirar) en el token de identificador para programar una solicitud de token de identificador mediante la marca ForceRefresh en MSAL.

Al compilar en MSAL o en una biblioteca basada en MSAL no es posible, puede usar el estándar OpenID Connect para autenticar al usuario actual. Es posible que algunas funciones de las aplicaciones nativas no sean posibles sin usar MSAL, como asegurarse de que la aplicación nativa se ejecuta en un dispositivo administrado. Revise Aumento de la resistencia de la autenticación y autorización en las aplicaciones cliente que desarrolla para obtener instrucciones cuando no se compila en MSAL.

Microsoft Entra ID implementa un punto de conexión UserInfo como parte de la compatibilidad con los estándares OIDC de Id. de Microsoft Entra con una ruta de acceso específica de Microsoft Graph (https://graph.microsoft.com/oidc/userinfo). No es posible agregar ni personalizar la información que devuelve el UserInfo punto de conexión. Dado que la información del token de identificador es un superconjunto de la información devuelta llamando al UserInfo punto de conexión, se recomienda usar el token de identificador en lugar de llamar al UserInfo punto de conexión.

Autenticar usuarios

Las aplicaciones interactúan con los inquilinos de Id. de Microsoft Entra para autenticar a los usuarios. Para autenticar a un usuario, una aplicación dirige un explorador a https://login.microsoftonline.com/{tenant}/v2.0, donde {tenant} es el identificador o dominio del inquilino. Sin embargo, se recomienda que los ISV usen Microsoft Entra ID para compilar aplicaciones multiinquilino que puedan admitir la gama más amplia de clientes. En el caso de una aplicación multiinquilino, es posible que una aplicación no sepa de qué inquilino es un usuario hasta después de que el usuario se autentique, por lo que no es posible usar un punto de conexión de inquilino específico.

Para habilitar aplicaciones multiinquilino, Microsoft Entra ID proporciona dos puntos de conexión de OIDC/OAuth 2.0 independientes del inquilino:

  • https://login.microsoftonline.com/common/v2.0 permite a los usuarios autenticar una aplicación cuando proceden de cualquier inquilino de Microsoft Entra ID o que tienen una cuenta Microsoft de consumidor desde sitios como outlook.com, skype.com, xbox.com, live.com o Hotmail.com.
  • https://login.microsoftonline.com/organizations/v2.0 permite a los usuarios autenticar una aplicación cuando proceden de cualquier inquilino de Id. de Microsoft Entra.

Estos puntos de conexión permiten que cualquier usuario de cualquier inquilino de Id. de Microsoft Entra autentique la aplicación. Si solo quiere permitir a los usuarios de inquilinos específicos, implemente la lógica para permitir que solo los usuarios de esos inquilinos accedan a la aplicación. La implementación normal es filtrar a los usuarios en función de la iss notificación (emisor) o tid (id. de inquilino) en el token a una lista de inquilinos permitidos que mantenga.

Los inquilinos de Id. de Microsoft Entra admiten usuarios que pueden ser miembros normales del inquilino o que pueden ser usuarios invitados del inquilino. De forma predeterminada, hay funcionalidades limitadas para los usuarios invitados en un inquilino. Por ejemplo, los usuarios invitados no pueden ver el perfil completo de otros usuarios en el inquilino. Los usuarios invitados, a veces llamados usuarios empresariales a empresas (B2B), permiten que diferentes organizaciones colaboren con herramientas y servicios que protege Microsoft Entra ID. Un escenario de ejemplo es invitar a un usuario de fuera de su organización a acceder a un archivo de SharePoint en el inquilino. Normalmente, un usuario B2B usa su dirección de correo electrónico como su userid. Sin embargo, pueden usar esa misma dirección que en userid su inquilino principal. De forma predeterminada, el identificador de Microsoft Entra inicia la sesión del usuario en su inquilino principal cuando escribe su userid.

Para iniciar sesión un usuario como usuario B2B, una aplicación debe usar el punto de conexión de inquilino específico donde el usuario es invitado. Aunque es posible que un usuario especifique un inquilino al que quiere acceder cuando una aplicación usa el https://login.microsoftonline.com/organizations/v2.0 punto de conexión, los usuarios pueden encontrar esa funcionalidad difícil de detectar.

Pasos siguientes