檔案 SDK 電子郵件訊息檔處理
MIP SDK 支援電子郵件訊息的解密和加密。 SDK 支援.msg檔案,由 Outlook 或 Exchange 產生,而 .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
來設定 旗標 enable_msg_file_type
,以啟用.msg檔案的處理。
如果您已建立 FileEngineSettings
名為 engineSettings 的物件,您會在 .NET 中設定此屬性,如下所示:
engineSettings.CustomSettings = new List<KeyValuePair<string, string>>();
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("enable_msg_file_type", "true"));
.msg檔案保護作業虛擬程式碼看起來可能像這樣:
- 在 中
mip::FileEngineSettings
設定enable_msg_file_type
旗標,並將 新增mip::FileEngine
至mip::FileProfile
。 FileEngine
使用 來擷取使用者的標籤清單。- 建構
mip::FileHandler
,指向要標記的檔案。 - 選取標籤並使用
mip::FileHandler
的SetLabel
方法來套用標籤。
變更預設附件處理行為
根據預設,檔案 SDK 會在使用檢查 API 時,嘗試處理屬於 MSG 檔案的所有附件,或 message.rpmsg 檔案。 它不會遞歸解密附加至根 MSG 之 MSG 檔案的附件。 目前不支援修改默認處理行為。
.rpmsg 檔案的檔案 SDK 作業
MIP SDK 公開可解密內嵌 message.rpmsg 檔案的檢查函式,並將一組位元組數據流呈現為輸出。 由 SDK 取用者來擷取 message.rpmsg 檔案,並將其傳遞至檢查 API。 Office 郵件加密案例中存在此檔名的變化,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
如需詳細資訊,請參閱 Microsoft 資訊保護 資訊保護 SDK for C++:參考。