The main object used in MIT's Roles Database is the Authorization, which consists of three parts:
Person Function Qualifier The person who is authorized to do something (identified by the person's Kerberos principal) The action the person is permitted to do (also could be a role the person has or a collection of actions or responsibilities) The unit or area within which the person can perform the Function. This could be an HR org unit, financial object, or some other unit
Note that these 3-part structures bear some similarity to the 3-part structures in RDF or the Symantic Web:
Subject + Verb + Object
Authorizations can be explicitly created. Each of these authorizations is explicitly created by an individual to apply to another individual.
We are currently developing an extension to the Roles Database to accommodate "implied" authorizations, i.e., authorizations derived from rules and attributes about people. These authorizations will have the same Person + Function + Qualifier format, but they will be derived automatically from other sources.
Explicit and implied authorizations are partitioned in the Roles Database so that they can be maintained separately. Batch runs that generate implied authorizations will not wipe out explicitly-authorizations, and automatically-generated implied authorizations cannot be removed manually or overridden. A person's list of permissions is the union of explicit and implied authorizations.
A function, as previously described, is the component of an Authorization that describes the action (or role or group of actions) that the person is allowed to do. Note that
One of the most important characteristics of MIT's Roles Database is that each Authorization clearly separates the Function (action, role, or group of actions) from the area or group of objects for which the person is allowed to perform that Function.
Qualifiers are organized into hierarchies (or more strictly, into webs, since qualifiers can, on rare occations, have more than one parent). There are several types of Qualifiers. Examples of types of Qualifiers are (i) HR Org units, (ii) financial profit centers and account numbers that exist in a single hierarchy, and (iii) research-related laboratory spaces and rooms. Qualifiers of most types are extracted from data in other systems by nightly data feeds. Other Qualifier types can be maintained manually by specifically-authorized individuals via a web-based user interface.
If the Qualifier within an Authorization is a node within a hierarchy rather than a leaf, then the Authorization applies to all child, grandchild, etc. Qualifiers as well.
To help us understand how People, Functions, and Qualifiers go together to make up Authorizations, let us examine a sample hierarchy of Qualifiers, representing online library materials that are available to authorized individuals.
Each node and leaf in the diagram represents a Qualifier, each with a code (e.g., LIB_ALL, or LIB_GROUP1) and a name ("All library materials", or "Library materials group 1").
Suppose that there are two different Functions for actions related to Library materials:
Function name Description ACCESS LIBRARY MATERIALS Allows a person to view specified online library materials ADMIN ACCESS TO LIB MATERIALS Allows a person to set or change access permissions to Library materials
Further, suppose that the following Authorizations for access to Library materials have been explicitly created:
Person Function Qualifier JOEUSER ACCESS LIBRARY MATERIALS LIB_GROUP1 FREDUSER ACCESS LIBRARY MATERIALS LIB_GROUP1 RMURDOCK ACCESS LIBRARY MATERIALS LIB_BOSGLOBE RMURDOCK ACCESS LIBRARY MATERIALS LIB_MJMO EINSTEIN ACCESS LIBRARY MATERIALS LIB_LNS NBOHR ACCESS LIBRARY MATERIALS LIB_LNS LTHUROW ADMIN ACCESS TO LIB MATERIALS LIB_SLOAN_A BSMITH ADMIN ACCESS TO LIB MATERIALS LIB_LNS
We can display the same set of authorizations shown in the previous table within the hierarchy of Library materials.
In the diagram below, notice that
We think that most Authorizations (permissions) are better described as triplets (Person, Function, Qualifier) rather than 2-part group memberships (Person, Group). The Function+Qualifier components better describe what people actually have access to than a group name, and there are several technical advantages to using 3-dimensional authorizations.
However, we could think of each (Function, Qualifier) pair as a virtual group, and there can be members of this virtual group. For example, the pair ("ACCESS LIBRARY MATERIALS", LIB_GROUP1) can be thought of as a virtual group. There are two members of the virtual group: JOEUSER and FREDUSER.
Membership in the virtual group ("ACCESS LIBRARY MATERIALS", LIB_GROUP1) also implies membership in the following virtual groups:
Within the Roles Database, there are no actual objects corresponding to pairs of Functions and Qualifiers. But, one could think of these pairs as representing virtual groups, and they could be used to export lists of (person, group-name) pairs to systems that expect to see permission information in this format.
So far, we have only given examples of explicitly-granted Authorizations. But access to Library materials would be an area where implied authorizations, derived from other information, could be generated for thousands of people.
If we're going to use rules to generate implied data about people, we need some source data to tell us something about the people. We also need to organize the source data in a way that makes it practical to apply rules to it.
We will organize the source data about people as triplets of information as well, not Authoriizations, but triplets of information we call "Relations". Each Relation consists of three parts, for example:
Examples of "Relations" - data about people Person or agent Relation-function Object aka Subject aka Verb aka Object REPA STAFF - ADMINISTRATIVE IS&T FRED STUDENT - GRAD CHEM JIMB FACULTY - RETIRED EECS LTHUROW FACULTY - MIT SLOAN AJJONES HAS COMPLETED CLASS 8.232 Relative Quantum Field Theory I
Now, we can arrange Relation-functions into groups, which will later allow us to create rules based on either a single Relation-function or a named group of them.
Groups of relation-functions related to people's student or staff status Function Group Name Description Qual
typeLinked Function name CURRENT MIT PERSON SET L1 Current MIT people statuses for access to most Library materials DEPT FACULTY - MIT FACULTY - VISITING NON-MIT CROSS-REGISTERED STAFF - ACADEMIC STAFF - ADMINISTRATIVE STAFF - POSTDOC STAFF - SUPPORT STAFF - VISITING RESEARCHER STUDENT - GRAD (CONF) STUDENT - GRADUATE STUDENT - UNDERGRAD (CONF) STUDENT - UNDERGRADUATE RETIRED FACULTY/STAFF Retired faculty and staff members DEPT FACULTY - RETIRED STAFF - RETIRED
Finally, we can formulate rules that takes takes the input "Relations" about people and generates implied authorizations. We're working on 4 types of rules. Only one type is applicable to access to Library materials. This type of rule can be represented as a row in a database table with 4 columns:
Columns in a definition of a Rule of type 2b Condition function or function-group Condition object Implied auth function Implied auth qualifier If a person has a "Relation" with this function... ...and this object, or a child/grandchild/etc. of this object ...then the person gets an implied authorization for this Function... ...and this Qualifier
Rule ID | Rule name | Where a person has a role/relation for function shown below and the qualifier is either the object shown below or a descendant of the object... | ...give the person an implied authorization for the function and object shown below. | |||||
---|---|---|---|---|---|---|---|---|
Cond Function | Cond obj type | Cond obj code | Result function | Result obj type | Result obj code | |||
19 | People (set L1) can access lib materials (Group 1) | CURRENT MIT PERSON SET L1 | Depart- ment |
D_ALL | ACCESS LIBRARY MATERIALS | Library material |
LIB_GROUP1 | |
20 | Retired faculty/staff can access limited lib materials | RETIRED FACULTY/STAFF | Depart- ment |
D_ALL | ACCESS LIBRARY MATERIALS | Library material |
LIB_NO_RESTRICT | |
21 | Sloan School people can access special set of lib materials | CURRENT MIT PERSON SET L1 | Depart- ment |
D_SLOAN | ACCESS LIBRARY MATERIALS | Library material |
LIB_SLOAN_A |
Person has this "Relation"... ...and after applying the rules, the person gets this implied authorization. Person Relation-function Relation
ObjectPerson Resulting
Authorization
FunctionResulting
Authorization
QualifierREPA STAFF - ADMINISTRATIVE IS&T REPA ACCESS LIBRARY MATERIALS LIB_GROUP1 FRED STAFF - ADMINISTRATIVE IS&T FRED ACCESS LIBRARY MATERIALS LIB_GROUP1 JIMB STAFF - ADMINISTRATIVE IS&T JIMB ACCESS LIBRARY MATERIALS LIB_NO_RESTRICT LTHUROW STAFF - ADMINISTRATIVE IS&T LTHUROW ACCESS LIBRARY MATERIALS LIB_NO_RESTRICT LTHUROW STAFF - ADMINISTRATIVE IS&T LTHUROW ACCESS LIBRARY MATERIALS LIB_SLOAN_A