Enterprise Authorization Use Case Document
Version 0.1
Table of Contents
Glossary
The goal was to stay as close as possible to the MACE-paccman-glossary.
Actor Name |
Description |
---|---|
Auditor |
External entity that audits privileges |
DSA (Grantor) |
A principal authorized to delegate some authority. Subjects are assigned to DSAs to manage the privileges of the subject. |
Super DSA (Super Grantor?) |
A principal authorized to grant DSAs the privilege of granting a set privileges. Super DSA delegates authorization decisions to the DSA. Super DSAs also administer the various privileges. |
Use Cases
0. Define Privileges
Actors |
Super DSA |
Goal |
To establish privileges |
Summary |
Super DSAs need to define the different privileges and the scopes associated with them. The scope in which the privilege is used determines the fine grained access. For example, a subject is allowed to make purchases only for departments x, y, and z. In most cases, the scope refers to the campus hierarchy. The service needs to be flexible enough to allow us to define multiple hierarchies. Sometimes, wildcards are used to denote that the scope applies to all units at a certain level in the hierarchy. A group of asterisks can be thought of as a single wildcard value. No support is needed for values like "6*33**"
|
Primary Path |
|
1. Delegated Authorization
Actors |
Super DSA, future DSA, stakeholder |
Goal |
The ability to assign a subject to grant access for a subset of privileges. |
Summary |
A Super DSA defines who can act as a DSA to assign privileges. The privileges that a DSA can assign are bounded by what the Super DSA grants to the DSA. |
Precondition |
|
Primary Path |
|
Postcondition |
|
2. Standard API for Determining Access
Actors |
External Application, end users |
Goal |
To provide a standardized way to determine access. |
Summary |
A well documented, standard (SAML, XACML, SOAP/REST, etc) way of determining if a subject is authorized to perform a business function. The API should be available across all platforms. This is essential not only to consolidate the authorization service for homegrown applications but also vendor or otherwise black box applications. |
Precondition |
|
Primary Path |
|
2a) Alternate Path (Get Authorized Scope) |
|
2b) Alternate Path (Find Valid Subjects) |
|
2c) Alternate Path (Get Subject's Access) |
|
3. Standard API for Granting Access
Actors |
External Application, DSAs, end users |
Goal |
To provide a mechanism to allow applications other than the central GUI to provision access. |
Summary |
In addition to determining access within applications, there is a desire to manage authorization in the applications themselves. e.g. Students can decide what their parents can do on their behalf or what information the student would like to release to others. Another use for this feature would give DSAs the ability to provision access withing their own applications without being tied to the central product's GUI. |
Primary Path |
|
Post Conditions |
|
4. Assign Privileges With Low Level Granularity
Actors |
DSA, Subject |
Goal |
Assign a privilege to a subject with additional parameters. |
Summary |
In most cases, having a privilege is not sufficient to grant access for a business function. |
Precondition |
|
Primary Path |
|
Alternate Path (Workflow Requirement) |
|
Alternate Path (No hierarchy) |
|
Post Conditions |
|
5. Assign Privileges for Files / Directories Supported by Servers (CMS)
Actors |
DSA |
Goal |
Restrict the viewing of individual static files/folders to authorized users only. |
Summary |
Static resources need to be restricted as well. Our CMS pushes static content to servers and there needs to be a way to push privileges to these servers as well. |
Preconditions |
|
Precondition |
|
Primary Path |
|
6. Assign Subjects to Groups (Coarse-Grained Control)
A group is a subject
Group membership is maintained independently of privileges. Groups can either be based on attributes ("Subject A is an employee") or roles ("Subject A can hire future employees")
Actors |
DSA, Super DSA, Subject |
Goal |
Provide RBAC and group-based privileges. |
Summary |
Assigning users to groups allows DSAs to grant privileges to a group of users while keeping the management of the groups external to the privilege management. Groups can be modeled after roles. |
Primary Path |
|
Alternate Path (Self-Subscribed) |
|
Alternate Path (Entitlements) |
|
7. Audit Privileges
Actors |
Auditor |
Goal |
Provide a mechanism to audit privileges. |
Summary |
A mechanism is required that allows an auditor to query a subject's access on at any given time. In other words, given a user and a time frame what privileges were assigned to said user. Another case is finding privileges in conflict with business policies and auditing/enforcing separation of duties. Auditors also want to know who requested the access and why, and who granted the access and relevant workflow approvals. |
Primary Path |
|
Alternate Path (Who/Why) |
|
8. Provision Privileges to External System
Actors |
DSA |
Goal |
Provision access control to the OS |
Summary |
It is desirable to control access to various resources such as Active Directory, OS, external database, web service, JMS, Email etc. |
Primary Path |
|
Functional Requirements
Campus IdM Integration
The solution must integrate with the campus single sign-on, UC wide federated authentication, and other existing IdM systems.
Third Party Access
Access control solution should handle access to applications shared with other non-UCI users as well as third-party affiliates with access controlled by and assigned to other UCI users.
Non-Functional/Quality Requirements
Scalability, robustness, ability to cluster, performance.
- The application and backend must be able to meet the performance demands of the entire campus.