Compartir vía


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 de usuarios y acceso a las aplicaciones LOB. Los usuarios tienen acceso con unos pocos pasos.
  • Los usuarios externos traen su propia identidad y realizan el inicio de sesión único (SSO).
  • Aprovisionamiento de identidades externas en Microsoft Entra ID.
  • Acceso condicional y 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:

Captura de pantalla que muestra la integración de las aplicaciones de línea de negocio.

  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 la creación y envío de la invitación|
  2. La aplicación envía un POST a Microsoft Graph API en nombre del usuario. Proporciona la dirección URL de redireccionamiento y el correo electrónico del usuario externo que se define en Confirmación de que el usuario externo está en el directorio.
  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. Puede suprimir el correo electrónico de Microsoft y enviar su propio correo electrónico personalizado.
  5. (Opcional) 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 en Microsoft Entra ID.
  7. (Opcional) Microsoft Graph API devuelve el estado 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 de id. de objeto del usuario como identificador inmutable.
  9. La aplicación presenta el estado correcto o de error al usuario final.

Si se requiere una 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. Habilita esta acción como otra llamada API agregando el invitado a un grupo o automatizando la pertenencia a los grupos de pertenencia dinámica de Microsoft Entra. Los grupos de pertenencia dinámica no requieren otra llamada API por parte de la aplicación; sin embargo, se actualizan tan pronto como se agrega un usuario a un grupo a través de la invitación de usuario.

Confirmación de que el usuario externo está en el directorio

Es posible que se haya invitado e incorporado previamente al usuario externo. La aplicación de línea de negocio comprueba si el usuario está en el directorio. Realice una llamada API a Microsoft Graph API y presente las coincidencias al usuario invitado para que las seleccione.

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, este ya está en el directorio. Presente los usuarios devueltos al usuario invitado. Permita que los usuarios seleccionen el usuario externo que obtiene acceso. Para conceder acceso de usuario a la aplicación, realice llamadas API o desencadene otros procesos.

Creación y envío de la invitación

Si el usuario externo no existe en el directorio, use Microsoft Entra B2B para invitar al usuario e incorporarlo al inquilino de Microsoft Entra. Determine qué incluir en la solicitud de invitación a Microsoft Graph API.

Use los siguientes elementos:

  • Pida al usuario final que proporcione la dirección de correo electrónico del usuario externo.
  • Determine la dirección URL de invitación que redirige a los usuarios invitados, después de autenticarse y canjear la invitación B2B
    • La dirección URL puede ser una página de aterrizaje genérica 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 para la solicitud de invitación:

  • Nombre para mostrar del usuario invitado.
  • Correo electrónico de invitación de Microsoft predeterminado o suprima el correo electrónico predeterminado para crear el suyo propio.

Una vez que la aplicación haya recopilado la información necesaria, debe PUBLICAR la solicitud al administrador de invitaciones de Microsoft Graph API. Asegúrese de que el registro de aplicación tiene los permisos 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 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 o una dirección URL del paquete de acceso. El usuario invitado se incorpora por sí mismo y accede a la aplicación.

(Opcional) Escritura de otros atributos en Microsoft Entra ID

Importante

Conceder un permiso de aplicación para actualizar usuarios en el directorio es una acción con privilegios elevados. Si concede a la aplicación estos permisos con privilegios, proteja y supervise la aplicación de línea de negocio.

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. Cuando se invitan o crean usuarios externos en Microsoft Entra ID, la aplicación puede realizar otra llamada API para actualizarlos. La aplicación debe tener permisos de API adicionales y una llamada adicional a Microsoft Graph API.

Para actualizar el usuario, use el id. de objeto del usuario invitado creado a partir de la llamada API de invitación, el valor de id. en la respuesta de la API de la comprobación de existencia o la invitación. Puede escribir en cualquier atributo estándar o en los atributos de extensión personalizados.

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 Actualización de usuario en Microsoft Graph v1.0.

(Opcional) Asignación del 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 de usuario en Microsoft Entra ID para el acceso a la aplicación o la asignación de roles, se asigna el usuario a la aplicación. De lo contrario, el usuario no puede obtener acceso independientemente de la autenticación. Realice otra llamada API para agregar el usuario externo invitado a un grupo. El grupo se puede asignar a la aplicación y a un rol de aplicación.

Un ejemplo de permisos: asigne el rol de actualizador de grupo o un rol personalizado a la aplicación empresarial. Asigne el ámbito de la asignación de roles a los grupos que actualiza 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, consulte Adición de miembros en Microsoft Graph v1.0.

Como alternativa, puede usar grupos de pertenencia dinámica de Microsoft Entra que asignen automáticamente usuarios basados en atributos específicos, como userType, correo electrónico o un atributo personalizado. Sin embargo, si el acceso del usuario final está sujeto a una limitación temporal, este no sería el enfoque recomendado, ya que los grupos de pertenencia dinámica pueden tardar hasta 24 horas en rellenarse.

Si prefiere usar grupos de pertenencia dinámica, no agregue los usuarios a un grupo con otra llamada API. En su lugar, cree un grupo dinámico que agregue al usuario como miembro del grupo en función de los atributos, como userType, correo electrónico o un atributo personalizado. Para obtener más información, consulte Creación o edición de un grupo dinámico y obtención del estado.

Aprovisionamiento del 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. La aplicación de línea de negocio aprovisiona 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, el 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 notifica al usuario que inició la invitación que el proceso se ha realizado correctamente. El usuario invitado obtiene 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 aplica directivas de autorización con acceso condicional, autenticación multifactor de Microsoft Entra y Protección de id. de Microsoft Entra.

Otras consideraciones

Asegúrese de que se realiza el control de errores dentro de la aplicación de línea de negocio. La aplicación valida cada llamada API. Si no se realiza correctamente, son útiles los intentos adicionales o los mensajes de error.

Para que las aplicaciones de línea de negocio actualicen los usuarios externos invitados, conceda un rol personalizado que permita a la aplicación actualizar a los usuarios y asignar el ámbito a una unidad administrativa dinámica. Por ejemplo, puede crear una unidad administrativa dinámica con usuarios en los que usertype = invitado. Cuando los usuarios externos se incorporan a Microsoft Entra ID, se agregan a la unidad administrativa. La aplicación de línea de negocio debe intentar actualizar al usuario y se puede necesitar más de un intento si hay retrasos. A pesar de estos retrasos, este enfoque permite que la aplicación de línea de negocio actualice usuarios externos sin concederle permiso para actualizar cualquier usuario del directorio.