Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 que desejam evitar fazer chamadas de serviço.
Requirements
O recurso de publicação offline tem os seguintes requisitos:
- Uma versão com suporte do SDK do MIP.
- Um usuário licenciado para a Proteção de Informações do Microsoft Purview. Requisitos de licenciamento
- Conectividade com a Internet para o aplicativo inicializar e armazenar dados em cache offline.
Sem suporte
Não há suporte para os seguintes itens como parte do recurso de publicação offline:
- Não há suporte para o AD RMS (Active Directory Rights Management Services).
- DKE (Criptografia de Chave Dupla): A funcionalidade DKE deve fazer uma chamada de serviço para buscar a chave pública ao publicar.
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 Arquivos
O SDK de Arquivo usa a publicação offline por padrão e não requer nenhuma configuração ou configuração adicional.
Comportamento de cache
Um aplicativo não entrará em contato com o serviço para obter modelos até que o período de atualização tenha expirado ou até que GetTemplatesAsync() ou GetTemplates() sejam chamados. Se o aplicativo estiver offline e o cache tiver expirado, a publicação falhará. O intervalo de atualização deve atingir um equilíbrio entre o uso offline para os usuários finais e garantir que os modelos sejam atualizados. Para a maioria dos aplicativos, 24 horas ou menos, é ideal.
Exemplos
Os seguintes snippets de código são obtidos destes 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 as configurações de ProtectionProfile (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 o 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 modelos para inicializar o cache (Java)
List<TemplateDescriptor> templates = engine.getTemplates();