Descargar archivos grandes desde Azure Storage con Firmas de acceso compartido (SAS)

El almacenamiento de datos en cloud debe conllevar una política de acceso y control adecuada al tipo de información. Dentro de Azure podemos utilizar direcciones de enlace temporales para operaciones con ficheros en diversos escenarios. En nuestro caso utilizaremos SAS (Shared Acces Signature) para la descarga directa de archivos de gran volumen, de esta forma además de un mayor control tambien descargaremos de operaciones de entrada/salida a nuestro servidor, permitiendo mayor rapidez de acceso.

La dirección que se genera es del tipo:

https://miespacio.blob.core.windows.net/MiContenedor/MiFichero.zip?sv=2016-05-31&sr=b&sig=Kasdf8mqcgh4NMjQcRaZMTA1bSpXJrajsy404ZkDipE%3D&se=2018-08-27T12%3A10%3A33Z&sp=r

Donde distinguimos a continuación de la dirección URI del recurso un Token formado por:

  • sv: versión de API para ejecutar
  • sr: especificamos B para un blob y C para container
  • se: fecha limite a partir de la cual el enlace expira
  • sp: permisos asociados, en este caso R solo de lectura

Para ver más parámetros adicionales y otras opciones tienes disponible la documentación completa aquí.

CloudStorageAccount cuentaAlmacen = new CloudStorageAccount(new StorageCredentials("miespacio", "clave"), true);
var blobClient = cuentaAlmacen.CreateCloudBlobClient();
		
var container = blobClient.GetContainerReference("MiContenedor");
var blob = container.GetBlockBlobReference("MiFichero.zip");
		
var token = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
    {
Permissions = SharedAccessBlobPermissions.Read,
SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(60),
    }, new SharedAccessBlobHeaders()
    {
ContentDisposition = "attachment; filename="+nombreFichero
    });

var url = string.Format("{0}{1}", blob.Uri, token);
Response.Redirect(url, true);

NOTA: la versión 11 del SDK de Azure está discontinuada, versión adaptada a la v12 aquí.

Forzar sincronización Azure AD Connect

El tiempo mínimo programable para la sincronización entre un entorno local y cloud dentro de las capacidades actuales de Azure Active Directory Connect es de 30 minutos, en ocasiones necesitaremos replicar de manera urgente cambios antes de este tiempo.

Nos aseguraremos de tener el modulo de sincronización con el comando: «Import-Module ADSync» y consultamos la configuracióna actual «Get-ADSyncScheduler«.

El comando «Start-ADSyncSyncCycle Delta» fuerza la sincronización entre el AD local y el Azure AD, realiza la comparación de ambos y solo realiza la actualización de los cambios (DELTA)

Es posible realizar una sincronización completa (FULL) con el comando: 

Start-ADSyncSyncCycle -PolicyType Initial

lo que en algunos escenarios puede llegar a demorarse dependiendo del número de objetos.

Alias de correo electrónico en directorio activo local y Office 365

Si ya hemos realizado la sincronización de usuarios entre nuestro directorio activo local y los servicios cloud de Microsoft en Office 365, es posible que algunas de las cuentas de correo electrónico utilizen alias adicionales al principal.

Desde la consola de administración no es posible realizar los cambios y replicar hacia nuestro directorio en este momento con algunos escenarios de configuración (imagino que a futuro añadirán esta posibilidad), por lo que debemos indicar en nuestro Active Directory manualmente los alias del usuario.

1.- Desde «Usuarios y equipos del directorio Activo» debemos activar la visualización de las «Características avanzadas»

2.- Seleccionamos el usuario al que queremos añadir los alias adicionales de correo, desde la pestaña «Editor de atributos» buscamos la propiedad «proxyAddresses» y vamos añadiendo los alias, de tal forma que «SMTP:micuenta@micorreo.es» en mayúsculas indica la dirección de correo principal y las adicionales deben ir en minúscula «smtp:aliasde@micorreo.es»

Los cambios tardan en replicarse, un mínimo de 30 minutos, segúna la configuración de nuestro conector. Puedes forzar la sincronización para reducir ese tiempo.

Sincronizar contraseñas de Directorio Activo con Office 365 / Azure

Los escenarios de configuración puede ser diversos, en muchos de ellos han ido pasando diferentes administradores con todo lo que ello conlleva. A continuación describiré un escenario simplificado habitual: un directorio activo bajo Windows Server (será necesario actualizar o migrar a 2012 R2 previamente) con un directorio heredado de la empresa con dominio «.local» que debemos sincronizar contraseñas con el correo de Office 365 en Azure.

Lo más habitual es que no todos los usuarios locales tengan cuenta de correo, la compartan, etc. aunque sea esta la tendencia actual en pequeñas empresas.

1.- Descargamos Microsoft Azure Active Directory Connect  y avanzamos en el asistente habitual

2.- En este caso solo vamos a sincronizar contraseñas:

3.- Introducimos las credenciales del usuario administrador de nuestra cuenta Office 365

4.- A continuación las de un usuario con permisos sobre el directorio activo local

5.- En el caso habitual nuestro nombre del directorio local no coincidirá con el del dominio, es posible utilizar para sincronizar otro campo, el más habitual la dirección de email de la cuenta del usuario en el directorio activo local.
NOTA 2022-05-17: en la nueva versión del conector es recomendable tener el UPN del dominio ya configurado antes de continuar con este paso

6.- Utilizaremos la siguiente opción para filtrar y limitar la sincronización en ambas direcciones, crearemos un grupo llamado «CorreoNube» por ejemplo en el que incluimos los usuarios con cuentas en local y correo en Office 365 y pulsamos en Resolver para rellenar automáticamente la cadena

7.- Finalizamos el asistente y acaba la instalación.

En este punto aunque tengamos usuarios dentro del grupo y la sincronización activa y funcionando, no será posible iniciar sesión. En el paso 5 ya nos advertía que no había un dominio en local que fuera igual a los dominios validados en el panel de Office 365. Para corregirlo debemos añadir un nuevo sufijo UPN.

8.- Desde «Dominios y confianzas de Active Directory» pulsamos sobre las propiedades:

9.- Añadimos el nombre de nuestro dominio verificado de Office 365 en la lista, y seleccionamos en la cuenta del usuario:

10.- Ahora si ya podemos utilizar las credenciales en los servicios Cloud, en este caso Office/Outlook y en nuestro ordenador local. Podemos forzar la sincronización en ambos sentidos desde «Syncronization Service Manager»

Si algún usuario posee alias de correo electrónico, debes añadirlas a las propiedades de su cuenta del directorio para sincronizarlas igualmente. Recuerda puede demorar hasta 30 minutos, o puedes forzar a iniciar la sincronización.

Una nube pública segura

El boom alcanzado estos últimos años en los entornos cloud debe ir acompañado de las garantías de seguridad necesarias para el buen funcionamiento y seguridad de la información. Según la normativa ISO/IEC 27018:2014 deben cumplirse y garantizarse varias aspectos a tener en cuenta:

  • El cliente es quien controla sus datos: solo personas autorizadas tienen acceso a la información.
  • Transparencia: conocer donde están alojados los datos, así como cualquier otra tercera empresa que pudiera tener acceso a los data centers, por ejemplo en labores de mantenimiento. En caso de perdida, alteración o revelación de información debe informarse con al información detallada.
  • Alta seguridad: todos los empleados deben cumplir con la mayor confidencialidad asi como los medios técnicos de transmisión sobre redes públicas u otros medios de transporte
  • Tus datos no se usarán para publicidad
  • En caso de petición de un gobierno de acceso a los datos, este debe ser informado
Seguridad Cloud