Streams Security

Streams manages security by principals (users, groups and roles).  Security objects protect Streams objects and manages access to these objects.  A user is granted permission if:

Principals

Users

Users are defined by the back end authentication provider Streams is configured to use, for example LDAP.  Streams does not manage users in this repository.  In order to manage the users such as adding, updating and removing users, you must use the tools provided by the provider.  Streams is only aware of the users that have specific Streams permissions.  Listing users via the REST management API will only return the list of users Streams is aware of, not the complete list of users in the back end store.

Users can be granted specific object permissions.  For example, "read" access to security object "job_0" for user A grants user A access to information about the job with identifier 0.  A user can be assigned one or more roles.  Managing user access to Streams by roles is the recommended approach. 

Groups

Groups, like users, are defined by the back end authentication provider Streams is configured to use.  As with users, groups must be managed by using the tools supplied by the provider.  Streams is only aware of groups that have explicit Streams permissions.  Listing groups via the REST management API will only return the list of groups Streams is aware of, not the complete list of groups in the back end store.

Groups can be granted specific object permissions.  For example, "read" access to security object "job_0" for group A grants every user that belong to group A access to information about the job with identifier 0.  A group can be assigned one or more roles.  All users that belong to the group would have the super set of all permissions for roles the group has been assigned.

Roles

Roles are defined by Streams and can be used to group permissions.  Unlike users and groups, roles are defined by Streams and can be managed by using the tools provided by Streams.

Roles can be granted specific object permissions.  For example, "read" access to security object "job_0" for role JOBUSER would grant every user that has been assigned the role of JOBUSER, and any user that belongs to any group that has been assigned the role of JOBUSER access to information about the job with identifier 0.  Roles is the recommended way of managing access to Streams.

Security Objects

Streams uses security objects to manage access to Streams objects. For exmple, you can manage access to the domain, instances, hosts and jobs.

Permissions

The permission settings are the settings Streams checks for access.  For example, if security object job_0 has delete permission set for user A, then user A has the ability to cancel the job with identifier 0.

The following permissions are supported.

Search
Controls the ablilty to list children objects. For example, "search" permission to a job group for user A allows user A to list the jobs submitted under that job group.
Add
Controls the ability to add a child object.  For example, "add" permission to a job group for user A allows user A to submit a job under that job group.
Delete
Controls the ability to delete the object.  For example, "delete" permission to job_0 for user A allows user A to cancel the job with identifier 0.
Read
Controls the ability to access information about the object.  For example, "read" permission to job_0 for user A allows user A to access job information and job data for the job with identifier 0.
Write
Controls the ability to change the information about the object.  For example, "write" permission to job_0 for user A allows user A to manage the job, such as stop and start PEs for the job with identifier 0.
Own
Grants the user special permission to the object. For example, "own" permission to job_0 for user A gives user A all access to the job with identifier 0, regardless of what the other permissions are for user A.

Default Permissions

Default permissions are permissions that children objects inherit when they are created.  Default permissions are not used for permission calculations.  For example, if security object for job group JOBGROUP1 has default permissions of read, write and delete for user A, when the first job is submitted to JOBGROUP1 (job identifier 0), the security object job_0 would have permissions of read, write and delete for user A.

Resolved Permissions

Resolved permissions are what the user has for permissions after Streams has resolved the permissions using all the groups to which the user belongs, all the roles assigned to the user, and all the roles assigned to the groups to which the user belongs.