這個快速入門說明如何透過使用 MIP SDK 實作對 Active Directory 權利管理伺服器(AD RMS)的支援。
備註
本快速入門中所述的步驟僅適用於 C# 或 C++ 的 File SDK 以及 C++ 的 Protection SDK。
先決條件
如果您還沒有,請務必:
- 請先完成 快速入門:用戶端應用程式初始化 (C++),其中會建置入門 Visual Studio 解決方案。
- 完整快速入門:列出敏感度標籤(C++)或快速入門:列出敏感度標籤(C#)。
- 使用 行動裝置延伸模組部署 AD RMS。
- 或者,請確定已發佈 AD RMS MDE 的 DNS SRV 記錄 。
服務探索
當您未明確提供服務 URL 時,MIP SDK 會自動探索 FileEngine 或 ProtectionEngine 的內部部署服務端點。 它會使用經由 FileEngineSettings 或 ProtectionEngineSettings 提供的使用者身分,並採用 UPN 或電子郵件地址尾碼。 它會先在網域階層中搜尋 MDE 的 _rmsdisco 記錄。 欲了解更多此流程資訊,請參閱 「指定 AD RMS 行動裝置擴充功能的 DNS SRV 紀錄」。 如果找不到該 DNS SRV 記錄,則預設為 Microsoft Purview 資訊保護服務作為服務位置。
在 C# 中設定檔案 SDK 以使用 AD RMS
如果你的應用程式使用 Microsoft 驗證資源庫(MSAL.NET)和 C# 上的檔案 SDK,則需要做兩個小改動。 更新FileEngineSettings物件及您的 MSAL 權限設定,使其能與 AD RMS 及 Active Directory 同盟服務(AD FS)相容。
備註
Active Directory 認證函式庫(ADAL)已被棄用。 新的應用程式應該使用 MSAL。 背景說明請參見「更新您的應用程式以使用 Microsoft 驗證資源庫 與 Microsoft 圖形 API」。
如果您已部署行動裝置延伸模組 DNS SRV 記錄,並計劃傳入使用者主體名稱或電子郵件地址,請遵循使用身分識別的指示。
更新檔案引擎設定,使用帶有身份的 AD RMS
如果你發布了 MDE 的 DNS SRV 記錄,並在引擎設定中提供 Microsoft.InformationProtection.Identity ,唯一需要的程式碼變更就是設定 FileEngineSettings.ProtectionOnlyEngine = true。 你必須設定這個屬性,因為 AD RMS 保護端點不支援標籤(政策)操作。
// Configure FileEngineSettings as protection only engine.
var engineSettings = new FileEngineSettings("", authDelegate, "", "en-US")
{
// Provide the identity for service discovery.
Identity = identity,
// Set ProtectionOnlyEngine to true for AD RMS as labeling isn't supported
ProtectionOnlyEngine = true
};
更新驗證委派
如果您在 .NET 應用程式中使用 MSAL.NET,請將公用用戶端應用程式設定為在目標為 AD FS 授權單位時略過授權單位驗證。 在 PublicClientApplicationBuilder 上設定 WithAuthority(authority, validateAuthority: false):
var app = PublicClientApplicationBuilder
.Create(clientId)
.WithAuthority(authority, validateAuthority: false)
.WithRedirectUri(redirectUri)
.Build();
如果您維護的是仍在使用已淘汰的 Active Directory Authentication Library (ADAL) 的舊版應用程式,則對應的變更是在 AuthenticationContext 建構函式中,將 false 傳遞給 validateAuthority。 計畫將這些程式碼遷移到 MSAL。
在 C++ 中設定檔案 SDK 以使用 AD RMS
如果您已部署行動裝置延伸模組 DNS SRV 記錄,並計劃傳入使用者主體名稱或電子郵件地址,請遵循使用身分識別的指示。
更新 FileEngine::Settings 以使用 AD RMS 並附有身份
如果你發布了 MDE 的 DNS SRV 記錄,並且在 FileEngine::Settings中提供了mip::Identity,唯一的操作就是將引擎設定為僅保護引擎。
FileEngine::Settings engineSettings(mip::Identity(mUsername), authDelegate, "");
engineSettings.SetProtectionOnlyEngine(true);
在 C++ 中設定保護 SDK 以使用 AD RMS
如果您已部署行動裝置延伸模組 DNS SRV 記錄,並計劃傳入使用者主體名稱或電子郵件地址,請遵循使用身分識別的指示。
將 ProtectionEngine::Settings 設定為使用 AD RMS 並設定身份
如果您已發佈適用於行動裝置擴充功能的 DNS SRV 記錄,並且在 ProtectionEngine::Settings 中提供識別身分,則不需要進行額外的程式碼變更即可使用 AD RMS。 服務探索會找出 AD RMS 端點,並使用該端點來執行保護作業。
ProtectionEngine::Settings engineSettings(mip::Identity(mUsername), authDelegate, "");
移除或註解標籤參照
如果你是根據其中一份快速入門指南來建立應用程式,你會發現你的應用程式包含形式為 fileEngine.SensitivityLabels 或 engine->ListSensitivityLabels(); 的標籤參照。 因為你將應用程式設為僅保護模式,請將這些程式碼區塊註解掉或移除。 執行這些規則會產生例外。
下一步
現在您已進行變更以支援 AD RMS,您的應用程式可以使用 AD RMS 服務作為保護提供者來執行任何僅限保護的作業。