Incorporación de usuarios externos a aplicaciones de línea de negocio con Microsoft Entra B2B

Los desarrolladores de aplicaciones pueden usar Microsoft Entra B2B para incorporar usuarios externos y colaborar con ellos en aplicaciones de línea de negocio (LOB). Al igual que el botón Compartir en muchas aplicaciones de Office 365, los desarrolladores de aplicaciones pueden crear una experiencia de invitación con un solo clic dentro de cualquier aplicación de línea de negocio que esté integrada con Microsoft Entra ID.

Dicha integración aporta las siguientes ventajas:

  • Incorporación y acceso sencillos y fáciles de los usuarios a las aplicaciones de línea de negocio, a las que pueden acceder con unos pocos pasos.

  • Permite a los usuarios externos traer su propia identidad y realizar el inicio de sesión único (SSO).

  • Aprovisionamiento automático de identidades externas en Microsoft Entra ID.

  • Aplique el acceso condicional y las directivas de acceso entre inquilinos de Microsoft Entra para implementar directivas de autorización, como requerir la autenticación multifactor.

Flujo de integración

Para integrar aplicaciones de línea de negocio con Microsoft Entra B2B, siga este patrón:

Screenshot shows the integration of LOB applications.

Paso Descripción
1. El usuario final desencadena la invitación dentro de la aplicación de línea de negocio y proporciona la dirección de correo electrónico del usuario externo. La aplicación comprueba si el usuario ya existe y, si no, continúa con el paso 2
2. La aplicación envía un POST a Microsoft Graph API en nombre del usuario. Proporciona la URL de redireccionamiento y el correo electrónico del usuario externo que se define en el paso 1.
3. Microsoft Graph API aprovisiona el usuario invitado en Microsoft Entra ID.
4. Microsoft Graph API devuelve el estado correcto o de error de la llamada API. Si se ejecuta correctamente, la respuesta incluye el id. de objeto de usuario de Microsoft Entra y el vínculo de invitación que se envía al correo electrónico del usuario invitado. Opcionalmente, puede suprimir el correo electrónico de Microsoft y enviar su propio correo electrónico personalizado.
5. (Opcional) Si desea escribir más atributos en el usuario invitado o agregar el usuario invitado a un grupo, la aplicación realiza una llamada API adicional a Microsoft Graph API.
6. (Opcional) Microsoft Graph API lleva a cabo las actualizaciones deseadas en Microsoft Entra ID.
7. (Opcional) Microsoft Graph API devuelve el estado de correcto o de error a la aplicación.
8. La aplicación aprovisiona al usuario en su propio directorio de usuario de base de datos o back-end mediante el atributo id. de objeto del usuario como id. inmutable.
9. La aplicación presenta el estado correcto o de error al usuario final.

Si se requiere la asignación para acceder a la aplicación de línea de negocio, el usuario invitado también debe asignarse a la aplicación con un rol de aplicación adecuado. Esto se puede hacer como otra llamada API agregando el invitado a un grupo (pasos 5-7) o automatizando la pertenencia a un grupo con los grupos dinámicos de Microsoft Entra. El uso de grupos dinámicos no requeriría otra llamada API por parte de la aplicación. Sin embargo, la pertenencia a grupos no se actualizaría tan rápidamente en comparación con la adición de un usuario a un grupo inmediatamente después de la invitación del usuario.

Paso 1: Comprobar si el usuario externo ya existe

Es posible que el usuario externo se haya invitado e incorporado previamente. La aplicación de línea de negocio debe comprobar si el usuario ya existe en el directorio. Existen muchos enfoques, pero el más sencillo consiste en realizar una llamada a Microsoft Graph API y presentar las posibles coincidencias al usuario invitado para que elija.

Por ejemplo:

Application Permission: User.read.all

GET https://graph.microsoft.com/v1.0/users?$filter=othermails/any(id:id eq 'userEmail@contoso.com')  

Si recibe detalles de un usuario en la respuesta, el usuario ya existe. Debe presentar los usuarios devueltos al usuario que invita y permitirle elegir a qué usuario externo desea conceder acceso. Debe proceder a realizar las llamadas a la API adecuadas o desencadenar otros procesos para conceder a este usuario acceso a la aplicación en lugar de proceder con el paso de invitación.

Paso 2: Crear y enviar invitación

Si el usuario externo aún no existe en el directorio, puede usar Microsoft Entra B2B para invitar al usuario e incorporarlo al inquilino de Microsoft Entra. Como desarrollador de aplicaciones, debe determinar qué incluir en la solicitud de invitación a Microsoft Graph API.

Como mínimo, debe:

  • Pedir al usuario final que proporcione la dirección de correo electrónico del usuario externo.

  • Determinar la dirección URL de la invitación. Esta dirección URL es donde se redirige al usuario invitado después de autenticarse y canjear la invitación B2B. La dirección URL puede ser una página de aterrizaje genérica para la aplicación o determinada dinámicamente por la aplicación de línea de negocio en función de dónde el usuario final desencadenó la invitación.

Más marcas y atributos que se deben tener en cuenta para su inclusión en la solicitud de invitación:

  • Nombre para mostrar del usuario invitado.
  • Determine si desea usar el correo electrónico de invitación de Microsoft predeterminado o suprimir el correo electrónico predeterminado para crear el suyo propio.

Una vez que la aplicación ha recopilado la información necesaria y determinado cualquier otra marca o información que se va a incluir, la aplicación debe PUBLICAR la solicitud al administrador de invitaciones de Microsoft Graph API. Asegúrese de que el registro de la aplicación tiene los permisos adecuados en Microsoft Entra ID.

Por ejemplo:

Delegated Permission: User.Invite.All

POST https://graph.microsoft.com/v1.0/invitations  
Content-type: application/json

{ 
"invitedUserDisplayName": "John Doe",  
"invitedUserEmailAddress": "john.doe@contoso.com",  
"sendInvitationMessage": true,  
"inviteRedirectUrl": "https://customapp.contoso.com"  
} 

Nota

Para ver la lista completa de opciones disponibles para el cuerpo JSON de la invitación, consulte el tipo de recurso de invitación: Microsoft Graph v1.0.

Los desarrolladores de aplicaciones también pueden incorporar usuarios externos por medio de paquetes de acceso de administración de derechos o registro de autoservicio de Microsoft Entra. Puede crear el botón de invitación en la aplicación de línea de negocio que desencadene un correo electrónico personalizado que contenga una dirección URL de registro de autoservicio predefinida o una dirección URL del paquete de acceso. A continuación, el usuario invitado se incorpora por sí mismo y accede a la aplicación.

Paso 3: Escribir otros atributos en Microsoft Entra ID (opcional)

Importante

Conceder un permiso de aplicación para actualizar usuarios en el directorio es una acción con privilegios elevados. Debe seguir los pasos necesarios para proteger y supervisar la aplicación de línea de negocio si concede a la aplicación estos permisos con privilegios elevados.

Es posible que la organización o la aplicación de línea de negocio necesiten almacenar más información para su uso futuro, como la emisión de notificaciones en tokens o directivas de autorización pormenorizadas. La aplicación puede realizar otra llamada API para actualizar el usuario externo después de haber sido invitado o creado en Microsoft Entra ID. Para ello, la aplicación debe tener permisos de API adicionales y requeriría una llamada adicional a Microsoft Graph API.

Para actualizar el usuario, debe usar el id. de objeto del usuario invitado recién creado recibido en la respuesta de la llamada API de invitación. Este es el valor de id. en la respuesta de la API de la comprobación de existencia o de la invitación. Puede escribir en cualquier atributo estándar o atributos de extensión personalizados que haya creado.

Por ejemplo:

Application Permission: User.ReadWrite.All

PATCH https://graph.microsoft.com/v1.0/users/<user's object ID> 
Content-type: application/json

{ 
"businessPhones": [ 
        "+1 234 567 8900" 
    ], 
"givenName": "John" 
"surname": "Doe", 
"extension_cf4ff515cbf947218d468c96f9dc9021_appRole": "external" 
} 

Para obtener más información, consulte Actualizar usuario: Microsoft Graph v1.0.

Paso 4: Asignar el usuario invitado a un grupo

Nota:

Si la asignación de usuario no es necesaria para acceder a la aplicación, puede omitir este paso.

Si se requiere la asignación del usuario en Microsoft Entra ID para el acceso a la aplicación o la asignación de roles, debe asignarse el usuario a la aplicación. De lo contrario, el usuario no puede obtener acceso aunque se haya autenticado correctamente. Para ello, debe realizar otra llamada API para agregar el usuario externo invitado a un grupo específico. El grupo se puede asignar a la aplicación y asignarse a un rol de aplicación específico.

Por ejemplo:

Permisos: asigne el rol de actualizador de grupo o un rol personalizado a la aplicación empresarial y establezca el ámbito de la asignación de roles solo a los grupos que debe actualizar esta aplicación. O bien, asigne el permiso de group.readwrite.all en Microsoft Graph API.

POST https://graph.microsoft.com/v1.0/groups/<insert group id>/members/$ref 
Content-type: application/json

{ 
"@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/<insert user id>" 
} 

Para obtener más información, vea Agregar miembros: Microsoft Graph v1.0.

Como alternativa, puede usar grupos dinámicos de Microsoft Entra, que pueden asignar automáticamente usuarios a un grupo en función de los atributos de usuario. Sin embargo, si el acceso del usuario final es sensible al tiempo, este no sería el enfoque recomendado, ya que los grupos dinámicos pueden tardar hasta 24 horas en rellenarse.

Si prefiere usar grupos dinámicos, no es necesario agregar los usuarios a un grupo explícitamente con otra llamada API. Cree un grupo dinámico que añada automáticamente al usuario como miembro del grupo en función de los atributos disponibles, como userType, email o un atributo personalizado. Para obtener más información, consulte Crear o editar un grupo dinámico y obtener el estado.

Paso 5: Aprovisionar al usuario invitado en la aplicación

Una vez que se ha aprovisionado el usuario externo invitado en Microsoft Entra ID, Microsoft Graph API devuelve una respuesta con la información de usuario necesaria, como el id. de objeto y el correo electrónico. Después, la aplicación de línea de comando puede aprovisionar al usuario en su propio directorio o base de datos. Según el tipo de aplicación y el tipo de directorio interno que use la aplicación, la implementación real de este aprovisionamiento varía.

Con el usuario externo aprovisionado tanto en Microsoft Entra ID como en la aplicación, la aplicación de línea de negocio ahora puede notificar al usuario final que inició la invitación que el proceso se ha realizado correctamente. El usuario invitado puede obtener el inicio de sesión único con su propia identidad sin que la organización que invite necesite incorporar y emitir credenciales adicionales. Microsoft Entra ID puede aplicar directivas de autorización, como el acceso condicional, Microsoft Entra Multifactor Authentication e Identity Protection basada en riesgos.

Otras consideraciones

  • Asegúrese de que se realiza el control de errores adecuado dentro de la aplicación de línea de negocio. La aplicación debe validar que cada llamada API se realiza correctamente. Si no se realiza correctamente, sería apropiado realizar intentos adicionales y presentar mensajes de error al usuario final.

  • Si necesita la aplicación de línea de negocio para actualizar usuarios externos una vez que se les haya invitado, considere la posibilidad de conceder un rol personalizado que permita a la aplicación actualizar solo a los usuarios y asignar el ámbito a una unidad administrativa dinámica. Por ejemplo, puede crear una unidad administrativa dinámica para contener todos los usuarios en los que: tipo de usuario = invitado. Una vez que el usuario externo se incorpora a Microsoft Entra ID, se tarda algún tiempo en agregarlo a la unidad administrativa. Por lo tanto, la aplicación de línea de negocio debe intentar actualizar al usuario pasado un tiempo y puede llevar más de un intento si hay retrasos. A pesar de estos retrasos, este es el mejor enfoque disponible para permitir que la aplicación de línea de negocio actualice usuarios externos sin concederle permiso para actualizar cualquier usuario del directorio.