簡體   English   中英

XACML策略中的分層屬性

[英]Hierarchical attributes in XACML Policy

我們正在使用WSO2 Identity Server 5.1.0。

我們有一個類似於Plant1-> Area1-> unit1的位置層次結構。 現在,如果用戶具有Plant1的屬性,那么他也應該可以訪問unit1(樹中父級的所有子級)。

我們可以在XACML中指定嗎? 我們將層次結構存儲在數據庫中。 如果需要,我們也可以提供層次結構元素列表作為屬性列表。

樣本中說明的問題:用戶鮑勃已被授予對area2的訪問權限,如下所示:

Plant1

| --Area1

     |--Unit1

| --Area2

     |--Unit2

我們要在XACML策略中指定Area2位置。 現在,如果帶有area2或unit2的請求應被允許,而如果帶有plant1,area1或unit1的請求應被拒絕。

我需要XACML策略的結構。

您可以在AuthzForce之類的XACML實現中使用自定義的PIP(策略信息點,也稱為屬性提供程序)來實現該功能 我不太了解WSO2,但是根據文檔,它可以通過自定義PIP進行擴展,所以我認為這應該可以解決問題。

這個想法是,在XACML策略中,您使用帶有自定義AttributeId的AttributeDesignator來指示請求某個屬性的層次結構中的頂級父值,例如AttributeId = resource-id-parent表示resource-id屬性的父值值。

您的自定義PIP的作用:當請求此自定義屬性ID resource-id-parent時 ,PIP從請求中獲取屬性resource-id的值,即“ area2”或“ unit2”,然后在其中獲取相應的最高值。數據庫中的層次結構(如果需要,也可以包含以上所有值),然后將其作為包返回。 然后,在XACML策略中,可以在Match中使用字符串等於或在條件中使用字符串至少為一個成員,以將AttributeDesignator與“ area2”進行匹配(請記住,AttributeDesignator始終求值到包中)。

暫無
暫無

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

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