COM+ 安全性概念

COM+ 提供數個安全性功能,可讓您用來協助保護 COM+ 應用程式,範圍從系統管理設定的服務到您可以在程式代碼內呼叫的 API。

可能的話,針對 COM+ 應用程式,最好使用自動安全性,例如宣告式角色型安全性和驗證,而不是在元件內設定安全性。 使用自動安全性可讓您更輕鬆地撰寫和維護元件、更輕鬆地設計整個應用程式的安全性,而且,因為它在系統管理上設定,更容易修改應用程式的安全策略。 這些自動安全性服務可讓您將所有安全性相關功能排除在元件外。 當您可以開啟服務並適當地進行設定時,COM+ 會處理強制執行您指定之安全策略的詳細數據。

不過,當 COM+ 中的自動安全性服務無法精確執行您需要執行的動作時,您可以擴充它們,以 COM+ 所提供的自動安全性平台為基礎。 如果您選擇不使用自動安全性,或想要使用它的位置,但需要建置它以符合應用程式的安全性需求,您有下列選項可透過程式設計方式設定安全性:

  • 以程式設計方式的角色型安全性,例如角色檢查,可在應用程式啟用角色型安全性時使用。
  • 模擬 - 當您想要使用用戶端的身分識別來存取受保護的資源時。
  • 根據安全性呼叫內容資訊稽核功能,也可以在啟用角色型安全性時使用。

您用來協助保護指定應用程式的機制將取決於該應用程式的特定需求。 某些安全性選擇可能會影響您撰寫元件的方式,有些選項可能會大幅影響應用程式的設計。 在決定如何為應用程式實作安全性策略之前,您應該在整體設計內容中考慮其安全性需求,即效能需求、數據存取、實體設計,然後選擇最適合的安全性功能組合。 如需實作程式設計安全性的詳細資訊,請參閱 以程式設計元件安全性

這裡提供 COM+ 安全性類別、功能及問題的簡短描述,本節中的主題連結提供每個重要領域的詳細討論。

注意

雖然本節中並未討論,但佇列元件也有與哪些安全性功能相關的特定問題。 如需詳細資訊,請參閱佇列元件安全性和開發佇列元件

 

以角色為基礎的安全性

角色型安全性是 COM+ 應用程式安全性的核心功能。 您可以使用角色,以系統管理方式建構應用程式的授權原則,並視需要選擇(視需要向下至方法層級),讓使用者可以存取哪些資源。 此外,如果應用程式需要更精細的訪問控制,角色會提供在程式代碼內強制執行安全性檢查的架構。

以角色為基礎的安全性是以一般機制為基礎,可讓您擷取元件呼叫鏈結中所有上游呼叫者的安全性資訊。 這項功能特別有用,特別是如果您想要進行詳細的稽核和記錄。 如需 COM+ 所提供的稽核功能描述,請參閱 存取安全性呼叫內容資訊

如需使用角色型安全性和系統管理問題的描述,請參閱角色型安全性 管理員 管理

用戶端驗證

在您可以授權客戶端能夠存取資源之前,您必須確定他們是誰。 若要啟用此身分識別驗證,COM+ 會提供驗證服務。 雖然這些服務實際上由 COM 和 Microsoft Windows 提供於更基本層級,但 COM+ 應用程式可讓您直接在系統管理上開啟驗證服務,讓其運作在涵蓋範圍之下,對應用程式而言是透明的。 如需驗證服務的描述,請參閱 客戶端驗證

用戶端模擬和委派

在某些情況下,您的應用程式必須使用用戶端的身分識別來代表用戶端執行工作,例如,存取要驗證原始客戶端的資料庫時。 這需要您的應用程式模擬用戶端。 COM+ 提供啟用各種模擬層級的設施。 仿真是以系統管理方式設定,但您也必須支援使用應用程式元件的程式代碼進行模擬。 如需模擬及其使用問題的描述,請參閱 用戶端模擬和委派

在 COM+ 中使用軟體限制原則

軟體限制原則可讓您在受限制的環境中執行不受信任且可能有害的程式代碼,使其無法濫用用戶的許可權。 其方式是將信任層級指派給使用者可以執行的檔案。 例如,某些系統檔案可以完全信任,並給予不受限制的使用者許可權存取權,而從因特網下載的檔案可能完全不受信任,因此只能在不允許使用任何安全性敏感性使用者許可權的限制環境中執行。

全系統軟體限制原則是透過本機安全策略系統管理工具來控制,可讓系統管理員設定個別檔案的信任等級。 不過,所有 COM+ 伺服器應用程式都會在 dllhost.exe 檔案中執行。 因此,COM+ 提供一種方式來指定每個伺服器應用程式的軟體限制原則,因此它們不需要相依於dllhost.exe檔案的限制原則。 如需如何在 COM+ 中使用軟體限制原則的討論,請參閱 在 COM+ 中使用軟體限制原則。

連結庫應用程式安全性

連結庫應用程式有特殊的安全性考慮。 由於這些應用程式會在客戶端的進程中執行,因此受裝載進程強制執行的安全性影響,而無法控制進程層級安全性。 如需連結庫應用程式考慮的因素描述,請參閱 連結庫應用程式安全性

多層式應用程式安全性

COM+ 應用程式通常是仲介層應用程式;也就是說,他們會在用戶端與後端資源之間移動資訊,例如資料庫。 很難的選擇可以涉及判斷應強制執行安全性的位置,以及何種程度。 安全性原本就牽涉到效能取捨。 當您必須在數據層和仲介層強制執行安全性檢查時,會發生其中一些最嚴重的情況。 如需要考慮的問題討論,請參閱 多層式應用程式安全性

客戶端驗證

用戶端模擬和委派

COM+ 安全性工作

連結庫應用程式安全性

多層式應用程式安全性

程序設計元件安全性

角色型安全性 管理員

在 COM+ 中使用軟體限制原則