次の方法で共有


ファイル SDK の電子メール メッセージ ファイルの処理

MIP SDK では、電子メール メッセージの復号化と暗号化がサポートされています。 SDK では、Outlook または Exchange によって生成される .msg ファイルと、.rpmsg ファイルの両方がサポートされています (サポートの方法はわずかに異なります)。

このシナリオの一般的なユース ケースは次のとおりです。

  • データ損失防止 (DLP) 検査のためにメールと添付ファイルを復号化する。
  • 基幹業務アプリケーションから保護メッセージを直接公開する。
  • 転送中のメッセージを復号化、変更、および再保護する。
  • DLP またはメール ゲートウェイ サービスからの電子メールにラベルを適用する。

MSG ファイルのサポートに関する声明

MIP SDK では、MSG ファイルの保護アプリケーションと削除がサポートされています。 この形式のさまざまなエンコードの種類および変数が長年にわたり使用されているため、MIP SDK で "すべて" の MSG ファイルから保護を削除できることは保証できません。 次のセクションでは、さまざまなソースからの MSG ファイルのサポート機能について説明します。

  • MIP SDK で保護されていた MSG ファイルからの保護の削除は、完全にサポートされています。
  • 現在サポートされているバージョンの Outlook クライアントで作成された MSG ファイルからの保護の削除は、完全にサポートされています。
  • サポートされていないバージョンの Outlook クライアントで作成された MSG ファイルからの保護の削除は、ベストエフォート ベースでサポートされます。
  • MSG ファイルの再保護は、保護されたラベルでは使用できません。 ユーザーは、別のラベルでファイルを再度保護する前に、保護されたラベルを明示的に保護解除して削除する必要があります。

MSG ファイルのラベル付け

MIP SDK は、MSG ファイルのラベルの読み取りと書き込みをサポートしています。 子添付ファイルはラベルを継承しませんが、保護設定を継承します。 詳細については、ファイル SDK での .msg ファイルのラベル付けと保護の操作を参照してください。

ファイル SDK での .msg ファイルのラベル付けと保護操作

ファイル SDK では、他の種類のファイルと同じ方法での .msg ファイルのラベル付けおよび保護操作がサポートされます。ただし、SDK に MSG 機能フラグを有効にするアプリケーションが必要です。

前に説明したとおり、FileEngine のインスタンス化には、設定オブジェクト FileEngineSettings が必要です。 FileEngineSettings を使用すると、特定のアプリケーションのニーズに合わせてカスタム設定のパラメーターを渡すことができます。 MIP SDK で MSG ファイルを処理できるようにするには、CustomSettings オブジェクトの FileEngineSettings プロパティを使用して、.msg ファイルの処理を有効にするための enable_msg_file_type のフラグを設定します。

FileEngineSettings という オブジェクトを作成した場合は、NET でこのプロパティを次のように設定します。

engineSettings.CustomSettings = new List<KeyValuePair<string, string>>();
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("enable_msg_file_type", "true"));

.msg ファイルの保護操作の擬似コードは、次のようになります。

  • enable_msg_file_typemip::FileEngineSettings フラグを設定し、mip::FileEnginemip::FileProfile を追加します。
  • FileEngine を使用して、ユーザーのラベルの一覧を取得します。
  • ラベルが付けられるファイルを指す mip::FileHandler を構築します。
  • ラベルを選択し、mip::FileHandlerSetLabel メソッドを使用して、そのラベルを適用します。

ラベルを一覧表示する方法については、ラベルの一覧表示に関するクイックスタートを参照してください。

デフォルトの添付ファイル処理動作の変更

デフォルトでは、検査 API を使用する場合、File SDK は MSG ファイルまたは message.rpmsg ファイルの一部であるすべての添付ファイルを処理しようとします。 既定では、ルート レベルの項目と最初のレベルの添付ファイルのみが暗号化解除されます。

この動作を変更するには、カスタム設定 container_decryption_option を使用できます。 C++ では、これは列挙型 (mip::ContainerDecryptionOption) を介して公開されます。

オプション名 説明
All MSG ファイルと添付ファイルを復号化します。 添付ファイルが MSG の場合、MSG とその添付ファイルは再帰的に復号化されます。 mip::BadInputError("Max depth reached on nested msg attachments") をスローする前に最大 10 レベルを再帰します
Default Msgと同じです。
Msg MSG と第 1 レベルの添付ファイルを復号化します。 添付された MSG ファイルを再帰的に復号化しません。
Top MSG ファイルのみを復号化し、添付ファイルの暗号化を解除しません。

次の例は、ルート MSG ファイルのみを復号化するように .NET でアプリケーションを設定する方法を示しています。

engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("container_decryption_option", "Top"));

C++ の場合:

vector<pair<string, string>> customSettings;
customSettings.emplace_back(mip::GetCustomSettingContainerDecryptionOption(),
        mip::ContainerDecryptionOptionString(mip::ContainerDecryptionOption::Top));
engineSettings.SetCustomSettings(customSettings);

.rpmsg ファイルに対するファイル SDK 操作

MIP SDK では、埋め込まれた message.rpmsg ファイルを復号化し、バイト ストリームのセットを出力として表示することができる、検査関数が公開されます。 SDK コンシューマーは、message.rpmsg ファイルを抽出し、検査 API に渡します。 Purview Message Encryption シナリオにはこのファイル名のバリエーションが存在し、API はmessage_v2、v3、または v4 ファイルも受け入れます。

重要

検査 API は、使用可能なファイルとなる出力を提供しません。また、入力ファイルを再保護することもできません。 アプリケーションでさらに処理できるバイト ストリームが出力されます。 MIP SDK では、message.rpmsg ファイルからの MSG ファイルの再作成はサポートされていません。

通常、メール ゲートウェイとデータ損失防止 (DLP) サービスでは、電子メールの転送中に MIME 準拠メッセージが処理されます。 メールが保護されている場合、メッセージの暗号化された内容は添付ファイル message.rpmsg に格納されます。 この添付ファイルには、暗号化された電子メール本文と、元のメッセージの一部であった添付ファイルが含まれています。 次に、この rpmsg ファイルがプレーンテキストのラッパー電子メールに添付され、メール サービスに送信されます。 このメッセージが Exchange または Exchange Online の境界から出ると、送信先に送信できるように、MIME 準拠の形式になります。

ほとんどの場合、DLP サービスでは、DLP ポリシーに照らして検査および評価するために、メッセージから添付ファイルとプレーンテキスト バイトを取得する必要があります。 検査 API は、message.rpmsg を入力として受け取り、バイト ストリームを出力として返します。 これらのバイト ストリームには、メッセージのプレーンテキスト バイトと添付ファイルが含まれています。 アプリケーション開発者は、これらのストリームを処理し、それらに対して有用な操作 (検査や再帰的な復号化など) を実行します。

Inspect API は、クラス mip::FileInspector を使用して実装されます。このクラスにより、サポートされているファイルの種類を検査する操作が公開されます。 mip::MsgInspector を拡張する mip::FileInspector により、rpmsg ファイル形式に固有の復号化操作が公開されます。 MIP SDK は、message.rpmsg ファイルの公開シナリオをサポートしていません。 さらに、FileHandler::RemoveProtection() API は message.rpmsg ファイルをサポートしていません。 Message.rpmsg フィルは、検査用にのみ復号化でき、使用できる有効なファイルは出力されません。 アプリケーションでファイル出力が必要な場合は、MSG ファイルを渡し、そのオブジェクトから保護を削除する必要があります。

mip::MsgInspector クラスにより、以下のメンバーが公開されます。

public const std::vector<uint8_t>& GetBody()
public BodyType GetBodyType() const
public BodyType GetBodyType() const
public InspectorType GetInspectorType() const
public std::shared_ptr<Stream> GetFileStream() const

詳細については、C++ 用 Microsoft Information Protection (MIP) SDK: リファレンスを参照してください。

次のステップ