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:

IC717272

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):

Imp1

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):

Imp2

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):

Imp3

 

Ahora viene la parte donde comprobamos si funciona lo que hemos hecho. En las pruebas realizadas utilicé EWS Editor de la siguiente forma:

imp4

Anteriormente me había enviado un email a mi mismo como ImpersonatedAccount como puedes ver a continuación:

Imp5Tras 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:

Imp6

 

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:

Imp7

 

Al intentar acceder por EWS Editor como ServiceAccount al buzón O365MBX, vemos que no podemos:

Imp8

Imp9

 

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.