An Introduction to Oracle Fusion Hcm Security
An Introduction to Oracle Fusion Hcm Security
HCM SECURITY
Role-Based Security
In Oracle Fusion Applications, users have roles through which they gain access to
functions and data. Users can have any number of roles.
When Jayashree signs in to Oracle Fusion Human Capital Management (Oracle Fusion
HCM), she doesn't have to select a role. All of these roles are active concurrently.
The functions and data that Jayashree can access are determined by this combination
of roles.
• As an employee, Jayashree can access employee functions and data.
• As a line manager, Jayashree can access line-manager functions and data.
• As a human resource specialist (HR specialist), Jayashree can access HR specialist
functions and data.
For Example
Role Types:
Oracle Fusion Human Capital Management (Oracle Fusion HCM) defines four types of
roles:
• Abstract roles
• Data roles
• Job roles
• Duty roles
Abstract Roles
Abstract roles represent a worker's role in the enterprise independently of the job that
you hire the worker to do. Three abstract roles are predefined in Oracle Fusion HCM:
• Employee
• Contingent worker
• Line manager
You can also create custom abstract roles. All workers are likely to have at least one
abstract role through which they access standard functions, such as managing
their own information and searching the worker directory.
You assign abstract roles directly to users.
Data Roles
Data roles combine a worker's job and the data that users with the job must access. For
example, the HCM data role Payroll Administrator Payroll US combines a job (Payroll
Administrator) with a data scope (Payroll US).
You define all HCM data roles locally and assign them directly to users.
Jayashree is an employee and a payroll administrator for Fusion Corporation. She has
the Employee Abstract Role and the locally defined HCM Data Role - Payroll
Administrator Payroll US.
Job Roles
A job role is the job that a worker is hired to perform. For example, Human Resource
Analyst, Payroll Manager, Human Resources VP, and Cash Manager are all examples
of job roles. Many job roles are predefined in Oracle Fusion Applications; you can also
create job roles if necessary.
You do not assign job roles directly to users. Instead, you include job roles in
HCM data roles, and assign those data roles to users.
In this example, Jayashree’s locally defined HCM Data Role Payroll Administrator
Payroll US inherits the predefined Job Role Payroll Administrator.
Duty Roles
Duty roles are the building blocks of abstract and job roles: they represent the individual
duties that users with those job or abstract roles can perform.
Duty roles are inherited by job and abstract roles; they can also be inherited by
other duty roles.
You do not assign duty roles directly to users.
This figure shows an example duty role for each of Jayashree’s abstract and job roles.
In reality, abstract and job roles inherit many duty roles.
Duty roles grant access to work areas, dashboards, task flows, user-interface pages,
reports, batch programs, and so on; therefore, they determine the functions that a user
can perform. Duty roles also control the actions that a user can perform in a UI page.
For example, Jayashree can navigate to her own Portrait in the Person Gallery and edit
her own contact details thanks to the duty roles inherited by her Employee abstract role.
The entries that a user sees in the Navigator, in the Tasks pane of a work area, and in
menus are determined by duty roles; differences between users are accounted for by
differences in the duty roles that they inherit.
Role Inheritance:
Each role is a hierarchy of other roles:
• HCM data roles inherit job or abstract roles.
• Job and abstract roles inherit duty roles.
• Duty roles can inherit other duty roles.
In addition, when you assign data and abstract roles to users, they inherit the data and
function security associated with those roles.
Predefined Security
Oracle Fusion Applications provides a comprehensive set of predefined security data
known as the Security Reference Implementation.
The Security Reference Implementation includes predefined:
• Abstract roles
• Job roles
• Duty roles
• Data role templates
• HCM security profiles
HCM Security Profiles
Most Oracle Fusion HCM data is secured by means of HCM security profiles. HCM
security profiles are an Oracle Fusion HCM feature; they are not used by other Oracle
Fusion Applications. A security profile identifies a set of data of a single type, such as
persons or organizations. For example, you could create security profiles to identify:
All workers in department HCM US
The legal employer InFusion Corp USA1
Business units USA1 and USA2
You assign security profiles to abstract and data roles to identify the data instances that
users with those abstract and data roles can access.
There are various types of roles in Fusion Applications. This can get confusing at the
very first glance, and the reader may find it complex when reading the Oracle
Documentation. However, once understood the merit of each role type, you will then
begin to appreciate the elegance of the design in Fusion Applications. To begin with,
one must realise that Fusion Apps leverages Fusion Middleware's weblogic component.
Therefore all the technology components defined in this article get deployed into
Weblogic Server of fusion middleware.
For reader familiar with Oracle EBS, we can assign responsibilities to the users. The
responsibilities consist of menu’s that reference a function. After granting the
responsibility, you can set exclusions from the responsibility too.
However in Fusion Applications, you can not set the exclusions from a user. You can
only say this user can do x, y & z things in the application.
Duty Roles
These are also known as Application Roles. These are the granular duties performed by
the individuals. Examples are Invoice Creation Duty, Invoice Approval Duty, GL Journal
Entry Duty, GL Journal Approval Duty, GL Journal Posting Duty etc. It is like saying to a
new staff that you can perform xyz duties within your job or it is your duty to perform x y
z things in your organization. The name of this role has the suffix _DUTY. The duty role
provides access to screens, reports & dashboards via privileges and provide
access to data behind the screens using data security.
Job roles
These are also known as Enterprise roles. These roles get mapped to one or more duty
roles, because a person that takes a job in a company, then they are meant to perform
several duties. For example, a HR Recruiter Job will have a duty to scan resumes
submitted and place an offer to the individual. The name of this role has the suffix
_JOB. Some examples are Account Payables Manager Job, General Ledger
Accounting Manager Job etc. Job roles are also referred to as external roles.
Abstract Roles
These are also known as Enterprise roles. These roles are associated with a user
irrespective of the Job they perform within an enterprise. Therefore abstract roles are at
a higher level spanning various jobs, and hence their name abstract. Examples are
Employee Role, Temporary Staff role etc. An organization might decide to automatically
assign an Expense Entry Duty Role to all the Employees, and likewise may decide to
auto provision Timesheet Entry Duty Role to all the contract workers. Job roles can
inherit abstract roles, for example a Human Resource Administrator job role can inherit
the Employee abstract role because it is likely that an HR Administrator will be an
Employee of the company, and thus should automatically have access to entering
timesheets and claiming expenses. Similar to job roles, the abstract roles are also
referred to as external roles.
Data Roles
This will be discussed in a separate article.
Duty Role - Duty roles are made up of different privileges within the oracle
ERP cloud to perform specific actions within the business process.
Example -
N.B - Duty role can't be directly assigned to a user instead assigned to job
role and job role can be assigned to user/employee.
Example -
Search Supplier
View Purchase Order
Create payable Invoice
Validate payable invoice
Initiate payable invoice approval task flow
Here in this pic, Accounts Payable Supervisor is a job role which can be
assigned to user which is collection of various duty role and privileges.
Privileges can be directly assigned to job role or it can be assigned to duty
role, but only job role can be assigned to user. Its very much similar to R12
where menu is collection of several sub-menu and functions.
Example -
Employee - User can see payslip of his own. Enter timecard etc
Line Manager - Can transfer/terminate employees.
Role based security in oracle fusion application controls WHO can do WHAT
on WHICH data for example -
1. A line manager (WHO) can promote (WHAT) an employee (WHICH).
2. An employee (WHO) can see payslip (WHAT) of his own (WHICH).
3. An accounts payable specialist (WHO) can enter invoices, match
invoices to correct PO or receipts (WHAT) of certain business unit
(WHICH).
An user can be assigned any seeded role provided by oracle, and can be
customized if seeded roles doesn't meet their requirement.
So the only option is to create a new custom role only for terminating
employees and assign it to Mr Security. In the next steps we will see
how can this be done.
Setup Steps
Now we know that we have to create a new
role but what would be the type of role as oracle fusion delivers four
different types of role. So lets talk about different roles available in
fusion before we login to application and start setting things up.
Oracle Fusion Applications uses four types of roles for security
management, which are given below. The first three roles can be
assigned to user directly. These roles also inherit some or other roles.
Data Roles
Data roles are combination of worker’s job and the data instances on
which jobs can be performed. For example, a data role Payroll
Administrator Payroll US combines a job (Payroll Administrator) with
a data instance (Payroll US). As job is the one factor it inherits Job Role
and for the data, we attached a security profile with it (will be
explained later)
Job Roles
Job role aligns with the job that a worker is hired to perform. Human
Resource Analyst and Payroll Manager are examples of predefined job
roles. Typically, you include job roles in data roles and assign those
data roles to users. The IT Security Manager and Application
Implementation Consultant job roles are exceptions, because they are
not considered HCM job roles and do not restrict data using HCM
security profiles.
Abstract Roles
Abstract roles represent a worker’s role in the enterprise,
independently of the job that the worker is hired to do. There are three
seeded abstract roles delivered with Oracle Fusion HCM. These are the
Employee, Line Manager, and Contingent Worker roles. Abstract roles
are assigned to user automatically when some event occurs like Hire
an employee, Terminate an employee or Promote an employee.
Duty Roles
Data Role aligns with the individual duties that users perform as part of
their job but not assigned to user directly. This role also grants
access to work areas, dashboards, task flows, application
pages, reports, batch programs, and so on. Duty roles are
inherited by job and abstract roles, and can also be inherited by other
duty roles. Needless to say we can create custom role also, if needed.
Data roles
Abstract roles
Job roles
We can create HCM security profiles for the following HCM business
objects (can be changed with future releases)
Person
Organization
Position
Legislative Data Group
Country
Document Type
Payroll
Payroll Flow
On the above page click on “Application Role Mapping” tab and click
on +Map icon. It will bring a pop-up. Select hcm as application and
search for the role “Worker Termination Duty” In the search reselct
section click on the result and than click on Map Roles. Now we have
successfully mapped the duty role with our job role. This duty role will
help us to terminate the worker.
You must be wondering how did I know that I have to add only “Worker Termination
Duty” duty role with the job role to give termination access, do we need to
remember all these duty roles? Answer is NO. You can download the mapping from
oracle note “Mapping Of Roles, Duties and Privileges in Fusion Applications (Doc ID
1460486.1)“
Next screen will show all security profiles associated with this data
role. Click on Next again, which will bring the Review Page. Review it
once and once satisfied click on Submit.
Search for the task “Manage Role Provisioning Rules” and click
on Go to task. In the next page click on Create under the search
result section. Give a mapping name, select Conditions (left blank in
this example) and in the associated role section select the data role we
have created. Please ensure requestable check box is selected and
Autoprovision is unchecked. Click on Save and Close.
Note : If you notice “Delegation Allowed” option is disabled
because when we created our data role (step 04) we did not select
“Delegation Allowed” check box. We will discuss about role
provisioning in details in some other topic.
ROLE CONCEPT IN
ORACLE FUSION
APPLICATIONS
Role Based Access Control (RBAC)
An organisation needs to control who can do what on which
functions or sets of data under what conditions. The who is a
user here. A user's access is based on the definition of the
roles provisioned (assigned) to the user. Access is defined as
entitlement, which consists of privileges. The what are the
abstract operations or entitlement. The which represents the
resources being accessed.
RBAC normalizes access to functions and data through user
roles rather than only users. User access is based on the
definition of the roles provisioned to the user. The roles are
defined at functional and technical levels. The functional level
is the business definition that is used by business users and
the technical level is the implementation of roles using Oracle
Technology.
RBAC is based on the following concepts:
1. Role assignment - A subject can exercise permission
only if the subject has selected or been assigned a
role.
2. Role authorization - A subject’s active role must be
authorized for the subject. With rule mentioned
above, this rule ensures that users can take on only
roles for which they are authorized.
3. Permission authorization - A subject can exercise a
permission only if the permission is authorized for the
subject’s active role. With rules 1 and 2, this rule
ensures that users can exercise only permissions for
which they are authorized.
Basically security in Fusion Application is based on Role
Based Access Control (RBAC) In Fusion Applications, the
RBAC implementation is based on abstract, job, duty, and
data roles that work together to control access to functions
and data. The definitions of these functional roles are as
follows:
ABSTRACT ROLE
This role categorizes the roles for reference implementation.
It inherits duty role but does not contain security policies. For
example: Employee, Manager, etc.
JOB ROLE
This role defines a specific job an employee is responsible for.
An employee may have many job roles. It may require the
data role to control the actions of the respective objects. For
example: Benefits Manager, Accounts Receivable Specialist,
etc.
DATA ROLE
This role defines access to the data within a specific duty.
Who can do what on which set of data? The possible actions
are read, update, delete, and manage. Only duty roles hold
explicit entitlement to the data. These entitlements control
the privileges such as in a user interface that can see specific
screens, buttons, data columns, and other artifacts.
DUTY ROLE
This role defines a set of tasks. It is the most granular form of
a role. The job and abstract roles inherit duty roles. The data
security policies are specified to duty roles to control actions
on all respective objects. Duty Role is the most granular form
of role where mainly security policies are attached and they
are implemented as application role in Authorization Policy
Manager (APM)
Below diagram from the “Oracle Fusion Applications Security
Guide” shows relationships between these roles:
Functional roles are technically implemented as Enterprise
and Applications roles. The Abstract, Job and Data roles are
called Enterprise roles and the Duty role is called Application
role.
ENTERPRISE ROLES
Across all Fusion Applications, Abstract, Job and Data roles
are mapped to Enterprise roles. These roles are stored in the
Identity Store. They are managed through OIM and Identity
Administration tools. This tool includes the following
capabilities with respect to Enterprise role management:
Create Fusion Applications Implementation Users
Provision Roles to Implementation Users
Manage Abstract, Job and Data roles including the
job hierarchy
These roles can also be viewed from ODSM (Oracle Directory
Services Manager) console.
APPLICATIONS ROLES
A “Duty Role” is mapped to Application Roles and is stored in
the Policy Store. An application role is supplied by a single
application or pillar of applications. The application policies
are managed through “Authorization Policy Manager” (APM).
APM is a graphical interface that simplifies the creation,
configuration, and administration of application policies.
Applications Authorization Policy Manager (APM) refers to
enterprise roles as external roles.
FUNCTIONAL SECURITY
POLICES
Function security consists of privileges granted to a user by
means of the user’s membership in a role, to control access
to a page or a specific widget or functionality/operation within
a page. A function security policy consists of privileges
assigned to duty roles and those duty roles assigned to a job
or abstract role. Function security policies are defined in the
Authorization Policy Manager (APM).
DATA SECURITY
POLICIES
Data security policies articulate the security requirement
“Who can do What on Which set of data,” where ‘Which set of
data’ is an entire object or an object instance or object
instance set and ‘What’ is the object entitlement. By default,
users are denied access to all data. Data security makes data
available to users by the following means.
Policies that define grants available through
provisioned roles
Policies defined in the application code
A privilege is a single, real world action on a single business
object. The possible actions are read, update, delete, and
manage. If these privileges are not specified on a duty or
data role, then all actions on the respective objects within a
page, including services, screens, and flows, and typically
used in control of the main menu (specified by function
policy) are allowed.
Enterprise roles provide access to data through data security
policies defined for the inherited application roles. When we
provision a job role to a user, the job role implicitly limits data
access based on the data security policies of the inherited
duty roles. When you provision a data role to a user, the data
role explicitly limits the data access of the inherited job role
to a dimension of data.
When setting up the enterprise with structures such as
business units, data roles are automatically generated that
inherit job roles based on data role templates.
In order to see the Fusion Application seeded Roles, follow
below navigation-
Login with your user and navigate to Functional setup
Manager and search for Role Template-
When you click on Goto Task, you will taken to Oracle
Entitlement server as shown below-
Click on Search Role Template as shown in the screenshot-