私は XACML を初めて使用し、ALFA を使用してポリシーを作成しています。私が書こうとしているポリシーは、銀行に 2000 ドルの送金限度額を設定することです。送金する金額がそれを超える場合、操作は拒否されます。
どうすればいいですか?
ありがとう!
私は XACML を初めて使用し、ALFA を使用してポリシーを作成しています。私が書こうとしているポリシーは、銀行に 2000 ドルの送金限度額を設定することです。送金する金額がそれを超える場合、操作は拒否されます。
どうすればいいですか?
ありがとう!
使用例は非常に単純です。最初に英語で、次に ALFA で書くことをお勧めします。
action==transfer
、リソースに対して実行できます。type==bank account
amount transferred < the amount limit
ALFA では、上記のポリシーは次のようになります。
namespace policies{
attribute actionId{
category = actionCat
id = "actionId"
type = string
}
attribute resourceType{
category = resourceCat
id = "resourceType"
type = string
}
attribute amount{
category = resourceCat
id = "amount"
type = double
}
/**
* The limit could be a subject attribute in the case it's user-specific
*/
attribute limit{
category = subjectCat
id = "limit"
type = double
}
/*
* A user can do the `action==transfer` on a resource of `type==bank account` if and only if the `amount transferred
* < the amount limit` (e.g. 2000 in your case) ==> **permit**
*
*/
policy transfer{
target clause actionId == "transfer" and resourceType=="bank account"
apply firstApplicable
rule allow{
condition amount <= limit
permit
}
rule denyTransfer{
deny
}
}
}