簡體   English   中英

優化分布式環境中PDP中策略匹配的方式

[英]Optimize way to Match Policies in the PDP in a Distributed Environment

嗨,我經歷了很多有關XACML的用例,但是我不知道在PDP中加載策略的最佳方法是什么。 根據OASIS定義的PDP工作流程,我了解到傳入請求將到達PDP。 PDP負責根據請求匹配相應的策略。

由於PDP將與每個策略匹配,因此請考慮一個場景,在這種情況下,我將10,000個策略存儲在分布式環境中,那時候會發生什么。 匹配將花費越來越多的時間,這不是匹配策略的有效方法。

我需要對此問題進行一些澄清:

  1. 如何在不同的服務器上分發策略?

  2. 如果我在不同的服務器上分發策略,那么我的PDP將如何識別並從特定服務器獲取相應的策略?

  3. PDP識別與傳入請求匹配的確切策略的最佳方法是什么?

處理具有大量(10,000)個策略的情況的語法方法是,盡可能謹慎地使用PolicySet,Policy和Rule級別上可用的“ Target”子句,以便盡可能快地修剪決策樹。

因此,假設您知道在10,000個策略中,只有1000個用於財務部門操作,可以添加一個資源類別屬性“ dept-focus”,然后我們通過檢查來修剪樹

target: resource.dept-focus == "finance"

一旦這使您陷入困境,如果您知道財務部門策略與5個不同的應用程序相關(可能還有一些通用的部門級策略),則可以使用“ app-id”屬性進行修剪。

當然,要使它起作用,PEP需要將這些屬性ID的適當值添加到XACML請求中。

以部署為中心的解決方案是將10,000個策略拆分為較小的塊,然后將其部署到單獨的PDP組中。 各種供應商為此類概念使用各種名稱(如果有)。 我為之工作的公理學將這些授權域稱為。

因此,您可以將與財務部門相關的所有策略部署到組成“財務”身份驗證的一組PDP中。 當然,也可以對同一域中的這些PDP進行負載平衡。 如果沒有針對這些域的中央控制器,則管理工作可能會變得有些繁瑣,例如Axiomatics Services Manager。

希望能有所幫助。

是的。如果存儲了10,000個策略,則可能有很多時間來匹配它們。

如果您考慮水平縮放,仍可以尋找以下內容...

  1. 緩存所有策略或目標元素
  2. 使目標不復雜(只需一些字符串匹配)
  3. 具有多個線程的策略的並行匹配。

我同意,對於10000個策略,我們可能需要尋找“垂直擴展”。我假設您已根據應用程序定義了策略。 應用程序ID可以是策略的Target元素。 (可以是有助於創建策略集合的任何事物)。 如果我回答你的問題

  1. 可以基於Target元素(基於應用程序)分發策略。 因此,不同的服務器根據應用程序ID具有不同的策略。 基本上,它就像一個應用程序的PDP。 (這是您想根據某種方式對策略進行分組的方法。可以將其分發到單獨的PDP中)
  2. 可以有一個中央PDP集線器,一旦收到請求,它將檢查應用程序ID,並將消息路由到相關的PDP。 有時,它不想成為PDP,某些路由器(例如ESB)可以在請求中查找某些參數並將其發送到相關的PDP。
  3. 如上所述。最好由中央服務器來路由請求

另外,如果您沒有實現對分布式策略的並行評估。也可以使用PDP集線器來完成。。。說,您可以將策略分發到10個PDP中,並且有PDP集線器。 一旦收到對PDP集線器的請求,它將向10個PDP發送請求。並且10個PDP將並行評估策略。 一旦收到對PDP集線器的響應,它可以匯總10個PDP的結果,並將最終結果發送給PEP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM