Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A publicação offline permite que um cliente, depois de fazer uma conexão inicial com o serviço de gerenciamento de direitos, gere licenças de publicação para conteúdo recém-protegido sem fazer uma chamada de serviço. Isso é útil para aplicativos que precisam funcionar em um modo offline ou querem evitar fazer chamadas de serviço.
Requerimentos
O recurso de publicação offline tem os seguintes requisitos:
- Uma versão suportada do MIP SDK.
- Um usuário licenciado para o Microsoft Purview Information Protection. Requisitos de licenciamento
- Conectividade com a Internet para o aplicativo inicializar e armazenar dados em cache offline.
Não suportado
Os seguintes itens não são suportados como parte do recurso de publicação offline:
- Não há suporte para o Ative Directory Rights Management Services (AD RMS).
- Criptografia de chave dupla (DKE): o recurso DKE deve fazer uma chamada de serviço para buscar a chave pública durante a publicação.
Usando a publicação offline com o SDK de proteção
A publicação offline requer três etapas para permitir que o aplicativo publique sem chamar o serviço:
- Habilite a configuração de publicação offline nas configurações de perfil (para o SDK aplicável).
- Defina a taxa de atualização do modelo. Essa API define o período de validade para os modelos armazenados em cache.
- Chame as APIs de recuperação de modelo para preencher o cache (
GetTemplatesAsync()ouGetTemplates()).
Usando a publicação offline com o SDK de arquivo
O SDK de arquivo usa a publicação offline por padrão e não requer nenhuma instalação ou configuração adicional.
Comportamento de cache
Uma aplicação não entrará em contato com o serviço para obter modelos até que o período de atualização tenha expirado ou até GetTemplatesAsync() ou GetTemplates() serem chamados. Se o aplicativo estiver offline e o cache tiver expirado, a publicação falhará. O intervalo de atualização deve encontrar um equilíbrio entre o uso offline para usuários finais e garantir que os modelos sejam atualizados. Para a maioria das aplicações, 24 horas, ou menos, é o ideal.
Exemplos
Os seguintes trechos de código são retirados desses aplicativos de exemplo:
Depois de concluir as etapas a seguir, a criação de uma licença de publicação ocorrerá sem fazer uma chamada de serviço se o cache de modelos não tiver expirado.
Exemplo de C++
Configurar 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);
Definir o período de atualização do modelo (C++)
// Set the template refresh interval
engineSettings.SetTemplateRefreshArgs(std::chrono::hours(24));
Buscar modelos para inicializar o cache (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();
Exemplo do .NET
Configurar ProtectionProfileSettings (.NET)
// Initialize ProtectionProfileSettings
var profileSettings = new ProtectionProfileSettings(mipContext,
CacheStorageType.OnDisk,
new ConsentDelegateImplementation());
// Enable Offline Publishing
profileSettings.OfflinePublishing = true;
Definir período de atualização do modelo (.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);
Buscar modelos para inicializar o cache (.NET)
List<TemplateDescriptor> templates = engine.GetTemplates();
Exemplo de Java
Configurar ProtectionProfileSettings (Java)
ProtectionProfileSettings profileSettings = new ProtectionProfileSettings();
profileSettings.setMipContext(mipContext);
profileSettings.setCacheStorageType(CacheStorageType.ON_DISK);
profileSettings.setConsentDelegate(new ConsentDelegateImplementation());
// Enable Offline Publishing
profileSettings.setOfflinePublishing(true);
Definir o período de atualização do modelo (Java)
ProtectionEngineSettings engineSettings = new ProtectionEngineSettings(identity.getEmail(), authDelegate, "", "");
engineSettings.setIdentity(identity);
// Set the template refresh interval in hours
engineSettings.setTemplateRefreshRate(Duration.ofHours(24));
Buscar templates para inicializar a cache (Java)
List<TemplateDescriptor> templates = engine.getTemplates();