es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Acceda a los datos de MS Graph entre inquilinos y principales externos.

Supongamos que tengo dos o más inquilinos de O365 y una aplicación externa que utiliza credenciales de cliente de Azure y que desea leer datos de usuario en estos inquilinos.

¿Es posible establecer un acceso de manera que la aplicación externa pueda obtener un token de acceso OAuth para el inquilino 1 y usarlo también para leer datos en el inquilino 2, mediante un acceso delegado a través del inquilino? Por ejemplo, supongamos que tengo dos usuarios “foo@tenant1.com” y “bar@tenant2.com”, donde “foo” pertenece al inquilino 1 y “bar” pertenece al inquilino 2, y quiero leer, por ejemplo, los correos electrónicos o los eventos del calendario de estos dos usuarios. ¿Es posible autenticarse una vez y leer los datos de ambos usuarios utilizando el mismo token de acceso? ¿O es absolutamente necesario agrupar a los usuarios por inquilinos, es decir, encontrar el inquilino correspondiente de cada usuario, autenticarse en ese inquilino y luego leer los datos de los usuarios dentro de ese inquilino por separado?

¿Qué sucede si los propios datos abarcan varios inquilinos, como por ejemplo, un usuario en el inquilino 1 que crea un evento en el calendario donde los usuarios del inquilino 2 son los asistentes y tal vez que utiliza un recurso como una sala de reuniones del inquilino 3? ¿Cómo maneja O365 esto? A veces he visto que se permite el acceso de principios de un inquilino a otro inquilino y se les asigna un principio especial “invitado” o “externo”, como por ejemplo, “foo@tenant1.com” se permite en el inquilino 2 como “foo_tenant1.com#EXT#@tenant2.com”. ¿Esto sucede automáticamente? ¿Qué sucede si este principio externo se usa en el escenario anterior? ¿Podría obtener un token de acceso para el inquilino 2 y luego obtener los datos de usuario para el principio “foo_tenant1.com#EXT#@tenant2.com”, incluso si en realidad reside en el inquilino 1?

Si es posible, ¿qué se debe configurar en Azure/AD para permitir esta delegación de acceso entre inquilinos?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible configurar el acceso delegado de inquilinos para que una aplicación externa que use las credenciales de cliente de Azure pueda obtener un token de acceso de OAuth para un inquilino y usarlo también para leer datos en otro inquilino. Esto se logra a través de la función de aplicación multiinquilino de Azure AD, que permite que una aplicación se registre en varios inquilinos y tenga un único conjunto de credenciales de cliente que se pueden utilizar para autenticarse en esos inquilinos.

    Para autenticar y leer datos de usuarios en varios inquilinos, la aplicación externa debería obtener un token de acceso que incluya los permisos necesarios para ambos inquilinos. Esto se puede lograr configurando los permisos requeridos para la aplicación de Azure AD en cada inquilino y luego solicitando los ámbitos correspondientes al obtener el token de acceso.

    Si los datos a los que se accede abarcan varios inquilinos, como un evento de calendario con asistentes de diferentes inquilinos, O365 manejará esto mediante el uso de principios externos o invitados. Estos permiten que los usuarios de un inquilino reciban acceso a recursos en otro inquilino a través de una cuenta externa o de invitado. Cuando se otorga acceso a un principal externo a un recurso en otro inquilino, O365 creará automáticamente una cuenta especial para ese principal en el inquilino de destino, que luego se puede utilizar para autenticar y acceder a los datos relevantes.

    Para configurar el acceso delegado entre inquilinos, se deben configurar las aplicaciones relevantes de Azure AD y los ámbitos de permiso en cada inquilino, y luego solicitar los tokens de acceso correspondientes utilizando estos ámbitos. La aplicación externa también deberá manejar cualquier principal externo o invitado que pueda estar involucrado en los datos a los que se accede y autenticarlos según sea necesario utilizando las credenciales apropiadas.

Comments are closed.