Author: olamy
Date: Tue Jan 15 18:01:09 2013
New Revision: 1433557

URL: http://svn.apache.org/viewvc?rev=1433557&view=rev
Log:
Apache Redback Main site deployment

Modified:
    archiva/site-content/redback/configuration.html
    archiva/site-content/redback/rbac/introduction.html

Modified: archiva/site-content/redback/configuration.html
URL: 
http://svn.apache.org/viewvc/archiva/site-content/redback/configuration.html?rev=1433557&r1=1433556&r2=1433557&view=diff
==============================================================================
--- archiva/site-content/redback/configuration.html (original)
+++ archiva/site-content/redback/configuration.html Tue Jan 15 18:01:09 2013
@@ -211,7 +211,7 @@ pageTracker._trackPageview();</script>
     &lt;property name=&quot;registry&quot; 
ref=&quot;registry#commons-configuration&quot;/&gt;
 
   &lt;/bean&gt;
-</pre></div></div><div class="section"><h3>Configuration Options<a 
name="Configuration_Options"></a></h3><div class="section"><h4>Application 
Configuration<a 
name="Application_Configuration"></a></h4><ul><li>application.timestamp=EEE d 
MMM yyyy HH:mm:ss 
Z</li><li>application.url=http://myurl.mycompany.com<ul><li>Set the application 
base URL. The default is to derive it from the HTTP 
request</li></ul></li></ul></div><div class="section"><h4>JDBC Setup<a 
name="JDBC_Setup"></a></h4><p>By default Redback uses Apache Derby for 
persistence of user and role information. This can be configured with the 
following 
options.</p><ul><li>jdbc.driver.name=org.apache.derby.jdbc.EmbeddedDriver</li><li>jdbc.url=jdbc:derby:$<a
 
name="plexus.home">plexus.home</a>/database;create=true</li><li>jdbc.username=sa</li><li>jdbc.password=</li></ul><p>By
 default Redback uses Apache Derby for persistence of user and role 
information. This can be configured with the following 
options.</p><p><b>Note:</b> If
  you are using MySQL as your database, the database will not be populated if 
the encoding is initially set to UTF-8. As a workaround, set the database to 
UTF-8 encoding after it has been populated. See <a class="externalLink" 
href="http://jira.codehaus.org/browse/REDBACK-267";> REDBACK-267</a> for more 
details.</p></div><div class="section"><h4>Email Settings<a 
name="Email_Settings"></a></h4><ul><li>email.jndiSessionName=java:comp/env/mail/Session</li><li>email.smtp.host=localhost</li><li>email.smtp.port=25</li><li>email.smtp.ssl.enabled=false</li><li>email.smtp.tls.enabled=false</li><li>email.smtp.username=</li><li>email.smtp.password=</li><li>email.from.address=$<a
 name="user.name">user.name</a>@localhost<ul><li>All emails sent by the system 
will be from the following 
address</li></ul></li><li>email.from.name=Unconfigured 
Username</li><li>email.validation.required=true<ul><li>If all email addresses 
(from new user registration) require an account validation email. </li></ul>
 </li><li>email.validation.timeout=2880<ul><li>Timeout (in minutes) for the key 
generated for an email validation to remain valid.</li><li>2880 minutes = 48 
hours</li></ul></li><li>email.validation.subject=Welcome</li><li>email.feedback.path=/feedback.action<ul><li>Get
 the Feedback to use for any outgoing emails.</li><li>Feedback path starts with 
a &quot;/&quot; it is appended to the end of the value provided in 
application.url. This value can be in the format/syntax of 
&quot;/feedback.action&quot; or even 
&quot;mailto:[email protected]&quot;</li></ul></li></ul></div><div 
class="section"><h4>Auto Login Settings<a 
name="Auto_Login_Settings"></a></h4><ul><li>security.rememberme.enabled=true</li><li>security.rememberme.timeout=525600<ul><li>Timeout
 in minutes ( 525600 minutes = 1 year 
)</li></ul></li><li>security.signon.timeout=30<ul><li>Single Sign 
On</li><li>Timeout is in minutes</li></ul></li></ul></div><div 
class="section"><h4>Default Username Values<a name="Default_U
 sername_Values"></a></h4><ul><li>redback.default.admin=admin<ul><li>name for 
the admin user, by default this is 'admin' and can not easily be changed after 
the fact at this point. However any number of people may be assigned full 
administrator roles.</li></ul></li><li>redback.default.guest=guest (currently 
guest is an hardcoded value so not possible to configure it)<ul><li>name of the 
guest user</li></ul></li></ul></div><div class="section"><h4>Security 
Policies<a 
name="Security_Policies"></a></h4><ul><li>security.policy.password.encoder=</li><li>security.policy.password.previous.count=6</li><li>security.policy.password.expiration.enabled=true</li><li>security.policy.password.expiration.days=90</li><li>security.policy.password.expiration.notify.days=10</li><li>security.policy.allowed.login.attempt=10</li><li>security.policy.strict.enforcement.enabled=true<ul><li>turn
 off the perclick enforcement of various security policies, slightly more 
heavyweight since it will ensure tha
 t the User object on each click is up to 
date</li></ul></li><li>security.policy.strict.force.password.change.enabled=true<ul><li>forces
 the user to change their password immediately should their account be flagged 
for a password 
change.</li></ul></li><li>security.policy.unlockable.accounts<ul><li>can be 
specified multiple times to ensure that password policies never lock the 
specified account(s) (eg. security.policy.unlockable.accounts=guest 
)</li></ul></li></ul></div><div class="section"><h4>Password Rules<a 
name="Password_Rules"></a></h4><ul><li>security.policy.password.rule.alphanumeric.enabled=false</li><li>security.policy.password.rule.alphacount.enabled=true</li><li>security.policy.password.rule.alphacount.minimum=1</li><li>security.policy.password.rule.characterlength.enabled=true</li><li>security.policy.password.rule.characterlength.minimum=1</li><li>security.policy.password.rule.characterlength.maximum=24</li><li>security.policy.password.rule.musthave.enabled=true</
 
li><li>security.policy.password.rule.numericalcount.enabled=true</li><li>security.policy.password.rule.numericalcount.minimum=1</li><li>security.policy.password.rule.reuse.enabled=true</li><li>security.policy.password.rule.nowhitespace.enabled=true</li></ul></div><div
 class="section"><h4>LDAP settings<a name="LDAP_settings"></a></h4><p>Ldap can 
be used as a readonly user manager, however the role assignment is still 
managed entirely within the given database store. This should be fixed in the 
future sometime but likely not before ldap is switched over as the default user 
and role store 
entirely.</p><ul><li>ldap.user.store.enabled=false</li><li>ldap.bind.authenticator.enabled=false</li></ul><div
 class="section"><h5>ldap options for configuration via properties file<a 
name="ldap_options_for_configuration_via_properties_file"></a></h5><ul><li>ldap.config.hostname=</li><li>ldap.config.port=</li><li>ldap.config.base.dn=</li><li>ldap.config.context.factory=</li><li>ldap.config.bin
 
d.dn=</li><li>ldap.config.password=</li><li>ldap.config.authentication.method=</li><li>ldap.config.groups.class=
 object class for groups (default: 
groupOfUniqueNames)</li><li>ldap.config.groups.base.dn= basedn for 
groups</li><li>ldap.config.groups.base.dn= dn with list of groups 
dc=archiva,dc=apache,dc=org</li><li>ldap.config.groups.role.*(ldap 
group)=*(role) (mapping ldap group <i>-</i> redback role) (example: 
ldap.config.groups.role.archiva-admin=Archiva System 
Administrator)</li></ul></div></div><div class="section"><h4>User Manager 
Implementation(s) to use<a 
name="User_Manager_Implementations_to_use"></a></h4><ul><li>user.manager.impl=cached
 (since 1.4-M4: Archiva support more than one value comma 
separated)<ul><li>valid values for realistic usage are 'cached' and then 
further configuring the cached instance to use another underlying user manager 
like ldap or the jdo one which is used by default. Placing 'ldap' here will 
check with the ldap system for a fair amount of ch
 ecks and would likely be a performance 
issue</li></ul></li></ul></div></div></div>
+</pre></div></div><div class="section"><h3>Configuration Options<a 
name="Configuration_Options"></a></h3><div class="section"><h4>Application 
Configuration<a 
name="Application_Configuration"></a></h4><ul><li>application.timestamp=EEE d 
MMM yyyy HH:mm:ss 
Z</li><li>application.url=http://myurl.mycompany.com<ul><li>Set the application 
base URL. The default is to derive it from the HTTP 
request</li></ul></li></ul></div><div class="section"><h4>JDBC Setup<a 
name="JDBC_Setup"></a></h4><p>By default Redback uses Apache Derby for 
persistence of user and role information. This can be configured with the 
following 
options.</p><ul><li>jdbc.driver.name=org.apache.derby.jdbc.EmbeddedDriver</li><li>jdbc.url=jdbc:derby:$<a
 
name="plexus.home">plexus.home</a>/database;create=true</li><li>jdbc.username=sa</li><li>jdbc.password=</li></ul><p>By
 default Redback uses Apache Derby for persistence of user and role 
information. This can be configured with the following 
options.</p><p><b>Note:</b> If
  you are using MySQL as your database, the database will not be populated if 
the encoding is initially set to UTF-8. As a workaround, set the database to 
UTF-8 encoding after it has been populated. See <a class="externalLink" 
href="http://jira.codehaus.org/browse/REDBACK-267";> REDBACK-267</a> for more 
details.</p></div><div class="section"><h4>Email Settings<a 
name="Email_Settings"></a></h4><ul><li>email.jndiSessionName=java:comp/env/mail/Session</li><li>email.smtp.host=localhost</li><li>email.smtp.port=25</li><li>email.smtp.ssl.enabled=false</li><li>email.smtp.tls.enabled=false</li><li>email.smtp.username=</li><li>email.smtp.password=</li><li>email.from.address=$<a
 name="user.name">user.name</a>@localhost<ul><li>All emails sent by the system 
will be from the following 
address</li></ul></li><li>email.from.name=Unconfigured 
Username</li><li>email.validation.required=true<ul><li>If all email addresses 
(from new user registration) require an account validation email. </li></ul>
 </li><li>email.validation.timeout=2880<ul><li>Timeout (in minutes) for the key 
generated for an email validation to remain valid.</li><li>2880 minutes = 48 
hours</li></ul></li><li>email.validation.subject=Welcome</li><li>email.feedback.path=/feedback.action<ul><li>Get
 the Feedback to use for any outgoing emails.</li><li>Feedback path starts with 
a &quot;/&quot; it is appended to the end of the value provided in 
application.url. This value can be in the format/syntax of 
&quot;/feedback.action&quot; or even 
&quot;mailto:[email protected]&quot;</li></ul></li></ul></div><div 
class="section"><h4>Auto Login Settings<a 
name="Auto_Login_Settings"></a></h4><ul><li>security.rememberme.enabled=true</li><li>security.rememberme.timeout=525600<ul><li>Timeout
 in minutes ( 525600 minutes = 1 year 
)</li></ul></li><li>security.signon.timeout=30<ul><li>Single Sign 
On</li><li>Timeout is in minutes</li></ul></li></ul></div><div 
class="section"><h4>Default Username Values<a name="Default_U
 sername_Values"></a></h4><ul><li>redback.default.admin=admin<ul><li>name for 
the admin user, by default this is 'admin' and can not easily be changed after 
the fact at this point. However any number of people may be assigned full 
administrator roles.</li></ul></li><li>redback.default.guest=guest (currently 
guest is an hardcoded value so not possible to configure it)<ul><li>name of the 
guest user</li></ul></li></ul></div><div class="section"><h4>Security 
Policies<a 
name="Security_Policies"></a></h4><ul><li>security.policy.password.encoder=</li><li>security.policy.password.previous.count=6</li><li>security.policy.password.expiration.enabled=true</li><li>security.policy.password.expiration.days=90</li><li>security.policy.password.expiration.notify.days=10</li><li>security.policy.allowed.login.attempt=10</li><li>security.policy.strict.enforcement.enabled=true<ul><li>turn
 off the perclick enforcement of various security policies, slightly more 
heavyweight since it will ensure tha
 t the User object on each click is up to 
date</li></ul></li><li>security.policy.strict.force.password.change.enabled=true<ul><li>forces
 the user to change their password immediately should their account be flagged 
for a password 
change.</li></ul></li><li>security.policy.unlockable.accounts<ul><li>can be 
specified multiple times to ensure that password policies never lock the 
specified account(s) (eg. security.policy.unlockable.accounts=guest 
)</li></ul></li></ul></div><div class="section"><h4>Password Rules<a 
name="Password_Rules"></a></h4><ul><li>security.policy.password.rule.alphanumeric.enabled=false</li><li>security.policy.password.rule.alphacount.enabled=true</li><li>security.policy.password.rule.alphacount.minimum=1</li><li>security.policy.password.rule.characterlength.enabled=true</li><li>security.policy.password.rule.characterlength.minimum=1</li><li>security.policy.password.rule.characterlength.maximum=24</li><li>security.policy.password.rule.musthave.enabled=true</
 
li><li>security.policy.password.rule.numericalcount.enabled=true</li><li>security.policy.password.rule.numericalcount.minimum=1</li><li>security.policy.password.rule.reuse.enabled=true</li><li>security.policy.password.rule.nowhitespace.enabled=true</li></ul></div><div
 class="section"><h4>LDAP settings<a name="LDAP_settings"></a></h4><p>Ldap can 
be used as a readonly user manager, however the role assignment is still 
managed entirely within the given database store. This should be fixed in the 
future sometime but likely not before ldap is switched over as the default user 
and role store 
entirely.</p><ul><li>ldap.user.store.enabled=false</li><li>ldap.bind.authenticator.enabled=false</li></ul><div
 class="section"><h5>ldap options for configuration via properties file<a 
name="ldap_options_for_configuration_via_properties_file"></a></h5><ul><li>ldap.config.hostname=</li><li>ldap.config.port=</li><li>ldap.config.base.dn=</li><li>ldap.config.context.factory=</li><li>ldap.config.bin
 
d.dn=</li><li>ldap.config.password=</li><li>ldap.config.authentication.method=</li><li>ldap.config.groups.class=
 object class for groups (default: 
groupOfUniqueNames)</li><li>ldap.config.groups.base.dn= basedn for 
groups</li><li>ldap.config.groups.base.dn= dn with list of groups 
dc=archiva,dc=apache,dc=org</li><li>ldap.config.groups.role.*(ldap 
group)=*(role) (mapping ldap group <i>-</i> redback role) (example: 
ldap.config.groups.role.archiva-admin=Archiva System 
Administrator)</li></ul></div></div><div class="section"><h4>User Manager 
Implementation(s) to use<a 
name="User_Manager_Implementations_to_use"></a></h4><ul><li>user.manager.impl=cached
 (since 1.4-M4: Archiva support more than one value comma 
separated)<ul><li>valid values for realistic usage are 'cached' and then 
further configuring the cached instance to use another underlying user manager 
like ldap or the jdo one which is used by default. Placing 'ldap' here will 
check with the ldap system for a fair amount of ch
 ecks and would likely be a performance issue</li></ul></li></ul></div><div 
class="section"><h4>RBAC Manager Implementation(s) to use<a 
name="RBAC_Manager_Implementations_to_use"></a></h4><ul><li>rbac.manager.impl=cached
 (since 1.4-M4: Archiva support more than one value comma 
separated)</li></ul></div></div></div>
                   </div>
           </div>
 

Modified: archiva/site-content/redback/rbac/introduction.html
URL: 
http://svn.apache.org/viewvc/archiva/site-content/redback/rbac/introduction.html?rev=1433557&r1=1433556&r2=1433557&view=diff
==============================================================================
--- archiva/site-content/redback/rbac/introduction.html (original)
+++ archiva/site-content/redback/rbac/introduction.html Tue Jan 15 18:01:09 2013
@@ -199,7 +199,7 @@ pageTracker._trackPageview();</script>
                 
         <div id="bodyColumn" >
                                   
-            <!-- Licensed to the Apache Software Foundation (ASF) under one 
--><!-- or more contributor license agreements.  See the NOTICE file --><!-- 
distributed with this work for additional information --><!-- regarding 
copyright ownership.  The ASF licenses this file --><!-- to you under the 
Apache License, Version 2.0 (the --><!-- "License"); you may not use this file 
except in compliance --><!-- with the License.  You may obtain a copy of the 
License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  
--><!-- Unless required by applicable law or agreed to in writing, --><!-- 
software distributed under the License is distributed on an --><!-- "AS IS" 
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --><!-- KIND, either express or 
implied.  See the License for the --><!-- specific language governing 
permissions and limitations --><!-- under the License. --><!-- NOTE: For help 
with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mi
 ni/guide-apt-format.html --><div class="section"><h2>An Introduction to Role 
Based Access<a name="An_Introduction_to_Role_Based_Access"></a></h2><p>This 
introduction provides background information on Role-Based Access Control 
(RBAC), a technical means for controlling access to computer resources. While 
still largely in the demonstration and prototype stages of development, RBAC 
appears to be a promising method for controlling what information computer 
users can utilize, the programs that they can run, and the modifications that 
they can make. Only a few off-the-shelf systems that implement RBAC are 
commercially available; however, organizations may want to start investigating 
RBAC for future application in their multi-user systems. RBAC is appropriate 
for consideration in systems that process unclassified but sensitive 
information, as well as those that process classified 
information.</p></div><div class="section"><h2>What is Role-Based Access 
Control<a name="What_is_Role-B
 ased_Access_Control"></a></h2><p>Access is the ability to do something with a 
computer resource (e.g., use, change, or view). Access control is the means by 
which the ability is explicitly enabled or restricted in some way (usually 
through physical and system-based controls). Computer- based access controls 
can prescribe not only who or what process may have access to a specific system 
resource, but also the type of access that is permitted. These controls may be 
implemented in the computer system or in external devices.</p><p>With 
role-based access control, access decisions are based on the roles that 
individual users have as part of an organization. Users take on assigned roles 
(such as doctor, nurse, teller, manager). The process of defining roles should 
be based on a thorough analysis of how an organization operates and should 
include input from a wide spectrum of users in an organization.</p><p>Access 
rights are grouped by role name, and the use of resources is restrict
 ed to individuals authorized to assume the associated role. For example, 
within a hospital system the role of doctor can include operations to perform 
diagnosis, prescribe medication, and order laboratory tests; and the role of 
researcher can be limited to gathering anonymous clinical information for 
studies.</p><p>The use of roles to control access can be an effective means for 
developing and enforcing enterprise-specific security policies, and for 
streamlining the security management process.</p></div><div 
class="section"><h2>Users and Roles<a name="Users_and_Roles"></a></h2><p>Under 
the RBAC framework, users are granted membership into roles based on their 
competencies and responsibilities in the organization. The operations that a 
user is permitted to perform are based on the user's role. User membership into 
roles can be revoked easily and new memberships established as job assignments 
dictate. Role associations can be established when new operations are 
instituted, and
  old operations can be deleted as organizational functions change and evolve. 
This simplifies the administration and management of privileges; roles can be 
updated without updating the privileges for every user on an individual 
basis.</p><p>When a user is associated with a role:</p><p>the user can be given 
no more privilege than is necessary to perform the job. This concept of least 
privilege requires identifying the user's job functions, determining the 
minimum set of privileges required to perform that function, and restricting 
the user to a domain with those privileges and nothing more. In less precisely 
controlled systems, this is often difficult or costly to achieve. Someone 
assigned to a job category may be allowed more privileges than needed because 
is difficult to tailor access based on various attributes or constraints. Since 
many of the responsibilities overlap between job categories, maximum privilege 
for each job category could cause unlawful access.</p></div><di
 v class="section"><h2>Roles and Role Hierarchies<a 
name="Roles_and_Role_Hierarchies"></a></h2><p>Under RBAC, roles can have 
overlapping responsibilities and privileges; that is, users belonging to 
different roles may need to perform common operations. Some general operations 
may be performed by all employees. In this situation, it would be inefficient 
and administratively cumbersome to specify repeatedly these general operations 
for each role that gets created. Role hierarchies can be established to provide 
for the natural structure of an enterprise. A role hierarchy defines roles that 
have unique attributes and that may contain other roles; that is, one role may 
implicitly include the operations that are associated with another 
role.</p><p>In the healthcare situation, a role Specialist could contain the 
roles of Doctor and Intern. This means that members of the role Specialist are 
implicitly associated with the operations associated with the roles Doctor and 
Intern without 
 the administrator having to explicitly list the Doctor and Intern operations. 
Moreover, the roles Cardiologist and Rheumatologist could each contain the 
Specialist role.</p><p>Role hierarchies are a natural way of organizing roles 
to reflect authority, responsibility, and competency:</p><p>the role in which 
the user is gaining membership is not mutually exclusive with another role for 
which the user already possesses membership. These operations and roles can be 
subject to organizational policies or constraints. When operations overlap, 
hierarchies of roles can be established. Instead of instituting costly auditing 
to monitor access, organizations can put constraints on access through RBAC. 
For example, it may seem sufficient to allow physicians to have access to all 
patient data records if their access is monitored carefully. With RBAC, 
constraints can be placed on physician access so that only those records that 
are associated with a particular physician can be accessed.</
 p></div><div class="section"><h2>Roles and Operations<a 
name="Roles_and_Operations"></a></h2><p>Organizations can establish the rules 
for the association of operations with roles. For example, a healthcare 
provider may decide that the role of clinician must be constrained to post only 
the results of certain tests but not to distribute them where routing and human 
errors could violate a patient's right to privacy. Operations can also be 
specified in a manner that can be used in the demonstration and enforcement of 
laws or regulations. For example, a pharmacist can be provided with operations 
to dispense, but not to prescribe, medication.</p><p>An operation represents a 
unit of control that can be referenced by an individual role, subject to 
regulatory constraints within the RBAC framework. An operation can be used to 
capture complex security-relevant details or constraints that cannot be 
determined by a simple mode of access.</p><p>For example, there are differences 
between t
 he access needs of a teller and an accounting supervisor in a bank. An 
enterprise defines a teller role as being able to perform a savings deposit 
operation. This requires read and write access to specific fields within a 
savings file. An enterprise may also define an accounting supervisor role that 
is allowed to perform correction operations. These operations require read and 
write access to the same fields of a savings file as the teller. However, the 
accounting supervisor may not be allowed to initiate deposits or withdrawals 
but only perform corrections after the fact. Likewise, the teller is not 
allowed to perform any corrections once the transaction has been completed. The 
difference between these two roles is the operations that are executed by the 
different roles and the values that are written to the transaction log 
file.</p><p>The RBAC framework provides administrators with the capability to 
regulate who can perform what actions, when, from where, in what order, an
 d in some cases under what relational circumstances:</p><p>only those 
operations that need to be performed by members of a role are granted to the 
role. Granting of user membership to roles can be limited. Some roles can only 
be occupied by a certain number of employees at any given period of time. The 
role of manager, for example, can be granted to only one employee at a time. 
Although an employee other than the manager may act in that role, only one 
person may assume the responsibilities of a manager at any given time. A user 
can become a new member of a role as long as the number of members allowed for 
the role is not exceeded.</p></div><div class="section"><h2>Advantages of 
RBAC<a name="Advantages_of_RBAC"></a></h2><p>A properly-administered RBAC 
system enables users to carry out a broad range of authorized operations, and 
provides great flexibility and breadth of application. System administrators 
can control access at a level of abstraction that is natural to the way t
 hat enterprises typically conduct business. This is achieved by statically and 
dynamically regulating users' actions through the establishment and definition 
of roles, role hierarchies, relationships, and constraints. Thus, once an RBAC 
framework is established for an organization, the principal administrative 
actions are the granting and revoking of users into and out of roles. This is 
in contrast to the more conventional and less intuitive process of attempting 
to administer lower-level access control mechanisms directly (e.g., access 
control lists [ACLs], capabilities, or type enforcement entities) on an 
object-by-object basis.</p><p>Further, it is possible to associate the concept 
of an RBAC operation with the concept of &quot;method&quot; in Object 
Technology. This association leads to approaches where Object Technology can be 
used in applications and operating systems to implement an RBAC 
operation.</p><p>For distributed systems, RBAC administrator responsibilities 
can
  be divided among central and local protection domains; that is, central 
protection policies can be defined at an enterprise level while leaving 
protection issues that are of local concern at the organizational unit level. 
For example, within a distributed healthcare system, operations that are 
associated with healthcare providers may be centrally specified and pertain to 
all hospitals and clinics, but the granting and revoking of memberships into 
specific roles may be specified by administrators at local sites.</p></div><div 
class="section"><h2>Status of Current RBAC Activities<a 
name="Status_of_Current_RBAC_Activities"></a></h2><p>Several organizations are 
experimenting with the inclusion of provisions for RBAC in open consensus 
specifications. RBAC is an integral part of the security models for Secure 
European System for Applications in a Multi-vendor Environment (SESAME) 
distributed system and the database language SQL3. In addition, the Object 
Management Group's (OMG) C
 ommon Object Request Broker Architecture (CORBA) Security specification uses 
RBAC as an example of an access control mechanism which can be used with the 
distributed Object Technology defined by the OMG. (See reference 
below.)</p><p>CSL has been developing and defining RBAC and its applicability 
cooperatively with industry, government, and academic partners. In conjunction 
with Dr. Ravi Sandhu of George Mason University and Seta Corporation, CSL is 
defining RBAC and its feasibility. We are working with Dr. Virgil Gligor and 
his associates at the University of Maryland and with the National Security 
Agency (NSA) to develop a formal reference model for RBAC to provide a safe, 
effective, and consistent mechanism for access control. This effort is also 
implementing RBAC on NSA's Synergy Platform, a secure platform based on the 
Mach Operating System. CSL is also developing a demonstration of RBAC use in 
healthcare. The access policy used in this demonstration is based on a draft 
 consensus policy for patient record access developed in the United Kingdom. In 
conjunction with the Internal Revenue Service (IRS), CSL is defining roles and 
operations suitable for the IRS environment. In conjunction with the Veterans 
Administration (VA), CSL is studying the applicability of RBAC to VA 
systems.</p><p>Based on current research and experience, RBAC appears to fit 
well into the widely varying security policies of industry and government 
organizations.</p><p>For additional information on Role-Based Access Control 
see:</p><p>http://waltz.ncsl.nist.gov/rbac/</p><p>or contact David Ferraiolo, 
[email protected], (301) 975-3046.</p></div><div 
class="section"><h2>References<a name="References"></a></h2><p>Department of 
Defense, &quot;Trusted Computer Security Evaluation Criteria,&quot; DoD 
5200.28-STD, 1985.</p><p>David F. Ferraiolo and D. Richard Kuhn, 
&quot;Role-Based Access Controls,&quot; Proceedings of the 15th NIST-NSA 
National Computer Security Conference, B
 altimore, Maryland, October 13-16, 1992.</p><p>David F. Ferraiolo, Dennis M. 
Gilbert, and Nickilyn Lynch, &quot;An Examination of Federal and Commercial 
Access Control Policy Needs,&quot; Proceedings of the 16th NIST-NSA National 
Computer Security Conference, Baltimore, Maryland, September 20-23, 
1993.</p><p>ISO/IEC 9075, (Working Draft) Database Language SQL - Part 2: 
Foundation, Document ISO/IEC JTC1/SC21 N9463, March 1995.</p><p>A. Griew and R. 
Currell, &quot;A Strategy for Security of the Electronic Patient Record,&quot; 
Institute for Health Informatics, Aberystwyth, Draft Version 2.1, March 8, 
1995.</p><p>David F. Ferraiolo, Janet A. Cugini, and D. Richard Kuhn, 
&quot;Role-Based Access Control (RBAC): Features and Motivations,&quot; 11th 
Annual Computer Security Applications Proceedings, 1995.</p><p>John Barkley, 
&quot;Application Engineering in Health Care,&quot; Proceedings of the 2nd 
Annual CHIN Summit, 1995.</p><p>CORBA Security Draft, Object Management Group 
(OMG) 
 Document Number 95-9-1, September 1995.</p><p>John Barkley, &quot;Implementing 
Role-Based Access Control using Object Technology,&quot; First ACM Workshop on 
Role-Based Access Control, Gaithersburg, Maryland, November 30-December 1, 
1995.</p><p>T. Parker and D. Pinkas, &quot;SESAME Technology Version 3: 
Overview,&quot;</p><p>http://www.esat.kuleuven.ac.be/cosic/sesame/doc-txt/overview.txt</p><p>Background
 material in a text box in the paper document:</p><p>Access control technology 
has evolved from research and development efforts supported by the Department 
of Defense (DoD). This research has resulted in two fundamental types of access 
control: Discretionary Access Control (DAC) and Mandatory Access Control (MAC). 
While initial research and applications addressed preventing the unauthorized 
access to classified information, recent applications have applied these 
policies to commercial processing environments.</p><p>DAC permits the granting 
and revoking of access control pri
 vileges to be left to the discretion of the individual users. A DAC mechanism 
allows users to grant or revoke access to any of the objects under their 
control. As such, users are said to be the owners of the objects under their 
control. However, for many organizations, the end users do not own the 
information for which they are allowed access. For these organizations, the 
corporation or agency is the actual owner of system objects as well as the 
programs that process them. Access priorities are controlled by the 
organization and are often based on employee functions rather than data 
ownership.</p><p>MAC, as defined in the DoD's Trusted Computer Security 
Evaluation Criteria (TCSEC), is &quot;A means of restricting access to objects 
based on the sensitivity (as represented by a label) of the information 
contained in the objects and the formal authorization (i.e. clearance) of 
subjects to access information of such sensitivity.&quot;</p><p>These policies 
for access control are 
 not particularly well suited to the requirements of government and industry 
organizations that process unclassified but sensitive information. In these 
environments, security objectives often support higher-level organizational 
policies which are derived from existing laws, ethics, regulations, or 
generally accepted practices. Such environments usually require the ability to 
control actions of individuals beyond just an individual's ability to access 
information according to how that information is labeled based on its 
sensitivity.</p></div>
+            <!-- Licensed to the Apache Software Foundation (ASF) under one 
--><!-- or more contributor license agreements.  See the NOTICE file --><!-- 
distributed with this work for additional information --><!-- regarding 
copyright ownership.  The ASF licenses this file --><!-- to you under the 
Apache License, Version 2.0 (the --><!-- "License"); you may not use this file 
except in compliance --><!-- with the License.  You may obtain a copy of the 
License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  
--><!-- Unless required by applicable law or agreed to in writing, --><!-- 
software distributed under the License is distributed on an --><!-- "AS IS" 
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --><!-- KIND, either express or 
implied.  See the License for the --><!-- specific language governing 
permissions and limitations --><!-- under the License. --><!-- NOTE: For help 
with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mi
 ni/guide-apt-format.html --><div class="section"><h2>An Introduction to Role 
Based Access<a name="An_Introduction_to_Role_Based_Access"></a></h2><p>This 
introduction provides background information on Role-Based Access Control 
(RBAC), a technical means for controlling access to computer resources. While 
still largely in the demonstration and prototype stages of development, RBAC 
appears to be a promising method for controlling what information computer 
users can utilize, the programs that they can run, and the modifications that 
they can make. Only a few off-the-shelf systems that implement RBAC are 
commercially available; however, organizations may want to start investigating 
RBAC for future application in their multi-user systems. RBAC is appropriate 
for consideration in systems that process unclassified but sensitive 
information, as well as those that process classified 
information.</p></div><div class="section"><h2>What is Role-Based Access 
Control<a name="What_is_Role-B
 ased_Access_Control"></a></h2><p>Access is the ability to do something with a 
computer resource (e.g., use, change, or view). Access control is the means by 
which the ability is explicitly enabled or restricted in some way (usually 
through physical and system-based controls). Computer- based access controls 
can prescribe not only who or what process may have access to a specific system 
resource, but also the type of access that is permitted. These controls may be 
implemented in the computer system or in external devices.</p><p>With 
role-based access control, access decisions are based on the roles that 
individual users have as part of an organization. Users take on assigned roles 
(such as doctor, nurse, teller, manager). The process of defining roles should 
be based on a thorough analysis of how an organization operates and should 
include input from a wide spectrum of users in an organization.</p><p>Access 
rights are grouped by role name, and the use of resources is restrict
 ed to individuals authorized to assume the associated role. For example, 
within a hospital system the role of doctor can include operations to perform 
diagnosis, prescribe medication, and order laboratory tests; and the role of 
researcher can be limited to gathering anonymous clinical information for 
studies.</p><p>The use of roles to control access can be an effective means for 
developing and enforcing enterprise-specific security policies, and for 
streamlining the security management process.</p></div><div 
class="section"><h2>Users and Roles<a name="Users_and_Roles"></a></h2><p>Under 
the RBAC framework, users are granted membership into roles based on their 
competencies and responsibilities in the organization. The operations that a 
user is permitted to perform are based on the user's role. User membership into 
roles can be revoked easily and new memberships established as job assignments 
dictate. Role associations can be established when new operations are 
instituted, and
  old operations can be deleted as organizational functions change and evolve. 
This simplifies the administration and management of privileges; roles can be 
updated without updating the privileges for every user on an individual 
basis.</p><p>When a user is associated with a role:</p><p>the user can be given 
no more privilege than is necessary to perform the job. This concept of least 
privilege requires identifying the user's job functions, determining the 
minimum set of privileges required to perform that function, and restricting 
the user to a domain with those privileges and nothing more. In less precisely 
controlled systems, this is often difficult or costly to achieve. Someone 
assigned to a job category may be allowed more privileges than needed because 
is difficult to tailor access based on various attributes or constraints. Since 
many of the responsibilities overlap between job categories, maximum privilege 
for each job category could cause unlawful access.</p></div><di
 v class="section"><h2>Roles and Role Hierarchies<a 
name="Roles_and_Role_Hierarchies"></a></h2><p>Under RBAC, roles can have 
overlapping responsibilities and privileges; that is, users belonging to 
different roles may need to perform common operations. Some general operations 
may be performed by all employees. In this situation, it would be inefficient 
and administratively cumbersome to specify repeatedly these general operations 
for each role that gets created. Role hierarchies can be established to provide 
for the natural structure of an enterprise. A role hierarchy defines roles that 
have unique attributes and that may contain other roles; that is, one role may 
implicitly include the operations that are associated with another 
role.</p><p>In the healthcare situation, a role Specialist could contain the 
roles of Doctor and Intern. This means that members of the role Specialist are 
implicitly associated with the operations associated with the roles Doctor and 
Intern without 
 the administrator having to explicitly list the Doctor and Intern operations. 
Moreover, the roles Cardiologist and Rheumatologist could each contain the 
Specialist role.</p><p>Role hierarchies are a natural way of organizing roles 
to reflect authority, responsibility, and competency:</p><p>the role in which 
the user is gaining membership is not mutually exclusive with another role for 
which the user already possesses membership. These operations and roles can be 
subject to organizational policies or constraints. When operations overlap, 
hierarchies of roles can be established. Instead of instituting costly auditing 
to monitor access, organizations can put constraints on access through RBAC. 
For example, it may seem sufficient to allow physicians to have access to all 
patient data records if their access is monitored carefully. With RBAC, 
constraints can be placed on physician access so that only those records that 
are associated with a particular physician can be accessed.</
 p></div><div class="section"><h2>Roles and Operations<a 
name="Roles_and_Operations"></a></h2><p>Organizations can establish the rules 
for the association of operations with roles. For example, a healthcare 
provider may decide that the role of clinician must be constrained to post only 
the results of certain tests but not to distribute them where routing and human 
errors could violate a patient's right to privacy. Operations can also be 
specified in a manner that can be used in the demonstration and enforcement of 
laws or regulations. For example, a pharmacist can be provided with operations 
to dispense, but not to prescribe, medication.</p><p>An operation represents a 
unit of control that can be referenced by an individual role, subject to 
regulatory constraints within the RBAC framework. An operation can be used to 
capture complex security-relevant details or constraints that cannot be 
determined by a simple mode of access.</p><p>For example, there are differences 
between t
 he access needs of a teller and an accounting supervisor in a bank. An 
enterprise defines a teller role as being able to perform a savings deposit 
operation. This requires read and write access to specific fields within a 
savings file. An enterprise may also define an accounting supervisor role that 
is allowed to perform correction operations. These operations require read and 
write access to the same fields of a savings file as the teller. However, the 
accounting supervisor may not be allowed to initiate deposits or withdrawals 
but only perform corrections after the fact. Likewise, the teller is not 
allowed to perform any corrections once the transaction has been completed. The 
difference between these two roles is the operations that are executed by the 
different roles and the values that are written to the transaction log 
file.</p><p>The RBAC framework provides administrators with the capability to 
regulate who can perform what actions, when, from where, in what order, an
 d in some cases under what relational circumstances:</p><p>only those 
operations that need to be performed by members of a role are granted to the 
role. Granting of user membership to roles can be limited. Some roles can only 
be occupied by a certain number of employees at any given period of time. The 
role of manager, for example, can be granted to only one employee at a time. 
Although an employee other than the manager may act in that role, only one 
person may assume the responsibilities of a manager at any given time. A user 
can become a new member of a role as long as the number of members allowed for 
the role is not exceeded.</p></div><div class="section"><h2>Advantages of 
RBAC<a name="Advantages_of_RBAC"></a></h2><p>A properly-administered RBAC 
system enables users to carry out a broad range of authorized operations, and 
provides great flexibility and breadth of application. System administrators 
can control access at a level of abstraction that is natural to the way t
 hat enterprises typically conduct business. This is achieved by statically and 
dynamically regulating users' actions through the establishment and definition 
of roles, role hierarchies, relationships, and constraints. Thus, once an RBAC 
framework is established for an organization, the username administrative 
actions are the granting and revoking of users into and out of roles. This is 
in contrast to the more conventional and less intuitive process of attempting 
to administer lower-level access control mechanisms directly (e.g., access 
control lists [ACLs], capabilities, or type enforcement entities) on an 
object-by-object basis.</p><p>Further, it is possible to associate the concept 
of an RBAC operation with the concept of &quot;method&quot; in Object 
Technology. This association leads to approaches where Object Technology can be 
used in applications and operating systems to implement an RBAC 
operation.</p><p>For distributed systems, RBAC administrator responsibilities 
can 
 be divided among central and local protection domains; that is, central 
protection policies can be defined at an enterprise level while leaving 
protection issues that are of local concern at the organizational unit level. 
For example, within a distributed healthcare system, operations that are 
associated with healthcare providers may be centrally specified and pertain to 
all hospitals and clinics, but the granting and revoking of memberships into 
specific roles may be specified by administrators at local sites.</p></div><div 
class="section"><h2>Status of Current RBAC Activities<a 
name="Status_of_Current_RBAC_Activities"></a></h2><p>Several organizations are 
experimenting with the inclusion of provisions for RBAC in open consensus 
specifications. RBAC is an integral part of the security models for Secure 
European System for Applications in a Multi-vendor Environment (SESAME) 
distributed system and the database language SQL3. In addition, the Object 
Management Group's (OMG) Co
 mmon Object Request Broker Architecture (CORBA) Security specification uses 
RBAC as an example of an access control mechanism which can be used with the 
distributed Object Technology defined by the OMG. (See reference 
below.)</p><p>CSL has been developing and defining RBAC and its applicability 
cooperatively with industry, government, and academic partners. In conjunction 
with Dr. Ravi Sandhu of George Mason University and Seta Corporation, CSL is 
defining RBAC and its feasibility. We are working with Dr. Virgil Gligor and 
his associates at the University of Maryland and with the National Security 
Agency (NSA) to develop a formal reference model for RBAC to provide a safe, 
effective, and consistent mechanism for access control. This effort is also 
implementing RBAC on NSA's Synergy Platform, a secure platform based on the 
Mach Operating System. CSL is also developing a demonstration of RBAC use in 
healthcare. The access policy used in this demonstration is based on a draft c
 onsensus policy for patient record access developed in the United Kingdom. In 
conjunction with the Internal Revenue Service (IRS), CSL is defining roles and 
operations suitable for the IRS environment. In conjunction with the Veterans 
Administration (VA), CSL is studying the applicability of RBAC to VA 
systems.</p><p>Based on current research and experience, RBAC appears to fit 
well into the widely varying security policies of industry and government 
organizations.</p><p>For additional information on Role-Based Access Control 
see:</p><p>http://waltz.ncsl.nist.gov/rbac/</p><p>or contact David Ferraiolo, 
[email protected], (301) 975-3046.</p></div><div 
class="section"><h2>References<a name="References"></a></h2><p>Department of 
Defense, &quot;Trusted Computer Security Evaluation Criteria,&quot; DoD 
5200.28-STD, 1985.</p><p>David F. Ferraiolo and D. Richard Kuhn, 
&quot;Role-Based Access Controls,&quot; Proceedings of the 15th NIST-NSA 
National Computer Security Conference, Ba
 ltimore, Maryland, October 13-16, 1992.</p><p>David F. Ferraiolo, Dennis M. 
Gilbert, and Nickilyn Lynch, &quot;An Examination of Federal and Commercial 
Access Control Policy Needs,&quot; Proceedings of the 16th NIST-NSA National 
Computer Security Conference, Baltimore, Maryland, September 20-23, 
1993.</p><p>ISO/IEC 9075, (Working Draft) Database Language SQL - Part 2: 
Foundation, Document ISO/IEC JTC1/SC21 N9463, March 1995.</p><p>A. Griew and R. 
Currell, &quot;A Strategy for Security of the Electronic Patient Record,&quot; 
Institute for Health Informatics, Aberystwyth, Draft Version 2.1, March 8, 
1995.</p><p>David F. Ferraiolo, Janet A. Cugini, and D. Richard Kuhn, 
&quot;Role-Based Access Control (RBAC): Features and Motivations,&quot; 11th 
Annual Computer Security Applications Proceedings, 1995.</p><p>John Barkley, 
&quot;Application Engineering in Health Care,&quot; Proceedings of the 2nd 
Annual CHIN Summit, 1995.</p><p>CORBA Security Draft, Object Management Group 
(OMG) D
 ocument Number 95-9-1, September 1995.</p><p>John Barkley, &quot;Implementing 
Role-Based Access Control using Object Technology,&quot; First ACM Workshop on 
Role-Based Access Control, Gaithersburg, Maryland, November 30-December 1, 
1995.</p><p>T. Parker and D. Pinkas, &quot;SESAME Technology Version 3: 
Overview,&quot;</p><p>http://www.esat.kuleuven.ac.be/cosic/sesame/doc-txt/overview.txt</p><p>Background
 material in a text box in the paper document:</p><p>Access control technology 
has evolved from research and development efforts supported by the Department 
of Defense (DoD). This research has resulted in two fundamental types of access 
control: Discretionary Access Control (DAC) and Mandatory Access Control (MAC). 
While initial research and applications addressed preventing the unauthorized 
access to classified information, recent applications have applied these 
policies to commercial processing environments.</p><p>DAC permits the granting 
and revoking of access control priv
 ileges to be left to the discretion of the individual users. A DAC mechanism 
allows users to grant or revoke access to any of the objects under their 
control. As such, users are said to be the owners of the objects under their 
control. However, for many organizations, the end users do not own the 
information for which they are allowed access. For these organizations, the 
corporation or agency is the actual owner of system objects as well as the 
programs that process them. Access priorities are controlled by the 
organization and are often based on employee functions rather than data 
ownership.</p><p>MAC, as defined in the DoD's Trusted Computer Security 
Evaluation Criteria (TCSEC), is &quot;A means of restricting access to objects 
based on the sensitivity (as represented by a label) of the information 
contained in the objects and the formal authorization (i.e. clearance) of 
subjects to access information of such sensitivity.&quot;</p><p>These policies 
for access control are n
 ot particularly well suited to the requirements of government and industry 
organizations that process unclassified but sensitive information. In these 
environments, security objectives often support higher-level organizational 
policies which are derived from existing laws, ethics, regulations, or 
generally accepted practices. Such environments usually require the ability to 
control actions of individuals beyond just an individual's ability to access 
information according to how that information is labeled based on its 
sensitivity.</p></div>
                   </div>
           </div>
 


Reply via email to