Administrative roles and naming service authorization


WAS extends the Java EE security role-based access control to protect WAS admin and naming subsystems.

 

Administrative roles

A number of admin roles are defined to provide the degrees of authority that are needed to perform certain WAS administrative functions from either the admin console or the system management scripting interface called wsadmin. The authorization policy is only enforced when administrative security is enabled.

The following table describes the administrative roles:


Table 1. Administrative roles that are available through the admin console and wsadmin

Role Description
Monitor An individual or group that uses the monitor role has the least amount of privileges. A monitor can complete the following tasks:

  • View the WAS configuration.

  • View the current state of the appserver.

Configurator An individual or group that uses the configurator role has the monitor privilege plus the ability to change the WAS configuration. The configurator can perform all the day-to-day configuration tasks. For example, a configurator can complete the following tasks:

  • Create a resource.

  • Map an appserver.

  • Install and uninstall an application.

  • Deploy an application.

  • Assign users and groups-to-role mapping for applications.

  • Set up Java 2 security permissions for applications.

  • Customize the CSIv2, Secure Authentication Service (SAS), and SSL configurations.

    SAS is supported only between V6.0.x and previous version servers that have been federated in a V6.1 cell.

Operator An individual or group that uses the operator role has monitor privileges plus ability to change the runtime state. For example, an operator can complete the following tasks:

  • Stop and start the server.

  • Monitor the server status in the admin console.

Administrator An individual or group that uses the administrator role has the operator and configurator privileges plus additional privileges that are granted solely to the administrator role. For example, an administrator can complete the following tasks:

  • Modify the server user ID and password.

  • Set authentication and authorization mechanisms.

  • Enable or disable administrative security.

    In previous releases of WAS, the Enable administrative security option is known as the Enable global security option.

  • Enforce Java 2 security using the Use Java 2 security to restrict application access to local resources option.

  • Change the LTPA password and generate keys.

  • Create, update, or delete users in the federated repositories configuration.

  • Create, update, or delete groups in the federated repositories configuration.

An administrator cannot map users and groups to the administrator roles.

Adminsecuritymanager Only users who are granted this role can map users to admin roles. Also, when fine-grained administrative security is used, only users who are granted this role can manage authorization groups. See Administrative roles for more information.
Deployer Users who are granted this role can perform both configuration actions and runtime operations on applications.
Auditor Users granted this role can view and modify the settings for the security auditing subsystem.

For example, a user with the auditor role can complete the following tasks:

  • Enable and disable the security auditing subsystem.

  • Select the event factory implementation to be used with the event factory plug-in point.

  • Select and configure the service provide, or emitter. or both to be used with the service provider plug-in point.

  • Set the audit policy that describes the behavior of the appserver in the event of an error with the security auditing subsystem.

  • Define which security events are to be audited.

The auditor role includes the monitor role. This allows the auditor to view but not change the rest of the security configuration.


Table 2. Additional admin role that is available through the admin console

Role Description
iscadmins This role is only available for admin console users and not for wsadmin users. Users who are granted this role have administrator privileges for managing users and groups in the federated respositories. For example, a user of the iscadmins role can complete the following tasks:

  • Create, update, or delete users in the federated repositories configuration.

  • Create, update, or delete groups in the federated repositories configuration.


Table 3. Additional administrative role that is available through wsadmin

Role Description
Deployer This role is only available for wsadmin users and not for admin console users. Users who are granted this role can perform both configuration actions and run-time operations on applications.

When administrative security is enabled, the admin subsystem role-based access control is enforced. The admin subsystem includes the security server, the admin console, the wsadmin scripting tool, and all the Java Management Extensions (JMX) MBeans. When administrative security is enabled, both the admin console and the admin scripting tool require users to provide the required authentication data. Moreover, the admin console is designed so the control functions that display on the pages are adjusted, according to the security roles that a user has. For example, a user who has only the monitor role can see only the non-sensitive configuration data. A user with the operator role can change the system state.

When we are changing registries (for example, from a federated repository to LDAP), make sure you remove the information that pertains to the previously configured registry for console users and console groups.

When administrative security is enabled, WASs run under the server identity that is defined under the active user registry configuration. Although it is not shown on the admin console and in other tools, a special Server subject is mapped to the administrator role. The WAS runtime code, which runs under the server identity, requires authorization to runtime operations. If no other user is assigned admin roles, we can log into the admin console or to the wsadmin scripting tool using the server identity to perform admin operations and to assign other users or groups to admin roles. Because the server identity is assigned to the admin role by default, the administrative security policy requires the admin role to perform the following operations:

Primary administrative user name

The Version 6.1 release of WAS and subsequent releases require an admin user, distinguished from the server user identity, to improve auditability of admin actions. The user name specifies a user with admin privileges that is defined in the local operating system.

Server user identity

The Version 6.1 release of WAS and subsequent releases distinguish the server identity from the admin user identity to improve auditability. The server user identity is used for authenticating server-to-server communications.

Internal server ID

The internal server ID enables the automatic generation of the user identity for server-to-server authentication.

Automatic generation of the server identity supports improved auditability for cells only for V6.1 or later nodes. In the V6.1 release of WAS, we can save the internally-generated server ID because the Security WebSphere Common Configuration Model (WCCM) model contains a new tag, internalServerId. You do not need to specify a server user ID and a password during security configuration except in a mixed-cell environment. An internally-generated server ID adds a further level of protection to the server environment because the server password is not exposed as it is in releases prior to V6.1. However, to maintain backwards compatibility, specify the server user ID if we use earlier versions of WAS.

When enabling security, we can assign one or more users and groups to naming roles. However, before assigning users to naming roles, configure the active user registry. User and group validation depends on the active user registry.

Special subject

In addition to mapping users or groups, we can map a special-subject to the admin roles. A special-subject is a generalization of a particular class of users. The AllAuthenticated or the AllAuhenticatedInTrustedRealms (when cross realm is involved) special subjects mean that the access check of the administrative role ensures that the user making the request is at least authenticated. The Everyone special subject means that anyone, authenticated or not, can perform the action as if security is not enabled.

 

Naming service authorization

CosNaming security offers increased granularity of security control over CosNaming functions. CosNaming functions are available on CosNaming servers such as the WAS. These functions affect the content of the WAS name space. Generally, we have two ways in which client programs result in CosNaming calls. The first is through the JNDI call. The second is with common object request broker architecture (CORBA) clients invoking CosNaming methods directly. Four security roles are introduced :

The roles have authority levels from low to high:

CosNamingRead

We can query the WAS name space, using, for example, the JNDI lookup method. The special-subject, Everyone, is the default policy for this role.

CosNamingWrite

We can perform write operations such as JNDI bind, rebind, or unbind, and CosNamingRead operations. As a default policy, Subjects are not assigned this role.

CosNamingCreate

We can create new objects in the name space through such operations as JNDI createSubcontext and CosNamingWrite operations. As a default policy, Subjects are not assigned this role.

CosNamingDelete

We can destroy objects in the name space, for example using the JNDI destroySubcontext method and CosNamingCreate operations. As a default policy, Subjects are not assigned this role.

A Server special-subject is assigned to all of the four CosNaming roles by default. The Server special-subject provides a WAS process, which runs under the server identity, to access all the CosNaming operations. The Server special-subject does not display and cannot be modified through the admin console or other admin tools.

Special configuration is not required to enable the server identity as specified when enabling administrative security for administrative use because the server identity is automatically mapped to the administrator role.

Users, groups, or the special subjects AllAuthenticated and Everyone can be added or removed to or from the naming roles from the WAS admin console at any time. However, a server restart is required for the changes to take effect.

A best practice is to map groups or one of the special-subjects, rather than specific users, to naming roles because it is more flexible and easier to administer in the long run. By mapping a group to a naming role, adding or removing users to or from the group occurs outside of WAS and does not require a server restart for the change to take effect.

The CosNaming authorization policy is only enforced when administrative security is enabled. When administrative security is enabled, attempts to do CosNaming operations without the proper role assignment result in an org.omg.CORBA.NO_PERMISSION exception from the CosNaming server.

Each CosNaming function is assigned to only one role. Therefore, users who are assigned the CosNamingCreate role cannot query the name space unless they have also been assigned CosNamingRead. And in most cases a creator needs to be assigned three roles: CosNamingRead, CosNamingWrite, and CosNamingCreate. The CosNamingRead and CosNamingWrite roles assignment for the creator example are included in the CosNamingCreate role. In most of the cases, WAS administrators do not have to change the roles assignment for every user or group when they move to this release from a previous one.

Although the ability exists to greatly restrict access to the name space by changing the default policy, unexpected org.omg.CORBA.NO_PERMISSION exceptions can occur at runtime. Typically, Java EE applications access the name space and the identity they use is that of the user that authenticated to WAS when accessing the Java EE application. Unless the Java EE application provider clearly communicates the expected naming roles, use caution when changing the default naming authorization policy.



Subtopics


Administrative roles for business level applications

 

Related concepts


Authorization technology

 

Related tasks


Assigning users to naming roles
Select a registry or repository