taylor 2005/01/25 00:36:30
Modified: xdocs bronco.xml
Log:
psml constraint based authorization documentation
Revision Changes Path
1.2 +285 -2 jakarta-jetspeed-2/xdocs/bronco.xml
Index: bronco.xml
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/xdocs/bronco.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- bronco.xml 18 Jan 2005 07:55:19 -0000 1.1
+++ bronco.xml 25 Jan 2005 08:36:29 -0000 1.2
@@ -23,12 +23,295 @@
</authors>
</properties>
<body>
-<section name="PSML Authorization">
+<section name="Security Constraints">
<p>
-TODO: talk about Bronco authorization : ...
+<ul>
+ <li><a href="#The Security Constraint">Security Constraint</a></li>
+ <li><a href="#Declarative and Global Constraints">Declarative and
Global Constraints</a></li>
+ <li><a href="#Folder Constraints">Folder Constraints</a></li>
+ <li><a href="#Page Constraints">Page Constraints</a></li>
+ <li><a href="#Spring Configuration">Spring Configuration</a></li>
+ <li><a href="#Subsite Security">Subsite Security</a></li>
+</ul>
</p>
+<p>
+Security Constraints are applied to pages and folders. Security Constraints
either grant or deny
+access to pages and folders. Constraints can be defined in one of three
places:
+<ul>
+ <li>1. <b>Global:</b> As declarations in the <b><i>page.security</i></b>
file found in the root of the PSML tree.</li>
+ <li>2. <b>Folder:</b> In the <b><i>folder.metadata</i></b> file
optionally located in every directory</li>
+ <li>3. <b>Page:</b> In PSML files to constraint access to specific
pages</li>
+</ul>
+</p>
+<subsection name='Grants'>
+<p>
+Grants are associated with permissions, authorizing, or granting, a
principal list
+access to a page or folder.
+A granting security constraint is the association of a list of one
+or more security principals combined with one or permissions. Grant
constraints grant access to a page or folder
+for the associated list of permissions.
+</p>
+</subsection>
+<subsection name='Denies'>
+<p>
+A deny security constraint is declared
+with one or more security principals; with no associated permissions. Deny
constraints prohibit access
+to the page or folder for the given list of principals. Note that deny
constraints
+must be listed before grant constraints.
+</p>
+</subsection>
+<subsection name='Declarative and Referential Constraints'>
+<p>
+When working with pages and folder resource constraints, a constraint can be
either
+a <b><i>declarative constraint</i></b> or a <b><i>referential</i></b>
constraint.
+Declarative constraints are declared and put to use right in place for the
particular
+page or folder resource. Where as referential constraints refer to a
constraint declared
+in a centralized security constraint resource: the
<b><i>page.security</i></b> file. Each
+site or subsite can have one <b><i>page.security</i></b> resource for
declaring constraints
+to be referenced in any page or folder.
+</p>
+</subsection>
</section>
+<section name='The Security Constraint'>
+<p>
+A security constraint is an XML element found in a PSML file, a folder
metadata file, or inthe global security declarations.
+A security constraint has one attribute: the name. A security constraint has
the following elements:
+</p>
+<ul>
+ <li>roles - a comma-separated list of one or more role principals or *
for all roles</li>
+ <li>groups - a comma-separated list of one or more group principals or *
for all groups</li>
+ <li>users - a comma-separated list of one or more user principals or *
for all users</li>
+ <li>owner - a single user principal</li>
+ <li>permissions - a comma-separated list of one or permissions
(view,edit,help)</li>
+</ul>
+<p>
+The first four elements (roles, groups, users, owner) all define the
principals who will either have a permission granted or denied.
+</p>
+<subsection name='Permissions'>
+<p>
+Permissions are the portal modes that are granted by the security
constraint. Note that permissions are only granted, not denied.
+The <b><i>view</i></b> permission is similiar to the <b><i>read</i></b>
permission found in operating systems.
+The <b><i>edit</i></b> permission is similiar to the <b><i>write</i></b>
permission found in operating systems.
+The <b><i>help</i></b> permission is similiar to the <b><i>info</i></b>
permission found in some portals.
+</p>
+</subsection>
+<subsection name='Roles'>
+<p>
+Constraints can be granted to one or more role principals for a set of
permissions on a given resource.
+Roles are derived from the authorized users list of role principals, i.e.
the roles that the user is a member of.
+If the authorized user is a member of any of the listed roles, the
permission to the resource will be granted.
+</p>
+<source><![CDATA[
+ <security-constraint>
+ <roles>adminstrator, manager</roles>
+ <permissions>view, edit</permissions>
+ </security-constraint>
+]]></source>
+Constraints can also deny role principals access to the entire resource.
+If the authorized user is a member of any of the listed roles, all access to
the resource is denied.
+<source><![CDATA[
+ <security-constraint>
+ <roles>adminstrator, manager</roles>
+ </security-constraint>
+]]></source>
+</subsection>
+<subsection name='Groups'>
+ <p>
+Constraints can be granted to one or more group principals for a set of
permissions on a given resource.
+Groups are derived from the authorized users list of group principals, i.e.
the groups that the user is a member of.
+If the authorized user is a member of any of the listed groups, the
permission to the resource will be granted.
+<source><![CDATA[
+ <security-constraint>
+ <groups>accounting, development</groups>
+ <permissions>view</permissions>
+ </security-constraint>
+]]></source>
+Constraints can also deny group principals access to the entire resource.
+If the authorized user is a member of any of the listed groups, all access
to the resource is denied.
+<source><![CDATA[
+ <security-constraint>
+ <groups>accounting, development</groups>
+ </security-constraint>
+]]></source>
+</p>
+</subsection>
+<subsection name='Users'>
+ <p>
+Constraints can be granted to one or more user principals for a set of
permissions on a given resource:
+The current user must be one of the listed principals in the comma-separated
list in order to grant permission to the resource.
+<source><![CDATA[
+ <security-constraint>
+ <users>joey, deedee, johnny</users>
+ <permissions>view, edit, help</permissions>
+ </security-constraint>
+]]></source>
+Constraints can also deny user principals access to the entire resource.
+If the authorized user is in the list, all access to the resource is denied.
+<source><![CDATA[
+ <security-constraint>
+ <users>fred</users>
+ </security-constraint>
+]]></source>
+</p>
+</subsection>
+<subsection name='Combinations'>
+<p>
+Note that you can grant or deny permissions to a collection of one or more
principal types. For example, here we grant view and edit permissions
+to the roles (manager, developer), and to the groups (QA and Research), and
to the particular user (dilbert):
+If the authorized user is a member of any of the listed roles, groups, or
users, the permission to the resource will be granted.
+</p>
+<source><![CDATA[
+ <security-constraint>
+ <roles>hacker, coder, guru</roles>
+ <groups>unix, linux, freebsd</groups>
+ <users>betty, fred, barney, wilma</users>
+ <permissions>view, edit</permissions>
+ </security-constraint>
+]]></source>
+<p>
+Constraints can also deny combinations of principals access to the entire
resource.
+If the authorized user is a member of any of the listed groups, roles or
users, all access to the resource is denied.
+</p>
+<source><![CDATA[
+ <security-constraint>
+ <roles>hacker, coder, guru</roles>
+ <groups>unix, linux, freebsd</groups>
+ <users>betty, fred, barney, wilma</users>
+ </security-constraint>
+]]></source>
+</subsection>
+<subsection name='All *'>
+<p>
+The * can be applied to roles, groups, users or permissions to imply ALL.
+<source><![CDATA[
+ <security-constraint>
+ <users>*</users>
+ <permissions>*</permissions>
+ </security-constraint>
+]]></source>
+</p>
+</subsection>
+<subsection name='Owner'>
+ <p>
+ TODO
+ </p>
+</subsection>
+</section>
+<section name='Declarative and Global Constraints'>
+<p>
+Declarative constraints are declared in the <b><i>page.security</i></b> file
of the root of a site or subsite.
+Declarative constraints are referenced in pages and folders with the
<b><i>security-constraints-ref</i></b> tag.
+Global constraints are also declarative constraints. They are also defined
and found in the <b><i>page.security</i></b> file in the root PSML repository.
+The difference with global constraints is ...
+Note that there can be more than one <b><i>page.security</i></b> files in a
subsite Jetspeed installation.
+</p>
+<source><![CDATA[
+ <security-constraints-def name="admin">
+ <security-constraint>
+ <roles>admin</roles>
+ <permissions>view, edit</permissions>
+ </security-constraint>
+ </security-constraints-def>
+ <global-security-constraints-ref>admin</global-security-constraints-ref>
+]]></source>
+<subsection name='Default Constraints'>
+<p>
+ Several security constraint declarations are made in the default
deployment of Jetspeed:
+<table>
+ <tr>
+ <th>name</th>
+ <th>grants</th>
+ <th>permissions</th>
+ <th>global</th>
+ </tr>
+ <tr>
+ <td>admin</td>
+ <td>roles: admin</td>
+ <td>view, edit</td>
+ <td>yes</td>
+ </tr>
+ <tr>
+ <td>manager</td>
+ <td>roles: manager</td>
+ <td>view</td>
+ <td>no</td>
+ </tr>
+ <tr>
+ <td>users</td>
+ <td>roles: user, manager</td>
+ <td>view</td>
+ <td>no</td>
+ </tr>
+ <tr>
+ <td>public-view</td>
+ <td>users: *</td>
+ <td>view</td>
+ <td>no</td>
+ </tr>
+ <tr>
+ <td>public-edit</td>
+ <td>users: *</td>
+ <td>view, edit</td>
+ <td>no</td>
+ </tr>
+</table>
+</p>
+</subsection>
+</section>
+<section name='Folder Constraints'>
+<p>
+Folder Security constraints are placed in a <b><il>security-constraints
list</il></b> in the <b><i>folder.metadata</i></b> file optionally found in
each folder in the site.
+Note that the absence of a <b><i>folder.metadata</i></b> or security
constraints within that file means that the folder will
+inherit the constraints of the parent folder, all the way up to the root
folder of the site or subsite. Folder constraints do
+not inherit across subsites. Folder security constraints are made up of
declarative security constraints and referential security
+constraints. Here is an example of both, the first being a referential
constraint, the second a declarative constraint:
+<source><![CDATA[
+ <security-constraints>
+ <security-constraints-ref>public-view</security-constraints-ref>
+ <security-constraint>
+ <groups>engineering</groups>
+ <permissions>view</permissions>
+ </security-constraint>
+ </security-constraints>
+]]></source>
+</p>
+<p>
+Note that all security constraints must be placed within a
<b><i>security-constraints</i></b> collection.
+</p>
+</section>
+<section name='Page Constraints'>
+<p>
+Page Security constraints are placed <b><il>security-constraints
list</il></b>
+in <b><i>PSML</i></b> files and are optional.
+Note that the absence of a security constraints list within that file means
that the folder will
+inherit the constraints of the folder in which it resides. Page security
constraints are made up of
+declarative security constraints and referential security
+constraints. Here is an example of both, the first being a referential
constraint, the second a declarative constraint:
+</p>
+<source><![CDATA[
+ <security-constraints>
+ <security-constraints-ref>global-view</security-constraints-ref>
+ <security-constraint>
+ <groups>accounting</groups>
+ <permissions>view, edit</permissions>
+ </security-constraint>
+ </security-constraints>
+]]></source>
+<p>
+Note that all security constraints must be placed within a
<b><i>security-constraints</i></b> collection.
+</p>
+</section>
+<section name="Spring Configuration">
+<p>
+TODO: page-manager.xml enabling
+</p>
+</section>
+<section name="Subsite Security">
+<p>
+subsite security
+</p>
+</section>
</body>
</document>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]