diff options
Diffstat (limited to 'doc/rfc/rfc2903.txt')
-rw-r--r-- | doc/rfc/rfc2903.txt | 1459 |
1 files changed, 1459 insertions, 0 deletions
diff --git a/doc/rfc/rfc2903.txt b/doc/rfc/rfc2903.txt new file mode 100644 index 0000000..44fe067 --- /dev/null +++ b/doc/rfc/rfc2903.txt @@ -0,0 +1,1459 @@ + + + + + + +Network Working Group C. de Laat +Request for Comments: 2903 Utrecht University +Category: Experimental G. Gross + Lucent Technologies + L. Gommans + Enterasys Networks EMEA + J. Vollbrecht + D. Spence + Interlink Networks, Inc. + August 2000 + + + Generic AAA Architecture + +Status of this Memo + + This memo defines an Experimental Protocol for the Internet + community. It does not specify an Internet standard of any kind. + Discussion and suggestions for improvement are requested. + Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2000). All Rights Reserved. + +Abstract + + This memo proposes an Authentication, Authorization, Accounting (AAA) + architecture that would incorporate a generic AAA server along with + an application interface to a set of Application Specific Modules + that could perform application specific AAA functions. A separation + of AAA functions required in a multi-domain environment is then + proposed using a layered protocol abstraction. The long term goal is + to create a generic framework which allows complex authorizations to + be realized through a network of interconnected AAA servers. + + + + + + + + + + + + + + + + +de Laat, et al. Experimental [Page 1] + +RFC 2903 Generic AAA Architecture August 2000 + + +Table of Contents + + 1. Introduction ................................................ 2 + 2. Generic AAA Architecture .................................... 4 + 2.1. Architectural Components of a Generic AAA Server ....... 4 + 2.1.1. Authorization Rule Evaluation ................... 4 + 2.1.2. Application Specific Module (ASM) ............... 5 + 2.1.3. Authorization Event Log ......................... 6 + 2.1.4. Policy Repository ............................... 6 + 2.1.5. Request Forwarding .............................. 6 + 2.2. Generic AAA Server Model ............................... 6 + 2.2.1. Generic AAA Server Interactions ................. 7 + 2.2.2. Compatibility with Legacy Protocols ............. 7 + 2.2.3. Interaction between the ASM and the Service ..... 9 + 2.2.4. Multi-domain Architecture ....................... 10 + 2.3. Model Observations ..................................... 10 + 2.4. Suggestions for Future Work ............................ 11 + 3. Layered AAA Protocol Model .................................. 12 + 3.1. Elements of a Layered Architecture ..................... 14 + 3.1.1. Service Layer Abstract Interface Primitives ..... 14 + 3.1.2. Service Layer Peer End Point Name Space ......... 14 + 3.1.3. Peer Registration, Discovery, and Location + Resolution ............................................. 14 + 3.1.4. Trust Relationships Between Peer End Points ..... 14 + 3.1.5. Service Layer Finite State Machine .............. 15 + 3.1.6. Protocol Data Unit Types ........................ 15 + 3.2. AAA Application Specific Service Layer ................. 15 + 3.3. Presentation Service Layer ............................. 16 + 3.4. AAA Transaction/Session Management Service Layer ....... 17 + 3.5. AAA-TSM Service Layer Program Interface Primitives ..... 20 + 3.6. AAA-TSM Layer End Point Name Space ..................... 21 + 3.7. Protocol Stack Examples ................................ 22 + 4. Security Considerations ..................................... 22 + Glossary ....................................................... 23 + References ..................................................... 24 + Authors' Addresses ............................................. 24 + Full Copyright Statement ....................................... 26 + +1. Introduction + + The work for this memo was done by a group that originally was the + Authorization subgroup of the AAA Working Group of the IETF. When + the charter of the AAA working group was changed to focus on MobileIP + and NAS requirements, the AAAarch Research Group was chartered within + the IRTF to continue and expand the architectural work started by the + Authorization subgroup. This memo is one of four which were created + by the subgroup. This memo is a starting point for further work + within the AAAarch Research Group. It is still a work in progress + + + +de Laat, et al. Experimental [Page 2] + +RFC 2903 Generic AAA Architecture August 2000 + + + and is published so that the work will be available for the AAAarch + subgroup and others working in this area, not as a definitive + description of architecture or requirements. + + The authorization subgroup of the AAA Working Group proposed an "AAA + Authorization Framework" [2] illustrated with numerous application + examples [3] which in turn motivates a proposed list of authorization + requirements [4]. This memo builds on the framework presented in [2] + by proposing an AAA infrastructure consisting of a network of + cooperating generic AAA servers communicating via a standard + protocol. The protocol should be quite general and should support + the needs of a wide variety of applications requiring AAA + functionality. To realize this goal, the protocol will need to + operate in a multi-domain environment with multiple service providers + as well as entities taking on other AAA roles such as User Home + Organizations and brokers. It should be possible to combine requests + for multiple authorizations of different types in the same + authorization transaction. The AAA infrastructure will be required + to forward the components of such requests to the appropriate AAA + servers for authorization and to collect the authorization decisions + from the various AAA servers consulted. All of this activity is + perfectly general in nature and can be realized in the common + infrastructure. + + But the applications requiring AAA services will each have their own + unique needs. After a service is authorized, it must be configured + and initialized. This will require application specific knowledge + and may require application specific protocols to communicate with + application specific service components. To handle these application + specific functions, we propose an application interface between a + generic AAA server and a set of one or more Application Specific + Modules (ASMs) which can carry out the unique functionality required + by each application. + + Since the data required by each application for authentication, + authorization, or accounting may have unique structure, the standard + AAA protocol should allow the encapsulation of opaque units of + Application Specific Information (ASI). These units would begin with + a standard header to allow them to be forwarded by the generic + infrastructure. When delivered to the final destination, an ASI unit + would be passed by a generic AAA server across its program interface + to an appropriate ASM for application specific processing. + Nevertheless, it remains a goal of the design for information units + to be encoded in standard ways as much as possible so as to enable + processing by a generic rule based engine. + + + + + + +de Laat, et al. Experimental [Page 3] + +RFC 2903 Generic AAA Architecture August 2000 + + + The interactions of the generic AAA server with the Application + Specific Modules and with each other to realize complex AAA functions + is explored in section 2. Then, in section 3, we attempt to further + organize the AAA functions into logical groups using a protocol + layering abstraction. This abstraction is not intended to be a + reference model ready to be used for protocol design. At this point + in the work, there are numerous questions that need to be addressed + and numerous problems that remain to be solved. It may be that an + abstraction other than layering will prove to be more useful or, more + likely, that the application layer will require some substructure of + its own. + + Finally, in section 4, we show how the security requirements + identified in [4] can be met in the generic server and the + Application Specific Modules by applying security techniques such as + public key encryption or digital signatures to the Application + Specific Information units individually, so that different + stakeholders in the AAA server network can protect selected + information units from being deciphered or altered by other + stakeholders in an authentication, authorization, or accounting + chain. + +2. Generic AAA Architecture + + For the long term we envision a generic AAA server which is capable + of authenticating users, handling authorization requests, and + collecting accounting data. For a service provider, such a generic + AAA server would be interfaced to an application specific module + which manages the resource for which authorization is required. + Generic AAA components would also be deployed in other administrative + domains performing authorization functions. + +2.1. Architectural Components of a Generic AAA Server + +2.1.1. Authorization Rule Evaluation + + The first step in the authorization process is for the user or an + entity operating on the user's behalf to submit a well-formatted + request to an AAA server. A generic AAA server has rules (logic + and/or algebraic formulas) to inspect the request and come to an + authorization decision. The first problem which arises is that + Application Specific Information (ASI) has to be separated from the + underlying logic for the authorization. Ideally the AAA server would + have a rule based engine at this point which would know the logic + rules and understand some generic information in the request, but it + would not know anything about application specific information except + where this information can be evaluated to give a boolean or + numerical value. It should be possible to create rules that refer to + + + +de Laat, et al. Experimental [Page 4] + +RFC 2903 Generic AAA Architecture August 2000 + + + data elements that were not considered when the application was + created. For example, one could request to do a remote virtual + control room experiment from home using a dialin provider. The + request would only be successful if the dialin access server allows + it and if there is bandwidth available (bandwidth broker) and if the + experimenter has the money to pay for it (E-Commerce). Possibly the + people who specified the bandwidth broker protocol did not think of + combining quality of service with a network service authorization in + a single AAA request, but this generic model would allow it. + + +------+ +-------+ +-------+ +-------+ +-------+ + | | auth | | auth | | auth | | auth | | + | |<---->| AAA |<---->| AAA |<---->| AAA |<---->| AAA | + | | | | | | | | | | + | | +-------+ +-------+ +-------+ +-------+ + | User | | | | | + | | | +-------+ +-------+ +-------+ + | | | | BB | | BB | |Budget | + | | | +-------+ +-------+ +-------+ + | | | | | + | | +-------+ | | + | | |dial in| +-------+ +-------+ + | |<====>|service|<====>|network|<====>|network|<===> Experiment + +------+ +-------+ +-------+ +-------+ + + user <-> dialin <-> backbone with BB <-> <remote experiment> + + Fig. 1 -- Example of a Multi Domain Multi Type of Server Request + +2.1.2. Application Specific Module (ASM) + + Ultimately an AAA server needs to interact with an application + specific module (ASM). In a service provider, the ASM would manage + resources and configure the service equipment to provide the + authorized service. It might also involve itself in the + authorization decision because it has the application specific + knowledge required. A user home organization (UHO) may require ASMs + as well, to perform application specific user authorization + functions. For example, a UHO ASM might be required to access + certain application specific databases or interpret application + specific service level specifications. + + Whatever the role of an administration relative to an authorization + decision, the capabilities of the generic AAA server and the + interface between it and the ASMs remains the same. This interface + may be an Application Program Interface (API) or could even be a + protocol based interface. In this model, however, the application + + + + +de Laat, et al. Experimental [Page 5] + +RFC 2903 Generic AAA Architecture August 2000 + + + specific module is regarded as as separate architectural component + from the generic AAA server. As such, it must be addressable and + must therefore be part of a global naming space. + +2.1.3. Authorization Event Log + + For auditing purposes, the generic server must have some form of + database to store time-stamped events which occur in the AAA server. + This database can be used to account for authorizations which were + given, but it can also be used in rules. One can imagine rules in + which an authorization is only given if some other event was logged + in the past. With the aid of certificates, this database could + support non-repudiation. + +2.1.4. Policy Repository + + A database containing the available services and resources about + which authorization decisions can be made and the policy rules to + make them is also needed. Here too, the naming space for the + services and resources is important since they must be addressable + from other AAA servers to be able to build complex authorization + requests. + +2.1.5. Request Forwarding + + Due to the multiple administrative domain (multi-kingdom) nature of + the AAA problem, a mechanism to forward messages between AAA servers + is needed. The protocol by which two AAA servers communicate should + be a peer-to-peer protocol. + +2.2. Generic AAA Server Model + + With the implementation of the above mentioned components, the AAA + server would be able to handle AAA requests. It would inspect the + contents of the request, determine what authorization is requested, + retrieve the policy rules from the repository, perform various local + functions, and then choose one of the following options to further + process each of the components of the request: + + a) Let the component be evaluated by an attached ASM. + + b) Query the authorization event log or the policy repository for the + answer. + + c) Forward the component(s) to another AAA server for evaluation. + + In the following sections we present the generic model. + + + + +de Laat, et al. Experimental [Page 6] + +RFC 2903 Generic AAA Architecture August 2000 + + +2.2.1. Generic AAA Server Interactions + + Figure 2 illustrates a generic AAA Server with connections to the + various architectural components described above. In this model, the + user or another AAA server contacts the AAA server to get + authorization, and the AAA server interacts with the service. The + request is sent to the AAA server using the future AAA protocol. The + server interacts with the service via a second protocol which we have + labeled as type "2" in the figure. We say no more of the type 2 + protocol than that it must support some global naming space for the + application specific items. The same holds for the type 3 + communication used to access the repository. + + +------------------+ + | | + request <-----1----->|Generic AAA Server|<---1---> AAA server + |Rule based engine | + | |\ + +------------------+ 3 +------------+ + ^ \| Policy and | + | | event | + 2 | repository | + | +------------+ + v + +------------------+ + | Application | + | Specific | + | Module | + +------------------+ + + The numbers in the links denote types of communication. + + Fig. 2 -- Generic AAA Server Interactions + +2.2.2. Compatibility with Legacy Protocols + + Because of the widespread deployment of equipment that implements + legacy AAA protocols and the desire to realize the functionality of + the new AAA protocol while protecting the investment in existing + infrastructure, it may be useful to implement a AAA gateway function + that can encapsulate legacy protocol data units within the messages + of the new protocol. Use of this technique, for example, would allow + Radius attribute value pairs to be encapsulated in Application + Specific Information (ASI) units of the new protocol in such a way + that the ASI units can be digitally signed and encrypted for end-to- + end protection between a service provider's AAA server and a home AAA + server communicating via a marginally trusted proxy AAA server. The + service provider's NAS would communicate via Radius to the service + + + +de Laat, et al. Experimental [Page 7] + +RFC 2903 Generic AAA Architecture August 2000 + + + provider's AAA server, but the AAA servers would communicate among + themselves via the new AAA protocol. In this case, the AAA gateway + would be a software module residing in the service provider's AAA + server. Alternatively the AAA gateway could be implemented as a + standalone process. + + Figure 3 illustrates an AAA gateway. Communication type 4 is the + legacy protocol. Communication type 1 is the future standard AAA + protocol. And communication type 2 is for application specific + communication to Application Specific Modules (ASMs) or Service + Equipment. + + +-------+ + | AAA |<---1---> to AAA server as in fig. 2 + request <---4--->|GateWay| + | |<---2---> optionally to ASM/service + +-------+ + + The numbers in the links denote types of communication. + + Fig. 3 -- AAA Gateway for Legacy AAA Protocols + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +de Laat, et al. Experimental [Page 8] + +RFC 2903 Generic AAA Architecture August 2000 + + +2.2.3. Interaction between the ASM and the Service + + In a service provider, the Application Specific Module (ASM) and the + software providing the service itself may be tightly bound into a + single "Service Application". In this case, the interface between + them is just a software interface. But the service itself may be + provided by equipment external to the ASM, for example, a router in + the bandwidth broker application. In this case, the ASM communicates + with the service via some protocol. These two possibilities are + illustrated in figure 4. In both cases, we have labeled the + communication between the ASM and the service as communication type + 5, which of course, is service specific. + + | | + +--------------|----+ | + | Service 2 | 2 + | Application | | | + | +-------------+ | +-------------+ + | | Application | | | Application | + | | Specific | | | Specific | + | | Module | | | Module | + | +-------------+ | +-------------+ + | | | | + | 5 | 5 + | | | | + | +-------------+ | +-------------+ + | | Service | | | Service | + | | | | | Equipment | + | +-------------+ | +-------------+ + +-------------------+ + + Fig. 4 -- ASM to Service Interaction (two views) + + + + + + + + + + + + + + + + + + + +de Laat, et al. Experimental [Page 9] + +RFC 2903 Generic AAA Architecture August 2000 + + +2.2.4. Multi-domain Architecture + + The generic AAA server modules can use communication type 1 to + contact each other to evaluate parts of requests. Figure 5 + illustrates a network of generic AAA servers in different + administrative domains communicating via communication type 1. + + +-----+ + o--------| AAA |---->... + / | | + / +-----+\ + / | \+----+ + / +-----+ | RP | + / | ASM | +----+ + +--------+ +-----+ / | | + | Client |------| AAA |-------o +-----+ + +--------+ | | \ + +-----+ \ + | +----+ \ +-----+ + +-----+ | RP | o-----| AAA |---->... + | ASM | +----+ | | + | | +-----+\ + +-----+ | \+----+ + +-----+ | RP | + | ASM | +----+ + | | + +-----+ + + The AAA servers use only communication type 1 to communicate. + ASM = Application Specific Module + RP = Repository + + Fig. 5 -- Multi-domain Multi-type of Service Architecture + +2.3. Model Observations + + Some key points of the generic architecture are: + + 1) The same generic AAA server can function in all three + authorization models: agent, pull, and push [2]. + + 2) The rule based engine knows how to evaluate logical formulas and + how to parse AAA requests. + + 3) The Generic AAA server has no knowledge whatsoever about the + application specific services so the application specific + information it forwards is opaque to it. + + + + +de Laat, et al. Experimental [Page 10] + +RFC 2903 Generic AAA Architecture August 2000 + + + 4) Communication types 1, 2, and 3 each present their own naming + space problems. Solving these problems is fundamental to + forwarding AAA messages, locating application specific entities, + and locating applicable rules in the rule repositories. + + 5) A standard AAA protocol for use in communication type 1 should be + a peer-to-peer protocol without imposing client and server roles + on the communicating entities. + + 6) A standard AAA protocol should allow information units for + multiple different services belonging to multiple different + applications in multiple different administrative domains to be + combined in a single AAA protocol message. + +2.4. Suggestions for Future Work + + It is hoped that by using this generic model it will be feasible to + design a AAA protocol that is "future proof", in a sense, because + much of what we do not think about now can be encoded as application + specific information and referenced by policy rules stored in a + policy repository. From this model, some generic requirements arise + that will require some further study. For example, suppose a new + user is told that somewhere on a specific AAA server a certain + authorization can be obtained. The user will need a AAA protocol + that can: + + 1) send a query to find out which authorizations can be obtained from + a specific server, + + 2) provide a mechanism for determining what components must be put in + an AAA request for a specific authorization, and + + 3) formulate and transmit the authorization request. + + Some areas where further work is particularly needed are in + identifying and designing the generic components of a AAA protocol + and in determining the basis upon which component forwarding and + policy retrieval decisions are made. + + In addition to these areas, there is a need to explore the management + of rules in a multi-domain AAA environment because the development + and future deployment of a generic multi-domain AAA infrastructure is + largely dependent on its manageability. Multi-domain AAA + environments housing many rules distributed over several AAA servers + quickly become unmanageable if there is not some form of automated + rule creation and housekeeping. Organizations that allow their + services to be governed by rules, based on some form of commercial + contract, require the contract to be implemented with the least + + + +de Laat, et al. Experimental [Page 11] + +RFC 2903 Generic AAA Architecture August 2000 + + + possible effort. This can, for example, be achieved in a scalable + fashion if the individual user or user organization requesting a + service is able to establish the service itself. This kind of + interaction requires policy rule establishment between AAA servers + belonging to multiple autonomous administrative domains. + +3. Layered AAA Protocol Model + + In the previous section, we proposed the idea of a generic AAA server + with an interface to one or more Application Specific Modules (ASMs). + The generic server would handle many common functions including the + forwarding of AAA messages between servers in different + administrative domains. We envision message transport, hop-by-hop + security, and message forwarding as clearly being functions of the + generic server. The application specific modules would handle all + application specific tasks such as communication with service + equipment and access to special purpose databases. Between these two + sets of functions is another set of functions that presumably could + take place in either the generic server or an ASM or possibly by a + collaboration of both. These functions include the evaluation of + authorization rules against data that may reside in various places + including attributes from the authorization request itself. The more + we can push these functions down into the generic server, the more + powerful the generic server can be and the simpler the ASMs can be. + + One way of organizing the different functions mentioned above would + be to assign them to a layered hierarchy. In fact, we have found the + layer paradigm to be a useful one in understanding AAA functionality. + This section explores the use of a layered hierarchy consisting of + the following AAA layers as a way of organizing the AAA functions: + + Application Specific Service Layer + Presentation Service Layer + Transaction/Session Management Service Layer + Reliable/Secure Transport Service Layer + + Nevertheless, the interface between the generic AAA server and the + ASMs proposed in the previous section may be more complex than a + simple layered model would allow. Even the division of functionality + proposed in this section goes beyond a strict understanding of + layering. Therefore this paper can probably best be understood as + the beginnings of a work to understand and organize the common + functionality required for a general purpose AAA infrastructure + rather than as a mature reference model for the creation of AAA + protocols. + + + + + + +de Laat, et al. Experimental [Page 12] + +RFC 2903 Generic AAA Architecture August 2000 + + + In our view of AAA services modeled as a hierarchy of service layers, + there is a set of distributed processes at each service layer that + cooperate and are responsible for implementing that service layer's + functions. These processes communicate with each other using a + protocol specialized to carry out the functions and responsibilities + assigned to their service layer. The protocol at service layer n + communicates to its peers by depending on the services available to + it from service layer n-1. The service layer n also has a protocol + end point address space, through which the peer processes at service + layer n can send messages to each other. Together, these AAA service + layers can be assembled into an AAA protocol stack. + + The advantage of this approach is that there is not just one + monolithic "AAA protocol". Instead there is a suite of protocols, + and each one is optimized to solve the problems found at its layer of + the AAA protocol stack hierarchy. + + This approach realizes several key benefits: + + - The protocol used at any particular layer in the protocol stack + can be substituted for another functionally equivalent protocol + without disrupting the services in adjacent layers. + + - Requirements in one layer may be met without impact on protocols + operating in other layers. For example, local security + requirements may dictate the substitution of stronger or weaker + "reliable secure transport" layer security algorithms or + protocols. These can be introduced with no change or awareness of + the substitution by the layers above the Reliable/Secure Transport + layer. + + - The protocol used for a given layer is simpler because it is + focused on a specific narrow problem that is assigned to its + service layer. In particular, it should be feasible to leverage + existing protocol designs for some aspects of this protocol stack + (e.g. CORBA GIOP/CDR for the presentation layer). + + - A legacy AAA protocol message (e.g. a RADIUS message) can be + encapsulated within the protocol message(s) of a lower layer + protocol, preserving the investment of a Service Provider or User + Home Organization in their existing AAA infrastructure. + + - At each service layer, a suite of alternatives can be designed, + and the service layer above it can choose which alternative makes + sense for a given application. However, it should be a primary + goal of the AAA protocol standardization effort to specify one + mandatory to implement protocol at the AAA Transaction/Session + Management (AAA-TSM) service layer (see section 3.4). + + + +de Laat, et al. Experimental [Page 13] + +RFC 2903 Generic AAA Architecture August 2000 + + +3.1. Elements of a Layered Architecture + + At each layer of a layered architecture, a number of elements need to + be defined. These elements are discussed in the following sections. + +3.1.1. Service Layer Abstract Interface Primitives + + The service layer n is assumed to present a program interface through + which its adjacent service layer n+1 can access its services. The + types of abstract program service primitives and associated + parameters exchanged across the boundary between these service layers + must be specified. + +3.1.2. Service Layer Peer End Point Name Space + + Each service layer is treated as a set of cooperating processes + distributed across multiple computing systems. The service layer + must manage an end point name space that identifies these peer + processes. The conventions by which a service layer assigns a unique + end point name to each such peer process must be specified. + +3.1.3. Peer Registration, Discovery, and Location Resolution + + Along with defining an end point name space, a service layer must + also specify how its peers: + + - announce their presence and availability, + + - discover one another when they first begin operation, and + + - detect loss of connectivity or service withdrawal. + + It is also necessary to specify what mechanisms, if any, exist to + resolve a set of service layer specific search attributes into one or + more peer end point names that match the search criteria. + +3.1.4. Trust Relationships Between Peer End Points + + Once an end point has established its initial contact with another + peer, it must decide what authentication policy to adapt. It can + trust whatever authentication was done on its behalf by a lower + service layer or, through a pre-provisioning process, implicitly + trust the peer, or else go through an authentication process with its + peer. The supported mechanisms for establishing a service layer's + end point trust relationships must be specified. + + + + + + +de Laat, et al. Experimental [Page 14] + +RFC 2903 Generic AAA Architecture August 2000 + + +3.1.5. Service Layer Finite State Machine + + To the extent that a service layer's internal states are externally + visible, the layer's behavior in terms of a Finite State Machine + (FSM) should be specified. Events that can drive the FSM state + transitions may include: + + - service layer n+1 interface primitive requests + + - protocol data unit arrivals from peer service layer n end points + received through the layer n-1 access point + + - service layer n-1 interface primitives (e.g. call backs or + interrupts) + + - timer expirations + +3.1.6. Protocol Data Unit Types + + Each service layer defines a lexicon of protocol data units (PDUs) + that communicate between the layer's peer processes the information + that controls and/or monitors that service layer's distributed state + and allows the service processes of that layer to perform their + functions. Embedded in the PDUs of each layer are the PDUs of the + higher layers which depend on its services. The PDUs of each service + layer must be specified. + +3.2. AAA Application Specific Service Layer + + AAA applications have almost unlimited diversity, but imposing some + constraints and commonality is required for them to participate in + this generic AAA architectural framework. To satisfy these + constraints, participating AAA applications would derive their + application specific program logic from a standardized "Authorization + Server" abstract base object class. They would also support an + "Authorized Session" object class. An Authorization Session object + instance represents an approved authorization request that has a + long-lived allocation of services or resources. The generic AAA + architecture could be extended to include other abstract base object + classes in the future (e.g. Authorization Reservation, Authentication + Server, etc.). How to implement the derived Authorization Server + class's public methods for a given problem domain is entirely up to + the application. One technique might be to place a software + "wrapper" around an existing embedded application specific service to + adapt it to the standardized Authorization Server object paradigm. + The major Authorization Server class methods are: + + + + + +de Laat, et al. Experimental [Page 15] + +RFC 2903 Generic AAA Architecture August 2000 + + + - Publish an advertisement that describes the Authorization Server's + service attributes and its application specific service layer end + point address. Once the Authorization Server has registered, peer + processes can discover its presence or send messages addressed to + it. + + - Application Specific Authorization Decision Function (AS-ADF) + method takes a User's application specific authorization request + and returns a decision of approve, deny, or conditionally approve + with referral to another stakeholder. In the latter case, the + application may create a reservation for the requested services or + resources. This method represents the "condition" side of a + policy rule's condition/action pair. + + - Commit a service or set of resources to a previously conditionally + approved authorization decision. For those authorization requests + that have a long-term lifecycle (as opposed to being + transactions), this method mobilizes a reservation into an + Authorized Session object instance. This method represents the + "action" side of a policy rule's condition/action pair. + + - Cancel a previously conditionally approved Authorization request. + This method releases any associated reservations for services or + resources. + + - Withdraw the Authorization Server's service advertisement. + + A key motivation for structuring an AAA application as an + Authorization Server object instance is to separate the generic + authorization decision logic from the application-specific + authorization decision logic. In many cases, the application can be + divorced from the AAA problem altogether, and its AAA responsibility + can be assigned to an external rules based generic AAA Server. (The + idea is similar to that of a trust management policy server as + defined in [5].) This would facilitate a security administrator + deploying AAA policy in a central repository. The AAA policy is + applied consistently across all users of the applications, resources, + and services controlled by the AAA server. However, it is recognized + that for many problem domains, there are unique rules intrinsic to + the application. In these cases, the generic AAA Server must refer + the User's authorization request to the relevant Application Specific + Module. + +3.3. Presentation Service Layer + + The presentation service layer solves the data representation + problems that are encountered when communicating peers exchange + complex data structures or objects between their heterogeneous + + + +de Laat, et al. Experimental [Page 16] + +RFC 2903 Generic AAA Architecture August 2000 + + + computing systems. The goal is to transfer semantically equivalent + application layer data structures regardless of the local machine + architecture, operating system, compiler, or other potential inter- + system differences. + + One way to better understand the role of the presentation layer is to + evaluate an existing example. The Generic Inter-ORB Protocol (GIOP) + and its Common Data Representation (CDR) is a presentation service + layer protocol developed by the Object Management Group (OMG) + industry consortium. GIOP is one component within the Common Object + Request Broker Architecture (CORBA). Peer Object Request Brokers + (ORB) executing on heterogeneous systems use GIOP to invoke remote + CORBA object interface methods. GIOP encodes an object method's + input and output parameters in the Common Data Representation (CDR). + While there are other presentation service layer protocols in the + industry, GIOP in combination with CDR represents a mature, + comprehensive solution that exhibits many of the presentation service + layer requirements that are applicable within the AAA protocol model. + + In the context of Internet access AAA protocols, RADIUS and its + successors use the Attribute Value Pair (AVP) paradigm as the + presentation service layer encoding scheme. While such an approach + is versatile, it is also prone to becoming splintered into many ad + hoc and vendor specific dialects. There is no structure imposed or + method to negotiate the constraints on which AVPs are combined and + interpreted for a given conversation in a consistent way across AAA + protocol implementations or problem domains. At run-time, it can be + hard for the communicating peers to negotiate to a common inter- + operable set of AVPs. + + To avoid this pitfall, a primary presentation service layer + responsibility is the ability to let peers negotiate from a base + Authorization Server object class towards a commonly understood + derived Authorization Server object class that both presentation + service layer peers have implemented for their application specific + problem domain. This negotiation implies a requirement for a + globally registered and maintained presentation service layer + hierarchy of Authorization Server object class names. + +3.4. AAA Transaction/Session Management Service Layer + + The AAA Transaction/Session Management (AAA-TSM) service layer is a + distributed set of AAA Servers, which typically reside in different + administrative domains. Collectively they are responsible for the + following three services: + + + + + + +de Laat, et al. Experimental [Page 17] + +RFC 2903 Generic AAA Architecture August 2000 + + + Authentication -- Execute the procedure(s) needed to confirm the + identity of the other parties with which the AAA TSM entity has a + trust relationship. + + Authorization -- Make an authorization decision to grant or deny a + User's request for services or resources. The generic rules based + policy engine described earlier in this document executes the + authorization decision function. When the User's request is + instantaneous and transient, then its authorization approval is + treated as an ephemeral transaction. If the authorization + approval implies a sustained consumption of a service or + resources, then the request is transformed into an Authorized + Session. For the duration of the Authorized Session's lifetime: + + - its state may be queried and reported, or + + - it may be canceled before service is completed, or + + - the service being delivered may be modified to operate under + new parameters and conditions, or + + - the service may complete on its own accord. + + In each of these cases, the AAA-TSM service layer must synchronize + the Authorized Session's distributed state across all of those AAA + Servers which are implementing that specific Authorized Session. + + Accounting -- Generate any relevant accounting information regarding + the authorization decision and the associated Authorized Session + (if any) that represents the ongoing consumption of those services + or resources. + + The peer AAA servers and their AAA-TSM end points exchange AAA-TSM + messages to realize these AAA functions. A central AAA-TSM concept + is that there is a set of one or more AAA Server stakeholders who are + solicited to approve/disapprove a User request for application layer + services. The AAA-TSM service layer routes the User's request from + one stakeholder to the next, accumulating the requisite approvals + until they have all been asked to make an authorization decision. + + The AAA Servers may also do User authentication (or re- + authentication) as part of this approval process. The overall flow + of the routing from one stakeholder to another may take the form of + the "push", "pull", or "agent" authorization models developed in [2]. + However, in principle, it is feasible to have an arbitrary routing + path of an AAA-TSM authorization request among stakeholders. Once the + final approval is received, the AAA-TSM service layer commits the + requested service by notifying all of those stakeholders that require + + + +de Laat, et al. Experimental [Page 18] + +RFC 2903 Generic AAA Architecture August 2000 + + + a confirmation (i.e. turn on a pending reservation and do a + transaction commit). Alternatively, any stakeholder among those on + the consent list can veto the authorization request. In that case, + all stakeholders who previously approved the request and had asked + for a confirmation are told that the request has been denied (i.e., + cancel reservation and do a transaction rollback). + + The AAA-TSM authorization request payload must carry its own "Context + State", such that when an AAA server receives it, there is sufficient + information that it is essentially self-contained. Embedding the + Context State within the AAA-TSM message provides two benefits. + First, the message can be immediately processed with respect to the + AAA Server's local policy, and this minimizes or altogether avoids + the need for the AAA Server to exchange additional AAA-TSM messages + with its peers to complete its piece of the overall authorization + decision. The other benefit is that the AAA Server minimizes the + amount of state information resources that it commits to a user's + pending request until it is fully approved. This helps protect + against denial of service attacks. + + One can envision many possible message elements that could be part of + the Context State carried within an AAA-TSM request message: + + - AAA-TSM session identifier, a unique handle representing this + authorization request. All AAA servers who participate in a + request's approval process and its subsequent monitoring + throughout its Session lifetime refer to this handle. + + - permission lists stating which AAA Servers are allowed to modify + which parts of the message. + + - User's authorization request, encoded as a presentation layer PDU. + + - User authentication information, (e.g. an X.509 public key + certificate). + + - User credentials information, or else a pointer to where that + information can be found by an AAA server. An example of such + credentials would be an X.509 attributes certificate. + + - the list of AAA Server stakeholders who have yet to be visited to + gain full approval of the User's authorization request. Each + element in that list contains a presentation layer message + encoding how the user authorization request should be evaluated by + its application specific Authorization Decision Function (ADF). + + - the current position in the list of AAA Server stakeholders to be + visited. + + + +de Laat, et al. Experimental [Page 19] + +RFC 2903 Generic AAA Architecture August 2000 + + + - a list of those AAA servers which have already conditionally + approved the User's authorization request, but which have + predicated their approval on the request also completing its + approval from those stakeholders who have not yet seen the + request. Each element in the list has a digital signature or + comparable mechanism by which their approval can be subsequently + verified. + + - an expiration time stamp, expressed in a universally understood + time reference, which sets a lifetime limit on the AAA-TSM + message's validity. This offers some replay attack protection, + and inhibits messages from circulating indefinitely seeking the + completion of a request's approval. + + - a message payload modification audit trail, tracing which parties + introduced changes into the User's authorization request terms and + conditions. + + - an AAA-TSM message integrity check, computed across the whole + message rather than its individual elements, and signed by the + most recent AAA-TSM layer end point process to modify the AAA-TSM + message before its transmission to its AAA-TSM peer. This + function may be delegated to the underlying Reliable Secure + Transport layer connection to that destination peer. + +3.5. AAA-TSM Service Layer Program Interface Primitives + + The AAA-TSM service layer and its adjacent presentation service layer + communicate across their boundary through a set of program interface + primitives. A key design goal is to keep these primitives the same + regardless of the higher level AAA application, analogous to a + callable "plug-in". The two service layers are responsible for + coordinating their state information. This responsibility includes + all of the pending Authorization requests and the Authorization + Sessions that they are both controlling and monitoring. The initial + contact between these two layers is through an abstract object that + is called an AAA-TSM Service Access Point (SAP). A particular + service instance between these two layers is realized in an abstract + object that is called an Authorized Session. The presentation + service layer invokes AAA-TSM interface primitives against an AAA-TSM + SAP. + + The AAA-TSM service layer interface primitives can be broadly + characterized as follows: + + - Register a presentation end point address identifier and its + associated set of attributes to a service access point. + + + + +de Laat, et al. Experimental [Page 20] + +RFC 2903 Generic AAA Architecture August 2000 + + + - Send a presentation layer message to a specified destination + presentation layer peer end point address. + + - Receive a presentation layer message from another presentation + layer end point address. A receive operation may select a + specific originating presentation layer end point address from + which the message is expected, or receive a message from any + presentation layer peer. + + - The AAA-TSM service layer calls an application specific + authorization decision function, which returns a condition code + expressing an approval, denial, or partially approves with a + referral to another AAA Server. + + - AAA-TSM service layer tells the presentation layer to commit an + earlier partially approved authorization request. + + - Cancel an earlier partially approved authorization request (i.e. + rollback). + + - The presentation service layer notifies the AAA-TSM service layer + that it has terminated an in-progress Authorized Session. + + - AAA-TSM service layer notifies the presentation service layer that + another presentation service layer peer has terminated an + Authorized Session. + + - Un-register a presentation service layer end point address. + +3.6. AAA-TSM Layer End Point Name Space + + The AAA-TSM service layer end point name space is the N-tuple formed + by concatenating the following components: + + - AAA Server's Reliable/Secure Transport layer end point address + + - AAA-TSM authorization request serial number, a unique durable + unsigned integer generated by the AAA Server who first receives + the User's authorization request. + + Some AAA applications may require that each assigned AAA-TSM + transaction serial number be stored in persistent storage, and + require that it be recoverable across AAA Server system re-boots. + The serial number generation algorithm must be guaranteed unique even + if the AAA Server does a re-boot. + + + + + + +de Laat, et al. Experimental [Page 21] + +RFC 2903 Generic AAA Architecture August 2000 + + +3.7. Protocol Stack Examples + + The layering paradigm makes it possible to use the most appropriate + syntax for each application for encoding the Application Specific + Information units of that application. This encoding would take + place at the presentation layer. Similarly the application layer can + recognize the semantics specific to each application. Figure 6 + illustrates some possible AAA protocol stacks. + + +------------++------------++-----------++-----------++----------+ + | || Application|| E-Commerce|| Bandwidth || Roaming &| + | AAA || specific || Internet || Broker || mobile IP| + | Application||object class|| Open ||cross-admin|| remote | + | Service || interface || Trading || domain || access | + | Layer ||specified in|| Protocol || COPS || AVP | + | || CORBA IDL || (IOTP) || extensions|| lexicons | + +------------++------------++-----------++-----------++----------+ + | || CORBA ||Extensible || Common || DIAMETER | + |Presentation|| Generic || Markup || Open || or | + | Service || Inter-ORB || Language || Policy || RADIUS | + | Layer || Protocol || (XML) ||Specificatn||Attribute | + | || (GIOP) || || (COPS) ||Value/Pair| + +------------++------------++-----------++-----------++----------+ + | AAA-TSM Service Layer Application Program Interface (API) | + +----------------------------------------------------------------+ + | AAA Transaction/Session Management (AAA-TSM) Service Layer | + +----------------------------------------------------------------+ + | Reliable Secure Transport Layer | + +----------------------------------------------------------------+ + + Fig. 6 -- Possible AAA Protocol Stacks + +4. Security Considerations + + Security considerations for the framework on which the work described + in this memo is based are discussed in [2]. Security requirements + for authorization are listed in section 2.2 of [3]. + + This memo identifies a basic set of AAA functions that are general in + nature and common to many different AAA applications. We propose + that a standard set of security mechanisms should be defined as part + of a base AAA protocol which would include such things as public key + encryption and digital signatures that could be applied to individual + information units within an AAA message. Security with this + granularity is needed to meet the end-to-end security requirement + specified in section 2.2.7 of [3] because a single AAA message may + + + + + +de Laat, et al. Experimental [Page 22] + +RFC 2903 Generic AAA Architecture August 2000 + + + contain multiple information units each generated by AAA servers from + different administrative domains and destined to AAA servers in + different domains. + + In addition, it may be necessary to encrypt or sign an entire AAA + message on a hop-by-hop basis. This could be handled by a standard, + lower layer protocol such as IPSEC. If so, then certain auditing + requirements will have to be met so that it can be established later + that the messages relative to some specific session ID were, in fact, + protected in a particular way. Alternatively, hop-by-hop security + mechanisms may be built into the base AAA protocol itself. + +Glossary + + Application Specific Information (ASI) -- information in an AAA + protocol message that is specific to a particular application. + + Application Specific Module (ASM) -- a software module that + implements a program interface to a generic AAA server which + handles application specific functionality for an AAA protocol + message. + + Service Provider -- an organization which provides a service. + + User -- the entity seeking authorization to use a resource or a + service. + + User Home Organization (UHO) -- An organization with whom the User + has a contractual relationship which can authenticate the User and + may be able to authorize access to resources or services. + + + + + + + + + + + + + + + + + + + + + +de Laat, et al. Experimental [Page 23] + +RFC 2903 Generic AAA Architecture August 2000 + + +References + + [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP + 9, RFC 2026, October 1996. + + [2] Vollbrecht, J., Calhoun, P., Farrell, S., Gommans, L., Gross, + G., de Bruijn, B., de Laat, D., Holdrege, M. and D. Spence, "AAA + Authorization Framework", RFC 2904, August 2000. + + [3] Vollbrecht, J., Calhoun, P., Farrell, S., Gommans, L., Gross, + G., de Bruijn, B., de Laat, C., Holdrege, M. and D. Spence, "AAA + Authorization Application Examples", RFC 2905, August 2000. + + [4] Farrell, S., Vollbrecht, J., Calhoun, P., Gommans, L., Gross, + G., de Bruijn, B., de Laat, C., Holdrege, M. and D. Spence, "AAA + Authorization Requirements", RFC 2906, August 2000. + + [5] Blaze, M., Feigenbaum, J., Ioannidis, J. and A. Keromytis, "The + KeyNote Trust-Management System Version 2", RFC 2704, September + 1999. + +Authors' Addresses + + Cees T.A.M. de Laat + Physics and Astronomy dept. + Utrecht University + Pincetonplein 5, + 3584CC Utrecht + Netherlands + + Phone: +31 30 2534585 + Phone: +31 30 2537555 + EMail: delaat@phys.uu.nl + + + George M. Gross + Lucent Technologies + 184 Liberty Corner Road, m.s. LC2N-D13 + Warren, NJ 07059 + USA + + Phone: +1 908 580 4589 + Fax: +1 908-580-4991 + EMail: gmgross@lucent.com + + + + + + + +de Laat, et al. Experimental [Page 24] + +RFC 2903 Generic AAA Architecture August 2000 + + + Leon Gommans + Enterasys Networks EMEA + Kerkplein 24 + 2841 XM Moordrecht + The Netherlands + + Phone: +31 182 379279 + email: gommans@cabletron.com + or at University of Utrecht: + l.h.m.gommans@phys.uu.nl + + + John R. Vollbrecht + Interlink Networks, Inc. + 775 Technology Drive, Suite 200 + Ann Arbor, MI 48108 + USA + + Phone: +1 734 821 1205 + Fax: +1 734 821 1235 + EMail: jrv@interlinknetworks.com + + + David W. Spence + Interlink Networks, Inc. + 775 Technology Drive, Suite 200 + Ann Arbor, MI 48108 + USA + + Phone: +1 734 821 1203 + Fax: +1 734 821 1235 + EMail: dspence@interlinknetworks.com + + + + + + + + + + + + + + + + + + + +de Laat, et al. Experimental [Page 25] + +RFC 2903 Generic AAA Architecture August 2000 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2000). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +de Laat, et al. Experimental [Page 26] + |