オフライン発行 (パブリック プレビュー)
概要
Microsoft Information Protection SDK 1.13 で、オフライン発行のサポートが追加されました。 オフライン発行を使用すると、クライアントは、Rights Management サービスへの初期接続を確立した後に、サービスを呼び出すことなく、新しく保護されたコンテンツに対して、公開ライセンスを生成できます。 オフライン保護は、オフライン モードで機能する必要があるアプリケーションや、サービス呼び出しを行わないようにする必要があるアプリケーションに役立ちます。
この機能は、1.13 リリースのパブリック プレビュー中です。 サポートはベスト エフォート ベースで提供され、修正が遅れる可能性があります。
要件
オフライン発行機能には、次の要件があります。
- MIP Protection SDK 1.13 以降。
- Microsoft Purview Information Protection のライセンスを保持するユーザー。 ライセンス要件
- データをオフラインで初期化およびキャッシュするためのインターネット接続。
サポートされていません
次の項目は、オフライン発行機能の一部としてサポートされません。
- Active Directory Rights Management サービスはサポートされません。
- MIP File SDK。 この機能は今後のバージョンでサポートされる予定です。
- 二重キー暗号化 (DKE): DKE 機能は、公開時に公開キーをフェッチするためのサービス呼び出しを行う必要があります。
オフライン発行の使用
オフライン発行には、サービスを呼び出さずにアプリケーションを発行できるようにする、次の 3 つの手順が必要です。
ProtectionProfileSettings
で [オフライン発行設定] を有効にします。- [保護更新速度] を設定します。 この API は、キャッシュされたテンプレートの有効期間を設定します。
GetTemplatesAsync()
または API を呼び出します。
キャッシュの動作
アプリケーションは、更新期間の有効期限が切れるまで、または GetTemplatesAsync()
または GetTemplates()
が呼び出されるまで、テンプレートを取得するサービスに接続しません。 アプリケーションがオフラインで、キャッシュの有効期限が切れている場合は、発行は失敗します。 更新間隔は、エンド ユーザーのオフライン使用とテンプレートの更新状態とのバランスを取る必要があります。 ほとんどのアプリケーションでは、24 時間以下が理想的です。
例
次のコード スニペットは、これらのサンプル アプリケーションから取得されます。
次の手順を完了すると、テンプレート キャッシュの有効期限が切れていない場合は、サービス呼び出しを行わずに公開ライセンスが作成されます。
C++ の例
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);
テンプレートの更新期間の設定 (C++)
// Set the template refresh interval
engineSettings.SetTemplateRefreshArgs(std::chrono::hours(24));
キャッシュを初期化するためのテンプレートのフェッチ (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();
.NET の例
ProtectionProfileSettings の構成 (.NET)
// Initialize ProtectionProfileSettings
var profileSettings = new ProtectionProfileSettings(mipContext,
CacheStorageType.OnDisk,
new ConsentDelegateImplementation());
// Enable Offline Publishing
profileSettings.OfflinePublishing = true;
テンプレートの更新期間の設定 (.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);
キャッシュを初期化するためのテンプレートのフェッチ (.NET)
List<TemplateDescriptor> templates = engine.GetTemplates();
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示