Impersonación de cuentas con Exchange Online
Buenas,
En este articulo vamos a mostrar como configurar la impersonación de cuentas en Exchange Online.
Os preguntareis para que nos sirve y que usos podemos darle, bien pues básicamente con esto podremos acceder a buzones de correo como si se tratase del propietario del mismo. Esto es especialmente util si disponemos de aplicaciones que realicen acciones como archivado de correo, establecer mensajes de OOF o cualquier otra accion que requiera hacerse como si fuese el propietario del buzón como por ejemplo enviar un correo.
Pero, eso puedo hacerlo con delegacion de cuentas o permisos sobre carpetas no?. En realidad existe una solución distinta para cada escenario y recordemos que otorgar permisos de acceso completo a un usuario no es siempre lo mejor. En el siguiente grafico se puede ver un ejemplo de esto:
Importante! : esto no debe utilizarse como método de asignación de permisos para acceso delegado a otro usuario, únicamente debe utilizarse para otorgar permisos a cuentas de servicios que serán utilizadas por aplicaciones concretas. El mal uso de este método supone un riesgo importante para la seguridad de la organización a causa de acciones mal intencionadas.
Así que comencemos ...
En mi ejemplo he procedido a crear dos usuarios en mi tenant (ImpersonatedAccount y ServiceAccount). La primera sería el usuario al que queremos impersonar, y la segunda sería la cuenta que usaremos en la aplicación. (por supuesto he accedido a cada buzón para inicializarlos, ya que es la primera vez que se accede a ellos).
Como detalle adicional, he procedido a definir el campo “Company” con el valor “Contoso” en el usuario ImpersonatedAccount, de tal forma que se pueda distinguir del resto de usuarios de la organización, (pero se puede definir cualquier otro):
A continuación voy a definir un Management Scope (o ámbito de administración) de tal forma que pueda definir mas adelante que usuarios son los que puedo impersonar basándome en un atributo. En mi caso he definido que el ámbito de administración se limita a aquellos usuarios que tengan “Contoso” definido en el campo “Company” y le he dado el nombre de “ApplicationImpersonationScope”. En tu caso solo tendrías que cambiar el nombre (-Name) y el filtro a aplicar en recipientes (-RecipientRestrictionFilter):
Una vez definido el ambito de administracion, podemos proceder a definir el Management Role Assignment (o asignación de rol de administración), indicando el ámbito de administración definido arriba y la cuenta de servicio que accederá o impersonará a los usuarios. En tu caso solo tendrías que cambiar el nombre (-Name), la cuenta de servicio que usaras para acceder con EWS Editor (-User) y el nombre del ámbito de administración que definistes arriba (-CustomRecipientWriteScope):
Ahora viene la parte donde comprobamos si funciona lo que hemos hecho. En las pruebas realizadas utilicé EWS Editor de la siguiente forma:
Anteriormente me había enviado un email a mi mismo como ImpersonatedAccount como puedes ver a continuación:
Tras hacer clic, vemos que podemos acceder al buzón de ImpersonatedAccount como ServiceAccount y que el mensaje de prueba aparece en EWS Editor, por lo que podemos afirmar que funciona:
Todo bien, lo único, podemos impersonar otra cuenta que no esté dentro del ámbito de administración?. Para comprobarlo, he procedido a listar otro buzón en mi organización que no tiene el campo “Company” relleno:
Al intentar acceder por EWS Editor como ServiceAccount al buzón O365MBX, vemos que no podemos:
Asi que en resumen, que pasos deberemos hacer?:
- Tener claro si realmente queremos hacer uso de la impersonación
- Definir en que queremos basarnos.
- Definir un management scope
- Definir un managment role assignment
- Realizar las pruebas.
Espero que sea de utilidad.