Share via


オフライン発行 (パブリック プレビュー)

概要

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 つの手順が必要です。

  1. ProtectionProfileSettings で [オフライン発行設定] を有効にします。
  2. [保護更新速度] を設定します。 この API は、キャッシュされたテンプレートの有効期間を設定します。
  3. 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();