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 de línea de negocio 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, sigue este patrón:
- 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|
- 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.
- Microsoft Graph API aprovisiona el usuario invitado en Microsoft Entra ID.
- 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. Puedes suprimir el correo electrónico de Microsoft y enviar tu propio correo electrónico personalizado.
- (Opcional) Para 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.
- (Opcional) Microsoft Graph API lleva a cabo las actualizaciones en Microsoft Entra ID.
- (Opcional) Microsoft Graph API devuelve el estado correcto o de error a la aplicación.
- 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.
- 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 . Realiza una llamada API a Microsoft Graph API y presenta 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 recibes detalles de un usuario en la respuesta, éste ya está en el directorio. Presenta los usuarios devueltos al usuario invitado. Permite que los usuarios seleccionen el usuario externo que obtiene acceso. Para conceder acceso de usuario a la aplicación, realiza llamadas API o desencadena otros procesos.
Creación y envío de la invitación
Si el usuario externo no existe en el directorio, usa Microsoft Entra B2B para invitar al usuario e incorporarlo al inquilino de Microsoft Entra. Determina qué incluir en la solicitud de invitación a Microsoft Graph API.
Usa los siguientes elementos:
- Pide al usuario final que proporcione la dirección de correo electrónico del usuario externo.
- Determina 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 suprimir el correo electrónico predeterminado para crear el tuyo 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úrate 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 las opciones para el cuerpo JSON de la invitación, consulta el tipo de recurso de invitación en 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. Puedes 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.
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 concedes a la aplicación estos permisos con privilegios, protege y supervisa 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, usa 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. Puedes 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, consulta Actualizar 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, puedes omitir este paso.
Si se requiere la asignación de usuarios 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. Realiza 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: asigna el rol de actualizador de grupo o un rol personalizado a la aplicación empresarial. Asigna el ámbito de la asignación de roles a los grupos que actualiza esta aplicación. O bien, asigna 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, consulta Agregar miembros en Microsoft Graph v1.0.
Como alternativa, puedes 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 prefieres usar grupos de pertenencia dinámica, no agregues los usuarios a un grupo con otra llamada API. En su lugar, crea 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, consulta Crear o editar un grupo dinámico y obtener el 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 comando 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 Microsoft Entra ID.
Otras consideraciones
Asegúrate 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, concede 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, puedes 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.