Entre las múltiples posibilidades que ofrece el servidor de correo Exchange, encontramos la posibilidad de asignar a usuarios diferentes niveles de acceso a cuentas de terceros, hoy vamos a ver tanto como gestionar estos permisos como la manera de visualizarlos para no perder el control sobre los mismos.
A través de la interfaz web de Exchange Online, podremos fácilmente asignar o revocar tres tipos de permisos en una cuenta determinada:
- Enviar e-mail desde esta cuenta (Send email from this mailbox)
- Acceso de lectura y gestión a la cuenta (Read and manage email to this mailbox)
- Enviar e-mail en nombre de (Send on behalf of this mailbox)
Los cuales los podemos combinar para dar a un tercero el acceso deseado a esta cuenta de correo. Como siempre la gestión a través de la interfaz gráfica es sencillo pero desde el momento en que disponemos de un gran número de cuentas y vamos asignando permisos la gestión se va complicando. Ahí es donde Powershell se convierte en indispensable con los siguientes cmdlets.
- cmdlet Get-MailboxPermission
Este cmdlet nos permite ver los permisos existentes sobre una cuenta determinada. Aquí veremos todos los permisos, es decir tanto los asignados a terceros usuarios que comentábamos antes como todos los del propio sistema a administradores,etc..
Get-MailboxPermission -Identity [email protected] | Format-List
También podemos ver por ejemplo los permisos de una cuenta determinada sobre otra
Get-MailboxPermission -Identity [email protected] -User "Otrousuario"
esta información también la podemos obtener concatenando dos cmdlets
Get-Mailbox ejempl[email protected] | Get-MailboxPermission -User "Otrousuario"
Para ver todas las cuentas sobre las que un usuario tiene algún tipo de acceso podemos usar el siguiente comando. En este caso sería necesario utilizar el "-ResultSize" si tenemos un gran número de cuentas en nuestro servidor de correo.
Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User "OtroUsuario" | Format-Table Identity, AccessRights, Deny
También podemos ver rápidamente quien es el dueño de una cuenta o recurso determinado
Get-MailboxPermission -Identity [email protected] -Owner
Vistos estos ejemplos para obtener información sobre los permisos vamos a ver como cambiarlo.
- cmdlet Add-MailboxPermission y Remove-MailboxPermission
Pues sencillo, tal y como su nombre indica podremos usar estos cmdlets para añadir o quitar permisos basándonos en la información que hemos obtenido con el cmdlet Get-MailboxPermission. Como comentábamos antes los permisos serían principalmente los de FullAccess, SendAs y ReadPermission.
Vamos a dar FullAccess (acceso de lectura y gestión de mails,carpetas) a un tercero
Add-MailboxPermission -Identity "[email protected]" -User "[email protected]" -AccessRights FullAccess -InheritanceType All
Y de la misma manera vemos como se quita este permiso
Remove-MailboxPermission -Identity "[email protected]" -User "[email protected]" -AccessRights FullAccess -InheritanceType All
Como podéis ver hemos utilizado el "-InheritanceType All" con esto le indicamos que el acceso se lo asignamos a todas las carpetas de la cuenta. Pero también podemos asignar un acceso modular a una determinada carpeta y a solo los emails contenidos en la misma.
- cmdlet Set-MailboxFolderPermission
Por ejemplo si solo queremos dar el acceso a la carpeta "Contabilidad" usaremos el comando
Set-MailboxFolderPermission -Identify [email protected]:\Contabilidad -User [email protected] -AccessRights Owner
Estos son solo algunos ejemplos de como podemos utilizar Powershell para tener los permisos en nuestras cuentas de correo siempre bajo control y al día.