Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La publication hors connexion permet à un client, après avoir effectué une connexion initiale au service rights management, de générer des licences de publication pour le contenu nouvellement protégé sans passer d’appel de service. Cela est utile pour les applications qui doivent fonctionner en mode hors connexion ou qui souhaitent éviter d’effectuer des appels de service.
Spécifications
La fonctionnalité de publication hors connexion présente les exigences suivantes :
- Version prise en charge du Kit de développement logiciel (SDK) MIP.
- Un utilisateur disposant d’une licence pour Microsoft Purview Information Protection. Exigences en termes de licence
- Connectivité Internet pour que l’application initialise et met en cache les données hors connexion.
Non pris en charge
Les éléments suivants ne sont pas pris en charge dans le cadre de la fonctionnalité de publication hors connexion :
- Active Directory Rights Management Services (AD RMS) n’est pas pris en charge.
- Chiffrement double clé (DKE) : la fonctionnalité DKE doit effectuer un appel de service pour récupérer la clé publique lors de la publication.
Utilisation de la publication hors connexion avec le SDK de Protection
La publication hors connexion nécessite trois étapes pour permettre à l’application de publier sans appeler le service :
- Activez le paramètre de publication hors connexion sur les paramètres de profil (pour le Kit de développement logiciel (SDK) applicable.
- Définissez le taux d’actualisation du modèle. Cette API définit la période de validité des modèles mis en cache.
- Appelez les API de récupération de modèle pour remplir le cache (
GetTemplatesAsync()ouGetTemplates()).
Utilisation de la publication hors connexion avec le Kit de développement logiciel (SDK) de fichier
Le SDK File utilise la publication hors connexion par défaut et ne nécessite aucune configuration initiale ni configuration supplémentaire.
Comportement de mise en cache
Une application ne contactera pas le service pour obtenir des modèles tant que la période d'actualisation n'aura pas expiré ou tant que GetTemplatesAsync() ou GetTemplates() n'aura pas été appelé. Si l’application est hors connexion et que le cache a expiré, la publication échoue. L’intervalle d’actualisation doit équilibrer l’utilisation hors connexion pour les utilisateurs finaux et s’assurer que les modèles sont actualisés. Pour la plupart des applications, 24 heures ou moins, est idéale.
Exemples
Les extraits de code suivants sont extraits de ces exemples d’applications :
Une fois les étapes suivantes effectuées, la création d’une licence de publication se produit sans effectuer d’appel de service si le cache de modèles n’a pas expiré.
Exemple C++
Configurer les paramètres du profil de protection (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);
Définir la période d’actualisation du modèle (C++)
// Set the template refresh interval
engineSettings.SetTemplateRefreshArgs(std::chrono::hours(24));
Récupérer des modèles pour initialiser le 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();
Exemple .NET
Configurer les paramètres de ProtectionProfile (.NET)
// Initialize ProtectionProfileSettings
var profileSettings = new ProtectionProfileSettings(mipContext,
CacheStorageType.OnDisk,
new ConsentDelegateImplementation());
// Enable Offline Publishing
profileSettings.OfflinePublishing = true;
Définir la période d’actualisation du modèle (.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);
Récupérer des modèles pour initialiser le cache (.NET)
List<TemplateDescriptor> templates = engine.GetTemplates();
Exemple Java
Configurer ProtectionProfileSettings (Java)
ProtectionProfileSettings profileSettings = new ProtectionProfileSettings();
profileSettings.setMipContext(mipContext);
profileSettings.setCacheStorageType(CacheStorageType.ON_DISK);
profileSettings.setConsentDelegate(new ConsentDelegateImplementation());
// Enable Offline Publishing
profileSettings.setOfflinePublishing(true);
Définir la période d’actualisation du modèle (Java)
ProtectionEngineSettings engineSettings = new ProtectionEngineSettings(identity.getEmail(), authDelegate, "", "");
engineSettings.setIdentity(identity);
// Set the template refresh interval in hours
engineSettings.setTemplateRefreshRate(Duration.ofHours(24));
Récupérer des modèles pour initialiser le cache (Java)
List<TemplateDescriptor> templates = engine.getTemplates();