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 parametros 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);

 


Autenticación doble en aplicaciones Office 365 y Outlook.com

La autenticación de doble factor añade una seguridad adicional a nuestra cuentas siempre conectadas. No es infalible pero si necesaria para datos/operaciones críticas, el juego del gato y el ratón en seguridad es continuo, como Hesperbot.

Actualmente podemos:

La opción más ágil es a traves de la aplicación Microsoft Authenticator, despues del baile de nombres que ha sufrido la app, esta disponible para Android, Windows y iPhone nos mostrará un código o un mensaje de aceptación según prefiramos.

En el caso de las cuentas de Microsoft, es necesario diferenciar las de Office 365 empresarial y las de Outlook/Live el proceso de configuración y creación de contraseñas para aplicaciones no compatibles es diferente a día de hoy:

Office 365 -> Configuración -> Seguridad y Privacidad -> "Actualice los número de teléfono que usa para la seguridad de la cuenta"

No es una opción muy destacada en la configuración, debería tener su propia sección o aparecer más claramente pero bueno...

En la parte superior aparecerá la opción "Contraseñas de aplicación" donde podemos dar un nombre para identificar donde hemos usado la contraseña. Una vez creada no es posible volver a verla, solo podremos eliminarla y volver a crear otra:

NOTA: En el caso de realizar la configuración de la app por primera vez, deberemos seguir el asistente inicial desde el botón "Configurar"

Con Office 365 nos permite dar nombre a las contraseñas:

 

URL para Office 365: https://account.activedirectory.windowsazure.com/AppPasswords.aspx

URL para Outlook/live: https://account.live.com/proofs/AppPassword

 

 

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.

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