2013-02-28 38 views
0

我正在編寫一個策略,其中包含規則的有序許可覆蓋。XACML規則主題

規則1允許訪問具有適當安全級別的任何人的所有內容。

規則2允許使用備選憑證訪問某些內容(3資源)給任何人。

規則3拒絕訪問所有其他內容。如果用戶既沒有安全級別,也沒有憑證,這是一個故障安全。

我的問題是,我可以讓我的服務器運行程序和規則1工作正常。對於規則2,如果我給出所需的值,唯一的結果是「拒絕」,如果我留下任何空白,它就是「不確定」。儘管使用了排序許可覆蓋,但我認爲該政策並未運行我的規則2。

我已經嘗試運行規則3註釋掉的腳本,結果只是「不確定」或「不適用」。

在規則1中,我將目標留空。對於規則2,我定義了資源,但沒有定義主題。我是否需要指定主題才能使此規則起作用?還有什麼可能導致我的第一和第三條規則起作用,但不是我的第二條規則。

+0

我解決了這個問題。我在政策和規則1中調用了相同的資源,所以我不能再次調用它。 XACML中的資源必須是相互排斥的。資源是我的包,子資源是頁面。 – Nicholas 2013-02-28 20:35:53

+0

......我解決了這個問題,它是通過在規則1中聲明一個具有高級許可的主題,並將條件留空。該規則是一個許可證規則。 – Nicholas 2013-02-28 20:36:56

回答

0

如果你可以在這裏分享你的政策,這將是很好的,所以我們可以看看。你用什麼來寫和測試政策。

正如你可能知道不確定是由於PDP內部的錯誤,您需要提供一個屬性,但您並未發送該屬性,或者您對缺少的屬性使用了一個字符串(或任何一個且只有一個)的函數。

順便說一句,爲什麼你不使用第一適用作爲組合算法?

檢查出ALFA的Eclipse插件(免費),能夠無需知道XACML語法能夠快速地寫出您的策略:http://www.axiomatics.com/axiomatics-alfa-plugin-for-eclipse.html