共用方式為


保護主控與持續性的安全

持續性儲存區是 Microsoft AppFabric 1.1 for Windows Server 架構的關鍵部分。此儲存區支援 Windows Workflow Foundation (WF) 執行個體的持續性功能,可用來保存執行個體的各種狀態。您可以使用 AppFabric 中的系統管理工具來操作持續性工作流程服務執行個體。您必須提供持續性儲存區的權限給執行系統管理工具的 AppFabric 使用者以及執行階段的應用程式,他們/它們才能讀取/寫入此資料儲存區。您也必須在管理與應用程式範圍等級控制對於持續性儲存區的存取權。

何處會發生主控應用程式的狀況,是一項重要的安全性考量。應用程式隔離可保護資料不被其他應用程式檢視或存取。此外,控制應用程式的身分識別以存取下游資源,是 AppFabric 資訊安全模型的關鍵部分。此身分識別會影響應用程式嘗試存取持續性儲存區時所使用的安全性主體。

主控與持續性屬於應用程式與管理範圍,必須在各自的領域中以不同方式保護。納入不同安全性群組可指定特定權限。應用程式安全性範圍會影響應用程式在執行階段的權限,而且對應到「應用程式伺服器使用者」概念性角色。管理安全性範圍會影響系統管理員與系統服務可執行的工具與相關操作。這些權限對應到「應用程式伺服器系統管理員」與「應用程式伺服器操作員」概念性角色。

保護持續性資料的安全

當服務的執行個體持續時,其系統狀態會儲存在持續性儲存區中。應用程式通常會收集並傳送個人識別資訊或其他機密資料。當該資料包含於服務持續時的應用程式狀態中時,它會被儲存在持續性儲存區中。許多伺服器、網站與應用程式可能會共用單一持續性儲存區。依照設計,持續性資料會在共用儲存區的伺服器與網站之間彙總,在一個服務可能就有數千個執行個體的大型環境中,就能更輕鬆地管理活動狀態。這使得服務的執行個體可在一部 AppFabric 伺服器上持續執行,而如果有負載平衡條件要求時,又可繼續於另一部伺服器上執行。

當資料儲存於持續性儲存區後,AS_Administrators 資料庫角色的所有成員與 SQL Server sysadmin 及 dbo 角色的所有成員都可看見資料。由於持續性資料容易在不經意或刻意的情況下洩漏,您必須妥善管理權限以降低此風險。

您可以使用下列方式來保護持續性儲存區中的資料:

  • **使用不同的持續性儲存區。**您可以使用 AppFabric Cmdlet 來建立儲存區,並使用 AppFabric 的 [持續性資料庫設定] 頁面來設定,以在相同或不同的伺服器上建立並設定額外的持續性儲存區。您接著可以設定只有特定應用程式可使用該儲存區。這樣可讓應用程式擁有專屬的持續性資料儲存區 (其他應用程式無法存取)。

  • **將持續性與監控儲存區分散到兩個不同的儲存區。**根據預設值,安裝期間會在 DefaultApplicationServerExtensions 儲存區中建立持續性與監控儲存區的資料表與實體。您可以讓一個儲存區是持續性專用,另一個則是監控專用。此作法可讓管理與應用程式範圍的應用程式和使用者不致於因為可存取單一雙重儲存區,便因此可同時存取持續性與監控的所有資料表。

  • **使用 Windows 群組與 SQL Server 角色。**SQL Server 持續性儲存區的存取是透過 SQL Server 資料庫角色實作。在初始化執行個體儲存區期間,系統管理員可以將 Windows 群組插入「執行個體儲存區使用者」、「執行個體儲存區讀者」與「執行個體儲存區系統管理員」SQL 角色。如需有關使用 Windows 群組與 SQL Server 角色來保護持續性儲存區資料的詳細資訊,請參閱持續性儲存區的安全性設定

  • **操作持續性功能。**您可以使用 AppFabric 新增至「IIS 管理員」的延伸模組,對以下項目啟用或停用持續性功能:特定工作流程服務、應用程式中的所有工作流程服務、網站中的所有應用程式,或伺服器上的所有網站。您可以在較高的等級定義持續性原則,並讓 IIS 與 WAS 階層中的所有較低等級繼承該原則設定。

  • **使用不同的應用程式集區身分識別。**透過為 IIS 應用程式集區使用不同的身分識別,您可以限制或擴充整個持續性儲存區或其中的個別實體的 SQL Server 權限。這是您在 IIS 與 SQL Server 等級執行的細部安全性技術,不是由 AppFabric 工具直接支援。

保護主控功能的安全

您可以使用處理序隔離來區隔高權限的 AppFabric 管理範圍服務 (例如,「事件收集」服務與「工作流程管理」服務) 與低權限的應用程式範圍應用程式工作者處理序。AppFabric 服務是在管理範圍中執行,並擁有個別的監控和持續性儲存區的完整存取權。所有應用程式工作者處理序與使用者都是在應用程式範圍中執行,通常是在應用程式集區身分識別的內容中。

在應用程式範圍中,進一步的主控隔離可提供更細微的安全性檢視。應用程式包含一或多個 .NET Framework 服務,它們都是在相同的處理序中執行。為確保這些 .NET Framework 服務不受彼此干擾,它們可在不同的 AppDomains 內容中執行。.NET Framework 處理序包含一或多個 .NET Framework AppDomains,每個分別是供應用程式執行的獨立環境。在 IIS 應用程式集區中,可以同時執行一或多個應用程式 (如果它們設定為共用一個應用程式集區)。因此,AppDomains 是一種可強制執行隔離的輕量型方法,使用這種方法不會對另一個處理序與其所有資源造成額外負荷。

如果您需要隔離程度更強的主控解決方案,請將每個應用程式設定為以自己的身分識別在自己的應用程式集區中執行。這是當應用程式存取持續性儲存區時為應用程式提供不同身分識別的方式。IIS 會於執行階段將這些身分識別放到 IIS_IUSRS Windows 安全性群組中。從安全性的觀點而言,在獨立的處理序空間中執行幾乎等同於在獨立的應用程式定義域中執行,其他應用程式將無法存取指定之應用程式的程式碼或資料。您必須了解,使用額外的處理序會對作業系統資源與在處理器中切換內容的作業造成額外負荷,因為每個處理序都擁有屬於自己的 CPU 資源。

  2012-03-05