Share via


Introducción a las extensiones de autenticación personalizadas

Este artículo proporciona una visión general de los aspectos técnicos de las extensiones de autenticación personalizadas para Microsoft Entra ID. Las extensiones de autenticación personalizadas le permiten personalizar la experiencia de autenticación de Microsoft Entra mediante la integración con sistemas externos.

En el diagrama siguiente se muestra el flujo de inicio de sesión integrado con una extensión de autenticación personalizada.

Diagrama en el que se muestra un token que se va a aumentar con notificaciones de un origen externo.

  1. Un usuario intenta iniciar sesión en una aplicación y es redirigido a la página de inicio de sesión de Microsoft Entra.
  2. Una vez que un usuario completa un determinado paso en la autenticación, se desencadena un cliente de escucha de eventos.
  3. La extensión de autenticación personalizada envía una solicitud HTTP al punto de conexión de la API de REST. La solicitud contiene información sobre el evento, el perfil de usuario, los datos de sesión y otra información de contexto.
  4. La API de REST realiza un flujo de trabajo personalizado.
  5. La API REST devuelve una respuesta HTTP a Microsoft Entra ID.
  6. La extensión de autenticación personalizada de Microsoft Entra procesa la respuesta y personaliza la autenticación basándose en el tipo de evento y la carga útil de la respuesta HTTP.
  7. Se devuelve un token en la aplicación.

Punto de conexión de la API de REST de extensión de autenticación personalizada

Cuando se activa un evento, Microsoft Entra ID llama a un punto de conexión de API de REST de su propiedad. La solicitud a la API de REST contiene información sobre el evento, el perfil de usuario, los datos de solicitud de autenticación y otra información de contexto.

Puede usar cualquier lenguaje de programación, marco y entorno de hospedaje para crear y hospedar la API de REST de las extensiones de autenticación personalizadas. Para obtener una manera rápida de empezar, use una función de Azure de C#. Azure Functions permite ejecutar el código en un entorno sin servidor y sin necesidad de crear una máquina virtual (VM) ni publicar una aplicación web.

La API de REST debe controlar:

  • Validación de tokens para proteger las llamadas a la API de REST.
  • Lógica de negocios
  • Validación entrante y saliente de esquemas de solicitud y respuesta HTTP.
  • Auditoría y registro.
  • Controles de disponibilidad, rendimiento y seguridad.

Para los desarrolladores que ejecutan la API de REST en Azure Functions, considere la posibilidad de usar la biblioteca NuGet Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents, lo que ayuda a implementar la validación de tokens mediante las funcionalidades de autenticación integradas de Microsoft Azure. Proporciona un modelo de datos para diferentes tipos de eventos, inicia el procesamiento de solicitudes y respuestas entrantes y salientes, por lo que se puede centrar más en la lógica de negocios.

Protección de la API de REST

Para asegurarse de que las comunicaciones entre la extensión de autenticación personalizada y la API de REST estén protegidas correctamente, se deben aplicar varios controles de seguridad.

  1. Cuando la extensión de autenticación personalizada llama a su API REST, envía un encabezado HTTP Authorization con un token de portador emitido por Microsoft Entra ID.
  2. El token de portador contiene una notificación appid o azp. Compruebe que la notificación correspondiente contenga el valor 99045fe1-7639-4a75-9d4a-577b6ca3810f. Este valor garantiza que el Microsoft Entra ID es el que llama a la API REST.
    1. Para las aplicaciones V1, valide la notificación appid.
    2. Para las aplicaciones V2, valide la notificación azp.
  3. La notificación de audiencia aud del token de portador contiene el identificador del registro de aplicación asociado. El punto de conexión de la API de REST debe validar que el token de portador se emita para esa audiencia específica.
  4. El token de portador iss notificación del emisor contiene la dirección URL del emisor de Microsoft Entra. En función de la configuración del inquilino, la dirección URL del emisor será una de las siguientes:
    • Personal: https://login.microsoftonline.com/{tenantId}/v2.0.
    • Cliente: https://{domainName}.ciamlogin.com/{tenantId}/v2.0.

Proveedor de notificaciones personalizado

Un proveedor de notificaciones personalizado es un tipo de extensión de autenticación personalizada que llama a una API de REST para capturar notificaciones de sistemas externos. Un proveedor de notificaciones personalizado asigna notificaciones de sistemas externos a tokens y se puede asignar a una o varias aplicaciones del directorio.

Obtenga más información sobre los proveedores de notificaciones personalizados.

Eventos de inicio y envío de colecciones de atributos

Los eventos de inicio y envío de colecciones de atributos se pueden usar con extensiones de autenticación personalizadas para agregar lógica antes y después de recopilar atributos de un usuario. Por ejemplo, puede agregar un flujo de trabajo para validar los atributos que escribe un usuario durante el registro. El evento OnAttributeCollectionStart se produce al principio del paso de colección de atributos, antes de que se represente la página de colección de atributos. Permite agregar acciones como rellenar previamente valores y mostrar un error de bloqueo. El evento OnAttributeCollectionSubmit se desencadena después de que el usuario escriba y envíe los atributos, lo que le permite agregar acciones como validar entradas o modificar atributos.

Nota:

Los eventos de inicio y envío de colecciones de atributos solo están disponibles actualmente para los flujos de usuario en Id. externa de Microsoft Entra en inquilinos externos. Para obtener más información, consulte Agregar su propia lógica de negocios.

Consulte también