Title: AAAARCH Research Group
1AAAARCH Research Group
- A grammar for Policies in a generic AAA
Environment - ltdraft-ietf-aaaarch-generic-policy-01.txtgt
- A. Taal G. Sliepen
- A.E. Hemel C.T.A.M. de Laat
2Changes
- References AVPs --gt Objects
- AAA Message Types
- No type checking
3Object references
if ( Query getPassword( userid
Request.Identity.UserID ) Request.Identity.Pa
ssW Query.PassW ) then( ) else( )
4Request Service Reply
// Action list A1 getSwitchSettings( ) A2
getConnectionList( ) A1. Connections
A2.Connections Reply.ServiceData.Settings A1
5Object trees
P
A
Q
D
S
B
E
R
C
leaf int float string
A.B P
A.B K.L.M
6AAA Message Types
Authentication
- Identity
- AuthenticationData
! One-to-one mapping Requests lt ---gt Driving
Policies
PolicyRef (remote AAA server) Reply
Authentication_at_ 146.50.0.23( Identity
Request.Identity, AuthenticationData
Request.AuthenticationData )
7AAA Message Types
Policy Evaluation
A1 PolicyEvaluation_at_ 146.50.0.23(
PolicyReference policy_23 )
A2 PolicyEvaluation_at_ 146.50.0.23(
PolicyReference policy_117
) ! A1.ServiceData ? A2.ServiceData
8Local policy reference PolicyRef versus
FunctionCall
PolicyRef policy_71 _at_ 127. 0.0.1( data1
Yes, data212 ) policy_71 _at_ localhost(
data1 Yes, data212 ) FunctionCall
evaluate( ref policy_71 , data1 Yes,
data212 )
9No type checking
ComputedBoolean ( INT Request.Data.Bandwidth /
INT Data.Fraction lt 20 )
JavaScript var a, b, c a 3 b yeah c
a / b alert( cc) gt cNaN
Perl a b c a 3 b yeah c
a / b gt Illegal division
10Example Driving Policy
KERBEROS Authentication if ( if( exists
Request.AuthenticationData.Protocol.Name )
then( ) else ( Reply.Answer.Type
MISSING_DATA
Reply.Answer.Message "Missing Protocol.Name" )
if( Request.AuthenticationData.Prot
ocol.Name "Kerberos" ) then( )
else ( Reply Authentication_at_146.50.0.23(
Identity Request.Identity,
AuthenticationData Request.Aut
henticationData ) ) ) then ( // Next slide )
11Example Driving Policy
then ( // Action if ( exists
Request.Identity.UserName ) then
( KRBReply
authenticate( username Request.Identity.UserN
ame,
servername )
HE/SHE IS KNOWN!!!!
Reply.Answer.AuthenticationData.SessionKey
KRBReply.SessionKey
) else (
Reply.Answer.Type MISSING_DATA
Reply.Answer.Message "AuthenticationData
incomplete )
... ) else ( ... )
12To do
- AAA message types
- Definition of top level objects
- generic AAA functions
- return trees
- generic ASMs
- return trees
- pushed / pulled policy treatment
13To do or to do not
- Exception handling
- Parallelism ( Actions, remote references )