80 likes | 165 Views
AAAARCH Research Group. A grammar for Policies in a generic AAA Environment <draft-ietf-aaaarch-generic-policy-00.txt>. Generic policy. Grammar requirements. Support for:. Local and remote policy references. Distributed policies. ASM calls (Application Specific Modules).
E N D
AAAARCH Research Group A grammar for Policies in a generic AAA Environment <draft-ietf-aaaarch-generic-policy-00.txt>
Grammar requirements Support for: • Local and remote policy references. Distributed policies. • ASM calls (Application Specific Modules). • Arithmetic and Boolean expressions. • Variables (AVPs, Attribute Value Pairs ). • Access to return values (AVPs) form ASM calls and policy references. • Add return values (AVPs) to a response.
Policy if ( Conditon ) then ( ActionList ) else ( ActionList ) A policy has a TRUE or FALSE value. A policy can be part of the Condition (Boolean expression). A policy can be used as an Action (conditional Action ). A compound policy is a nested if-then-else structure.
Return list Policy, PolicyRef, ASMCall is a list of at least one element. Head of the list is TRUE or FALSE. All other elements are AVPs
Condition • Arbitrary Boolean expression. • Literal ::= Bool | BoolVar | ComputedBoolean • | Policy • | {Source “=“ }? BooleanProcedure • BooleanProcedure ::= PolicyRef | ASMCall • if ( • Query = getPassword( STRING Request.UserID ) • && • STRING Request.PassW == STRING Query.PassW • ) then ( … ) else ( … )
Nested policy if ( exists Request.Bandwidth && INT Request.Bandwidth >= 10 ) then ( if ( INT Request.Bandwidth <= 500 ) then ( … ) else ( AVP error = “Requested bandwidth too large.” ) ) else ( AVP error = “Requested bandwidth too small.” )
Policy language Language: L1 and L2 Mapping: L2 = f ( L1 ) and L1 = f-1( L2 ) L2: XML( DTD (Document Type Definition )) Pushed policies. Tools to construct policies.