Jazz ACLs

Modified on 2017/05/16 16:16 by Charles — Categorized as: Jazz, Jazz Administration


Jazz ACLs

Jazz Access Control Lists (ACLs) are used to control access to Jazz Objects.

From Wikipedia:
Within an organization, Roles are created for various job functions. The permissions to perform certain operations are assigned to specific roles. Members or staff (or other system users) are assigned particular roles, and through those role assignments acquire the computer permissions to perform particular computer-system functions. Since users are not assigned permissions directly, but only acquire them through their role (or roles), management of individual user rights becomes a matter of simply assigning appropriate roles to the user's account; this simplifies common operations, such as adding a user, or changing a user's department.

An access control list (ACL), with respect to a computer file system, is a list of permissions attached to an object. An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects. Each entry in a typical ACL specifies a subject and an operation. For instance, if a file has an ACL that contains (Alice: read,write; Bob: read), this would give Alice permission to read and write the file and Bob to only read it.


Jazz ACL Implementation

Jazz implements three types of ACL.
Note: Each of these types of ACL can be defined for members of the Jazz object. Jazz ACLs with no members defined are referred to as 'simple' ACLs.

Default ACL

A Jazz object can have one (simple) ACL. If there is no default ACL found on a Jazz object, the default is that any user has read/write access the Jazz object. If a default ACL is found with DENY access, then the default is that every user cannot either read or write this object. If a default ACL is found with Read-Only access, then the default is that every user can read the object but cannot write to the object.

ACL = Access Type

The default ACL is an access type of last resort. If the user has no ACLs, then the access can be determined by the default ACL access type.

Users ACLs

A Jazz object can have many User ACLs. If the User ACL has an Allow access, then the user is immediately granted read/write access to the object. If the User ACL has a Read-Only access, then the user has read only access to the object, UNLESS the user also has a Role ACL with Allow access. If the User ACL has a Deny access, then the user has deny access to the object, UNLESS the user also has a Role ACL with Allow or Read-Only access.

ACL = User + Access Type

Jazz implements a User-based ACL. This can be assigned to power users in the organization to access Jazz objects.

Roles ACLs

A Jazz object can have many Role ACLs. If the Role ACL has an Allow access, then users with this Role are immediately granted read/write access to the object. If the Role ACL has a Read-Only access, then users with this Role have read only access to the object, UNLESS the user also has a User ACL or a Role ACL with Allow access. If the User ACL has a Deny access, then users with this Role have deny access to the object, UNLESS the user also has a User ACL or a Role ACL with Allow or Read-Only access.

There are two sides in the Role/ACL equation:
The user's Role is matched against the Role assigned in the ACL of the target object.

ACL = Role + Access Type

Jazz implements ACL as a Role and an Access Type. The Access Type can be:

Workspace ACLs


To define a user's private space, create a User workspace and add 2 ACLs:

Designing ACLs

When designing ACLs for your organization, keep the rules simple so that your users understand them.

ACL Algorithm

The ACL algorithm is as follows:

Assigning Roles

Roles are assigned to Users in the Jazz Admin Panel using the Jazz Assign Roles to Users Web Part.
Roles are removed from Users in the Jazz Admin Panel using the Review Jazz Users Roles Web Part.

Assigning ACLs

ACLs are assigned to Jazz Objects using the Web Part: Jazz Model Access Control List.
Image

Assigning ACLs to a Jazz Object after it is created can be error prone. A better approach is to assign the ACLs on the fly when the Jazz Object is created. Refer to Web Part: Configure Jazz Model ACLs to read about this approach.

ACLs and Workspace

Workspace is represented as a Jazz object that has functionality similar to a directory in a file system. All Jazz Records reside within a single workspace. Like a file system, permissions can be assigned to a workspace via ACLs. Workspaces support:

Public Workspace

The "Public" workspace has no access restrictions. All Jazz Records that are created will reside inside the public workspace by default. No other workspaces are necessary unless advanced functionalilty is required.

Workspace Procedures

The Workspace of a Jazz Record can be changed in the Web Part: Jazz Editor.
Workspaces are created in the Jazz Admin Panel using the Jazz New Workspace Web Part.
Workspaces are deleted in the Jazz Admin Panel using the Jazz Workspaces Web Part.
Roles are assigned to a Workspace ACL in the Jazz Admin Panel using the Assign Jazz Roles to Workspace Access List Web Part.
Roles are removed from a Workspace ACL in the Jazz Admin Panel using the Jazz Workspace ACL Web Part.

Workspace usage

Workspaces should be used for work groups that have the same permissions for access to a set of Jazz Records. e.g. an accounting department looks after the financial records for the company. Everyone in the accounting department has read-write access to the records. Senior management have read-only access to the records and everyone else in the company is denied access to the records. By placing all accounting records in an 'Accounting' Workspace with three ACLs that represent the three access groups, the security goal is achieved.