The Limited Production System:
Authentication and Authorization

Vance Vaughan
18 Sept 1998

Introduction and Purpose

The Limited Production System (LPS) is intended to provide access control to various network resources. Access control is commonly parsed into two parts. Authentication establishes who someone is. Once you have established who someone is, there is the question of what they are authorized to do:

This paper discusses the authentication and authorization strategies of LPS. It is intended in particular to start a dialog on the authorization part of the puzzle. Comments should be emailed to the lists: auth-wg@ucop.edu and uccap-auth@cdl.ucop.edu.

The LPS has several components which are discussed below:

Public Key Infrastructure (PKI) - Authentication

The PKI is the "authentication" part of the puzzle. It will consist of a hierarchy of CA's, with a root CA at UCOP which will only certify other CA's: one per campus (and one at UCOP). The campus CA's will certify end-users, web servers, etc. The campus CA's are expected to conform to a policy. The policy specifies the content of certs issued to individuals: UCCerts. The campus CA's will be responsible for identifying certificate applicants, issuing (and renewing) certificates, revoking certificates.

The bottom line is that if someone presents you with a UCCert (and it checks out, hasn't been revoked, the person has the private key, etc.) then that person is authenticated - you know who that person is. The question of what he is able to do is the realm of authorization, which is covered below.

Implementation considerations:

AQP Client and Attribute Servers - Authorization

Authorization is ultimately the responsibility of the application, which may have its own idiosyncratic rules to enforce. But some support for basic queries ("is the person identified by NetID xxx a student") should be provided by the system.

End user UCCerts will not contain attribute data. Rather, they will contain only a NetID (or CampusID), which can be used to obtain attributes via an AQP client call to an Attribute Server. How this is to work is the subject of a draft: Functional Specification for UCCAP Attribute Server and Attribute Query Protocol. However, that document doesn't answer the question "what is an application which is presented with a UCCert to do?" It is free to do as it pleases, but we intend to provide a model AQP client which applications can call and which will at least answer the question "is the person associated with NetID xxx a {student,faculty,staff, member of the community}". The remainder of this paper postulates some characteristics of the attribute servers and the interaction between the AQP client and the attribute servers.

There will be different attribute servers:

The AQP client should:

It should not give a referral! Referrals should be handled by the AQP client. I assume that anybody is allowed to ask the question "is NetID xxx a student", but if not, then the asker must present a certificate which authorizes him to ask.

The AQP client should take as input:

The AQP client finds an attribute server as follows:

The AQP client then calls the Attribute Server.

The Attribute Server will do what it has to do (consult local DB's) to answer the query. It will return:

The AQP client then:

Implementation considerations:

Conclusion

The authentication part of the puzzle is (comparatively) well understood and implementation is proceeding. The authorization part of the puzzle needs dialog. Comments should be emailed to the lists: auth-wg@ucop.edu and uccap-auth@cdl.ucop.edu.