Cifrado de la API de migración de OneDrive para la Empresa y SharePoint Online

Para usar la API de migración, debe tener un contenedor de almacenamiento temporal en Azure. Este contenedor de Azure solo lo puede abrir alguien que tenga un acceso de clave SAS al contenedor. El objetivo de esta característica es permitir pasar contenido cifrado en reposo a la API, lo que significa que incluso si un usuario malintencionado tiene acceso al contenedor, no podrá usar su contenido.

¿Qué se almacena en el contenedor de blobs de Azure?

La API de migración necesita el contenedor de Azure para el paso de contenido y también para crear informes de registro y cola. En resumen, se puede dividir en esos depósitos como sigue:

Contenido

  • Archivos
  • Manifesto
    • Metadatos
    • Permisos
    • Elementos de lista
    • Taxonomía
    • Registros (creados por SharePoint Online para informar sobre los resultados de la migración)
  • Cola
    • Creación de informes en tiempo real sobre el progreso

¿Qué es la característica de cifrado?

Al usar el parámetro de cifrado, todo lo que se enumeró anteriormente se cifra en reposo y la clave deberá conservarse para leer los registros y el progreso en tiempo real.

La principal ventaja es convertir el contenido en inútil para un usuario malintencionado que consiga entrar en el contenedor de Azure.

Esto implica un pequeño precio de rendimiento. Esta característica es opcional al usar la API y se recomienda usarla solo para la información más confidencial ya que reduce la velocidad de la migración en un pequeño porcentaje. Microsoft destruye la clave una vez que finaliza el trabajo de migración y no hay ninguna forma de recuperar la clave si la pierde, ni siquiera mediante el soporte técnico.

¿Como desarrollador de terceros, cómo puedo sacar provecho de la característica de cifrado?

Llamar a la API

El método para llamar al trabajo de migración tiene un nombre diferente y un parámetro adicional al final. El nuevo nombre es: CreateMigrationJobEncrypted

El nuevo parámetro es: EncryptionOption

Por ahora, sólo admite recibir una clave de cifrado AES256CBC.

Ejemplo:

    public Guid CreateMigrationJobEncrypted(
        Guid gWebId,
        string azureContainerSourceUri,
        string azureContainerManifestUri,
        string azureQueueReportUri,
        EncryptionOption AES256CBCKey)

Requisito adicional

Para el cifrado, cada archivo debe cifrarse y tener un IV asignado. El método de cifrado debería seguir el estándar AES CBC 256. Se debe generar un IV único y criptográfico aleatorio para cada archivo, incluidos los manifiestos del paquete, y se debe almacenar como una propiedad en cada archivo. Use el método AesCryptoServiceProvider.GenerateIV para generar un IV aleatorio único para cada archivo.

  • Nombre: [IV]
  • Valor: [Matriz de bytes codificada en Base64 del IV]

Lectura de la cola cuando está cifrada

Al usar la opción de cifrado, los mensajes en la cola también se cifrarán.

Es importante que recuerde el identificador del trabajo. Sin la clave específica utilizada para el trabajo, no podrá leer el mensaje de nuevo.

Este es el contenido JSON en el mensaje de cola

{"Label": "Encrypted"},
{"JobId": "[JobId value]"},
{"IV": "[IV value in base64format]"},
{"Content": "[encrypted message in base64string]"}

Cuando se descifran los mensajes serán iguales a la API sin cifrado.

Nota:

La migración no está disponible para los usuarios de Office 365 operados por 21Vianet en China. Tampoco está disponible para los usuarios de Office 365 con la nube de Alemania que usan el administrador de datos Telekom alemán. Pero es compatible con los usuarios de Alemania cuya ubicación de datos no se encuentra en el centro de datos alemán.