|Read more about this book|
(For more resources on Oracle, see here.)
Understanding User security
Before we get into discussing the PeopleSoft security, let’s spend some time trying to set the context for user security.
Whenever we think of a complex system like PeopleSoft Financial applications with potentially hundreds of users, the following are but a few questions that face us:
- Should a user working in billing group have access to transactions, such as vouchers and payments, in Accounts Payable?
- Should a user who is a part of North America business unit have access to the data belonging to the Europe business unit?
- Should a user whose job involves entering vouchers be able to approve and pay them as well?
- Should a data entry clerk be able to view departmental budgets for the organization?
These questions barely scratch the surface of the complex security considerations of an organization. Of course, there is no right or wrong answer for such questions, as every organization has its own unique security policies.
What is more important is the fact that we need a mechanism that can segregate the access to system features. We need to enforce appropriate controls to ensure users can access only the features they need.
Global Vehicles’ Accounts Payable department has three different types of users – Mary, who is the AP manager; Amy, who is the AP Supervisor; and Anton, who is the AP Clerk. These three types of users need to have the following access to PeopleSoft features:
|User type||Access to feature||Description|
|AP Clerk||Voucher entry||A clerk should be able to access system pages to enter vouchers from various vendors.|
|AP Supervisor||Voucher entry
|A supervisor also needs to have access to enter vouchers. He/she should review and approve each voucher entered by the clerk. Also, the supervisor should be able to execute the Voucher Post process that creates accounting entries for vouchers.|
|AP Manager||Pay cycle
|AP manager should be the only one who can execute the Pay Cycle (a process that prints checks to issue payments to vendors). Manager (in addition to the Supervisor) should also have the authority to approve vouchers.|
Note that this is an extremely simplified scenario that does not really include all the required features in Accounts Payable.
We will design a security matrix that uses distinct security roles. We’ll configure permission lists, roles, and user profiles to limit user access to required system features.
PeopleSoft security matrix is a three-level structure consisting of Permission lists (at the bottom), Roles (in the middle) and User profiles (at the top). The following illustration shows how it is structured:
We need to create a User Profile for each user of the system. This user profile can have as many Roles as needed. For example, a user can have roles of Billing Supervisor and Accounts Receivable Payment Processor, if he/she approves customer invoices as well as processes customer payments. Thus, the number of roles that a user should be granted depends entirely on his/her job responsibilities.
Each role can have multiple permission lists. A Permission list determines which features can be accessed by a Role. We can specify which pages can be accessed, the mode in which they can be accessed (read only/add/update) in a permission list.
In a nutshell, we can think of a Role as a grouping of system features that a user needs to access, while a Permission list defines the nature of access to those system features.
Deciding how many and which roles should be created needs quite a bit of thinking about. How easy will it be to maintain them in future? Think of the scenarios where a function needs to be removed from a role and added to another. How easy would it be to do so? As a rule of thumb, you should map system features to roles in such a way that they are non-overlapping. Similarly, map system pages to permission lists so that they are mutually exclusive. This simplifies user security maintenance to a large extent. Note that although it is advisable, it may not always be possible. Organizational requirements are sometimes too complicated to achieve this. However, a PeopleSoft professional should try to build a modular security design to the extent possible.
Now, let’s try to design our security matrix for the hypothetical scenario presented previously and test our thumb rule of mutually exclusive roles and permission lists.
What do you observe as far as required system features for a role are concerned? You are absolutely right if you thought that some of system features (such as Voucher entry) are common across roles.
Which roles should we design for this situation? Going by the principle of mutually exclusive roles, we can map system features to the permission lists (and in turn roles) without overlapping them. We’ll denote our roles by the prefix ‘RL’ and permission lists by the prefix ‘PL’. Thus, the mapping may look something like this:
|Role||Permission list||System feature|
So, now we have created the required roles and permission lists, and attached appropriate permission lists to each of the roles. In this example, due to the simple scenario, each role has only a single permission list assigned to it.
Now as the final step, we’ll assign appropriate roles to each user’s User profile.
|User||Role||System feature accessed|
Now, as you can see, each user has access to the appropriate system feature through the roles and in turn, permission lists attached to their user profiles.
Can you think of the advantage of our approach? Let’s say that a few months down the line, it is decided that Mary (AP Manager) should be the only one approving vouchers, while Amy (AP Supervisor) should also have the ability to execute pay cycles and issue payments to vendors. How can we accommodate this change? It’s quite simple really – we’ll remove the role RL_Voucher_Approval from Amy’s user profile and add the role RL_Pay_Cycle to her profile. So now the security matrix will look like this:
|User||Role||System feature accessed|
Thus, security maintenance becomes less cumbersome when we design roles and permission lists with non-overlapping system features. Of course, this comes with a downside as well. This approach results in a large number of roles and permission lists, thereby increasing the initial configuration effort.
The solution that we actually design for an organization needs to balance these two objectives.
Having too many permission lists assigned to a User Profile can adversely affect the system performance. PeopleSoft recommends 10-20 permission lists per user.
Configuring permission lists
Follow this navigation to configure permission lists:
PeopleTools | Security | Permissions & Roles | Permission Lists
The following screenshot shows the General tab of the Permission List set up page. We can specify the permission list description on this tab.
We’ll go through some of the important configuration activities for the Voucher Entry permission list discussed previously.
- Can Start Application Server?: Selecting this field enables a user with this permission list to start PeopleSoft application servers (all batch processes are executed on this server). A typical system user does not need this option.
- Allow Password to be Emailed?: Selecting this field enables users to receive forgotten passwords through e-mail. Leave the field unchecked to prevent unencrypted passwords from being sent in e-mails.
- Time-out Minutes – Never Time-out and Specific Time-out: These fields determine the number of minutes of inactivity after which the system automatically logs out the user with this permission list.
The following screenshot shows the Pages tab of the permission list page. This is the most important place where we specify the menus, components, and ultimately the pages that a user can access.
In PeopleSoft parlance, a component means collection of pages that are related to each other. In the previous screenshot, you are looking at a page. You can also see other related pages used to configure permission lists – General, PeopleTools, Process, and so on. All these pages constitute a component. A menu is a collection of various components. It is typically related to a system feature, such as ‘Enter Voucher Information’ as you can see in the screenshot.
Thus, to grant a page access, we need to enter its component and menu details.
In order to find out the component and menu for a page, press CTRL+J when it is open in the internet browser.
- Menu Name: This is where we need to specify all the menus to which a user needs to have access. Note that a permission list can grant access to multiple menus, but our simple example includes only one system feature (Voucher entry) and in turn, only one menu. Click the + button to add and select more menus.
- Edit Component hyperlink: Once we select a menu, we need to specify which components under it should be accessed by the permission list.
Click the Edit Components hyperlink to proceed. The system opens the Component Permissions page, as shown in the following screenshot:
In this page, the system shows all components under the selected menu. The previous screenshot shows only a part of the component list under the ‘Enter Voucher Information’ menu.
Voucher entry pages for which we need to grant access exist under a component named VCHR_EXPRESS.
Click the Edit Pages hyperlink to grant access to specific pages under a given component. The system opens the Page Permissions page, as shown in the following screenshot:
The given screenshot shows the partial list of pages under the Voucher Entry component.
- Panel Item Name: This field shows the page name to which access is to be granted.
- Authorized?: In order to enable a user to access a page, select this checkbox. As you can see, we have authorized this permission list to access six pages in this component.
- Display Only: Clicking this checkbox allows the user to get read-only access for the given page. He/she cannot make any changes to the data on this page.
- Add: Selecting this checkbox enables the user to add a new transaction (in this case new vouchers).
- Update/Display: Selecting this checkbox enables the user to retrieve the current effective dated row. He/she can also add future effective dated rows in addition to modifying them.
- Update/Display All: This option gives the user all of the privileges of the Update/Display option. In addition he/she can retrieve past effective dated rows as well.
- Correction: This option enables the user to perform all the possible operations; that is, to retrieve, modify or add past, current, and future effective dated rows.
Effective dates are usually relevant for master data set ups. It drives when a particular value comes into effect. A vendor may be set up with effective date of 1/1/2001, so thatit comes into effect from that date. Now assume that its name is slated to change on 1/1/2012. However, we can add a new vendor row with the new name and the appropriate effective date. The system automatically starts using the new name from 1/1/2012. Note that there can be multiple future effective dated rows, but only one current row.
The next tab PeopleTools contains configuration options that are more relevant for technical developers. As we are concentrating on business users of the system, we’ll not discuss them.
Click the Process tab. As shown in the following screenshot, this tab is used to configure options for Process groups.
A process group is a collection of batch processes belonging to a specific internal department or a business process. For example, PeopleSoft delivers a process group ARALL that includes all Accounts Receivable batch processes. PeopleSoft delivers various pre-configured process groups; however, we can create our own process groups depending on the organization’s requirements.
Click the Process Group Permissions hyperlink. The system opens a new page where we can select as many process groups as needed. When a process group is selected for a permission list, it enables the users to execute batch and online processes that are part of it.
The following screenshot shows the Sign-on Times tab. This tab controls the time spans when a user with this permission list can sign-on to the system. We can enforce specific days or specific time spans for a particular day when users can sign-on.
In the case of our permission list, there are no such limits and users with this permission list will be able to sign-on anytime on all days of the week.
The next tab on this page is the Component Interface. The component interface is a PeopleSoft utility that automates bulk data entry into PeopleSoft pages. We can select component interface values on this tab, so that users with this permission list have access rights to use them.
Due to the highly technical nature of the activities involved, we will not discuss the Web Libraries, Web Services, Mass change, Links, and Audit tabs.
Oracle offers exhaustive documentation on PeopleSoft applications at the following URL: http://www.oracle.com/pls/psft/homepage. Documentation for technical topics such as web services can be found under the ‘PeopleTools’ section. Documentation for functional modules, such as Billing, Accounts Receivable, and so on, can be found under the Financials Supply Chain Management (FSCM) section.
The next important tab on the permission list page is Query. On this tab, the system shows two hyperlinks: Access Group Permissions and Query Profile.
Click the Access Group Permissions hyperlink. The system opens the Permission List Access Groups page, as shown in the next screenshot. This page controls which database tables can be accessed by users to create database queries, using a PeopleSoft tool called Query Manager.
- Tree Name: A tree is a hierarchical structure of database tables. As shown in the screenshot, the tree QUERY_TREE_AP groups all AP tables.
- Access Group: Each tree has multiple nodes called access groups. These access groups are just logical groups of tables within a tree. In the screenshot, VOUCHERS is a group of voucher-related tables within the AP table tree. With this configuration, users will be able to create database queries on voucher tables in AP.
Using the Query Profile hyperlink, we can set various options that control how users can create queries (such as if he/she can use joins, unions, and so on in queries, how many database rows can be fetched by the query, if the user can copy the query output to Microsoft Excel, and so on).