Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La publicación sin conexión permite a un cliente, después de realizar una conexión inicial con el servicio de administración de derechos, generar licencias de publicación para contenido recién protegido sin realizar una llamada de servicio. Esto es útil para las aplicaciones que necesitan funcionar en modo sin conexión o que desean evitar realizar llamadas de servicio.
Requisitos
La característica de publicación sin conexión tiene los siguientes requisitos:
- Una versión compatible del SDK de MIP.
- Un usuario con licencia para Microsoft Purview Information Protection. Requisitos de concesión de licencia
- Conectividad a Internet para que la aplicación inicialice y almacene datos en caché sin conexión.
No está soportado
Los siguientes elementos no se admiten como parte de la característica de publicación sin conexión:
- No se admite Active Directory Rights Management Services (AD RMS).
- Cifrado de clave doble (DKE): la característica DKE debe realizar una llamada de servicio para obtener la clave pública en la fase de publicación.
Uso de la publicación sin conexión con el SDK de protección
La publicación sin conexión requiere tres pasos para permitir que la aplicación publique sin llamar al servicio:
- Habilite la configuración de publicación sin conexión en la configuración del perfil (para el SDK aplicable).
- Establezca la frecuencia de actualización de la plantilla. Esta API establece el período de validez de las plantillas almacenadas en caché.
- Llame a las API de recuperación de plantillas para rellenar la memoria caché (
GetTemplatesAsync()oGetTemplates()).
Uso de la publicación sin conexión con el SDK de archivos
El SDK de archivos usa la publicación sin conexión de forma predeterminada y no requiere ninguna configuración ni configuración adicional.
Comportamiento de almacenamiento en caché
Una aplicación no se comunicará con el servicio para obtener plantillas hasta que el período de actualización haya expirado o hasta se llame a GetTemplatesAsync() o GetTemplates(). Si la aplicación está sin conexión y la memoria caché ha expirado, se producirá un error en la publicación. El intervalo de actualización debe alcanzar un equilibrio entre el uso sin conexión para los usuarios finales y asegurarse de que las plantillas estén actualizadas. Para la mayoría de las aplicaciones, 24 horas o menos, es ideal.
Ejemplos
Los fragmentos de código siguientes se toman de estas aplicaciones de ejemplo:
Después de completar los pasos siguientes, la creación de una licencia de publicación se producirá sin realizar una llamada de servicio si la caché de plantillas no ha expirado.
Ejemplo de C++
Configuración de ProtectionProfileSettings (C++)
// Initialize ProtectionProfileSettings using MipContext
ProtectionProfile::Settings profileSettings(mMipContext,
mip::CacheStorageType::OnDiskEncrypted,
::make_shared<sample::consent::ConsentDelegateImpl>(),
std::make_shared<ProtectionProfileObserverImpl>()
);
// Enable Offline Publishing
profileSettings.SetOfflinePublishing(true);
Establecer el período de actualización de la plantilla (C++)
// Set the template refresh interval
engineSettings.SetTemplateRefreshArgs(std::chrono::hours(24));
Capturar plantillas para inicializar la memoria caché (C++)
auto loadPromise = std::make_shared<std::promise<vector<shared_ptr<mip::TemplateDescriptor>>>>();
std::future<vector<shared_ptr<mip::TemplateDescriptor>>> loadFuture = loadPromise->get_future();
mEngine->GetTemplatesAsync(engineObserver, loadPromise);
auto templates = loadFuture.get();
Ejemplo de .NET
Configuración de los parámetros de ProtectionProfileSettings (.NET)
// Initialize ProtectionProfileSettings
var profileSettings = new ProtectionProfileSettings(mipContext,
CacheStorageType.OnDisk,
new ConsentDelegateImplementation());
// Enable Offline Publishing
profileSettings.OfflinePublishing = true;
Establecimiento del período de actualización de plantillas (.NET)
// Initialize ProtectionEngineSettings
var engineSettings = new ProtectionEngineSettings(identity.Email, authDelegate, "", "")
{
Identity = identity
};
// Set the template refresh interval
engineSettings.TemplateRefreshRate = new TimeSpan(24, 0, 0);
var engine = profile.AddEngine(engineSettings);
Captura de plantillas para inicializar la memoria caché (.NET)
List<TemplateDescriptor> templates = engine.GetTemplates();
Ejemplo de Java
Configuración de ProtectionProfileSettings (Java)
ProtectionProfileSettings profileSettings = new ProtectionProfileSettings();
profileSettings.setMipContext(mipContext);
profileSettings.setCacheStorageType(CacheStorageType.ON_DISK);
profileSettings.setConsentDelegate(new ConsentDelegateImplementation());
// Enable Offline Publishing
profileSettings.setOfflinePublishing(true);
Establecer el período de actualización de la plantilla (Java)
ProtectionEngineSettings engineSettings = new ProtectionEngineSettings(identity.getEmail(), authDelegate, "", "");
engineSettings.setIdentity(identity);
// Set the template refresh interval in hours
engineSettings.setTemplateRefreshRate(Duration.ofHours(24));
Captura de plantillas para inicializar la memoria caché (Java)
List<TemplateDescriptor> templates = engine.getTemplates();