ARA2
ARA2
In this particular session we are going to discuss about maintaining rule sets.
We are going to see access risk analysis where we can see how to maintain rule sets in SAP GRC
systems.
This is mainly we are going to see the segregation of duties, how we can create segregation of duty
This we have already seen just to have a recap, because this session is mainly depending on rule sets
Global is a standard SAP delivered rule set which we can use as a reference Technically we can use
Please use this ruleset global as a reference to explain to the customer how the ruleset can be built.
Then, based on the ruleset, you can copy the risk and functions from the rulesets.
You can have multiple rule sets means you may have different compliance requirement in different
part
of the world.
In a typical example, for example, you have a SoX control or let's say you have a global compliance
requirements.
For example, your company is a multinational company where P2P is enforced across the region.
All the companies in different part of the world need to comply with the P2P SoD requirement.
And you may have another SoX requirement which is applicable only to US.
Or you may have some itgc requirement which is required for specific countries.
Then you can have multiple rule sets which can be created in SAP GRC.
In GRC, the using multiple rule set in GRC product is quite easy.
So we have rule sets and then we have business process business processes like purchase to pay or
order
to cash.
It can be basis finance HR like this basis have its own rule sets.
What is the SoD conflicts which can create a risk in your businesses.
Similarly, in finance we have separately, we have in HR and purchase to pay and order to cash is kind
of a business process which involves multiple modules, which comprises of all the business
processes,
Risk is two.
The function is for example here you can see a PO approval and the service acceptance.
It can be more than two, two or more functions can create risk.
Actions and permissions is the technical element of your functions as well as the risk actions means
the specific transactions sections which you are trying to execute in your SAP system.
For example, ME22 is the Action PO approval, which has some permissions which is related to the
actions permissions is the objects which is related to the actions which enable the function can be
Actions and permissions are the actual technical elements which can be executed in your SAP
system,
Here we kept only one transaction for the understanding it can be multiple transactions okay.
Or it can also from different let's say service order maintenance or service order change.
Then you can drill down to the specific transaction code or specific action.
That means you will have multiple actions and related permissions which will be combined together,
Multiple risk.
Here what we are trying to do is that specific risk belongs to which business process.
You have a compliance requirement SoX as well as ITGC where we will be using PO approval as a
So in that case, you need to create only one function that can be used in multiple rule sets.
You create the business function once and you can use it multiple rule sets.
And if you see and if you see the business process is only element which will be created in SPRO.
Let us see the key terminologies which will be used in our rule set development.
Business processes are categories in which you would like to report the risk analysis result in the
We are simply identifying the group of risk belongs to which business process, then we have
function.
Function is a group of one or more related actions and permission in the specific business area
means
This actions can be multiple actions and multiple permissions means multiple actions and it related
You can create n number of functions which is required for your business.
Basically, the functions which we are discussed are the main components of this risk.
The functions can be two or more functions, which creates the risk.
Actions is basically the activity which will be performed in the system to fulfill a specific requirement
or let us say specific business functions, for example, creating a purchase order or creating a material
master record.
You can have multiple transaction code to create one function and multiple function will create one
risk.
Permissions are.
In the SAP perspective, the permissions or the authorization objects, which is related to the actions
Then the authorization objects which is related to ME21 which defines the ME21 activity.
ME21 will be determined by the permissions given as form of authorization objects that are all
permissions.
Systems are referred here as where you will perform the risk analysis.
This can be SAP as well as a Non-SAP systems can be SAP, ERP, SAP CRM as well as other non SAP
systems.
So we have some parameters which can be defined in the access control to change the behavior of
the
system.
As for risk rules, my practical experience I have never implemented Org rules, but I can tell you
how it works.
Org rules basically, if you have a conflict, if you want to define a conflict from one company to
You know, the authorization for company codes can be controlled using authorization objects and
their
company codes.
For example, in the matter of fact, all the org organization values can be controlled using
authorization
objects.
So if you want to define segregation of duties within this organization values, for example one
company
code to another company code, you want to define this as a segregation of duties that is possible in
GRC.
I don't know any customer who is really using this because this is quite complex and it becomes too
intensive since we can also control this using the authorization object.
1028.
In many cases, the customer will request that we need to include the expired user in your SoD
conflict
report.
The reason is that let us say you have an expired user or logged user who had an SoD conflict, and
we can validate this user and do some fraud activity in the system, and you can change the user back
to expired users.
Similarly, you can unlock the user and do something and you can lock the user.
As we have seen in our previous sessions, we are running the extraction from the ERP system once in
a day.
Whatever you did on the day time, it is changed before the specific job is running, so you will not
know whether this user is changed or had a conflict during the day time, or let's say before the actual
So the expired users also consider as a risk or let's say locked to user also considered a risk if they
So if you include the expired users also we can remove the conflict from the user so that if they have
to do some full business process, they have to include some more users, right?
If you see most of the expired users in a perfect scenario, we need to remove the roles.
Yeah.
In the perfect scenario, once the user has expired, then the roles will be removed from the users.
In some cases, they do not want to do that because they wanted to keep it for some time.
Probably the user did not log into the system for quite some time.
These are all depending on your company policies here in the GRC perspective.
We can include the expert user in your SoD conflict analysis, or we can also include locked user in the
Like this.
Access control.
Then you can see all the parameters which belongs to this particular group.
Now as I said, it is not necessary to remember all the parameters one by one and what it is value.
So whenever you have a requirement you can come back and check what is the parameters.
I can say most of the cases, whenever we want to change any configuration you will find some
parameter
for that.
For example, if you select here expired uses and the parameter value also already defined here, yes
Default rule set is for example, if you have more than one rule set, sometime you know when you
run
a risk analysis, you tend to forget what rule set you are running the risk analysis.
In that case, if you want to define a default rule set, you can define it here.
So if you create more rule set then these rule set also will be there.
Then you can define the default rule set like this.
We may not go to each and every rule sets because it may take quite some time.
In general if you.
As I said you have some requirement you can come back to this parameter settings and see do we
have
any parameters.
So most of the cases you will find some of parameters for the requirement.
Similarly, we have parameters for mitigation as well as for change log mitigation.
For example you create a mitigation control and you assign to one user.
We need to review this mitigation control on a periodic basis so we can define an expiration time for
In 180 days this mitigation control will become expired for this user.
Then we need to assign the mitigation control because this is quite important.
Once you assign the mitigation control, let us say if you assign it forever, then let us assume based
If you are not including mitigated risk in our reporting, for example, in the previous slide, what
we have seen if you see mitigated risk is not included in the report, then you will never know that
In that case, we can set an expiration date for the mitigation control.
In my view we should enable the change log for everything so that we know who changed change
the specific.
Then we can trace back what has been changed, because these are all quite important objects in our
SAP GRC.
We can enable change logs for function change risk organization, rule change supplement, rule
change,
critical roles, critical profiles, rule set change and role changes.
So we have.
And here also we have one more SLG1 log level for air trigger.
I assume that parameter should have been added in the latest updates in the SAP GRC.
If you see in SAP, GRC ten these parameters are quite less.
Now the parameter is increased and depending on the requirement they will keep increasing the
parameters.
And you will see more parameters whenever you are doing a support pack upgrade.
So let us go to NWBC.
Here you can see access rule maintenance where we have rule sets.
At the moment you can see this is the global rule set which is delivered by SAP.
Creating a rule set is quite simple because it does not have any technical implication.
Rule set.
GRC.
training
Save it.
As you can see now we have created a rule set means this rule set does not have anything.
I want to make it quite simple so that you can understand this very clearly.
And we will create one more function for create and maintain roles.
This is not the only authorization object required for SU01 the same way.
This is not the only authorization object required for PFCG for us to understand and make it more
easier
This functions with one transaction code and one authorization object in the same screen of NWBC.
This is our function id and what business process this belongs to.
Function.
Create and.
Maintain.
User.
And here you can also see analysis scope, single system or cross system.
And you know, in the SCM systems, you can also have the supplier related activities in there that
cases you want to combine these two systems and analyze whether they have a conflict.
In that cases we can use cross system conflict so that this will combine both authorization from two
different system.
To do the analysis for our exercise, we will use single system to make it more clear to you.
So single system.
So if you say here add then it will ask you for the system.
Which system.
Action is SU01
So whichever we are connecting here and the status is active means you can also inactivate the
specific
action means.
Then if you go to permission, if you see here, it brings lot of authorization objects already.
If you see these are all the authorization objects which you can see in the SU24.
If you go to the transaction code SU24, in the ERP system, in the back end system and find out the
Underscore user.
Underscore group.
This one.
Yes.
This is active.
So we are going to see the activity zero one and zero two.
But to make it simple, let's enable only zero one and zero two.
Save it close.
Then let's create the second function that is function zero two.
And this is the authorization object here also we are going to use zero one and zero two.
So okay.
It's here.
Function.
Create and.
Maintain roles.
We go to the permission.
Let's activate this zero one and zero two and save.
You can see these are the two functions which we have created.
We are going to create a risk which is create user versus role development using the functions which
we have created.
So we have one function for create and maintain user that is user maintenance.
And we have one function F underscore FUN02 which we have created for create and maintain roles.
So let us go back to our NWBC the same menu path we can see access risk. u
Create.
User versus.
Role.
Development.
vs role development.
Then the risk level.
And here also we can define this particular risk is active or inactive here.
Uh.
Description.
Let's say
Okay.
This is again a very good place to document your control objective in GRC
If you see it goes hand in hand with documentation, we can have almost all the documentation
which
is required for your, GRC can be documented within the system itself.
So you may little bit, you know, overwhelmed with lot of informations.
So you don't need to go back and find out what was the reason why we created this risk, what was
the
So the functions which is going to create the risk will be added here add
So the functions which we are going to use is that f underscore star.
These are all the functions which you will be using these two functions.
If you see it is quite simple to create this then we need to assign this particular risk belongs to
Okay.
Okay.
Okay.
Then we have something called risk owner who will be the owner of this risk.
Who owns this particular risk means any modifications or anything related to this risk will be owned
Okay.
You can have one or more owners for the risk okay.
So whenever you create or modify any rule, we need to generate this rule.
So in order to make this objects active we need to generate these rules similar to your PFCG
generation.
We also need to do a generation of rules.
So how do we generate this rule using the nwbc we can go to the same screen.
You can select the risk and we can go to the generate rules.
If you have quite a lot of rules, let's say if you are uploading the rules then you need to generate
Okay.
Then go to foreground.
And okay.
Let us say if you see the actions, you can see the risk one which has functions zero one and function
zero two.
If you go back.
These are all the permissions which we have enabled uh s underscore uh user underscore group zero
one
and zero two and s t code is the default uh authorization objects.
That is SU01.
So it is very important whenever you make any changes or when you create a new rule set, we need
to
Now we have created the rule set and we also created the risk within the rule set.
This is for the role maintenance with the objects which we have used.
So in general this have one function, this have another function together.
So for that first what we need to do is we need to create a role is a PFCG and we need to create a
role
And if you remember one thing, we have scheduled the synchronization job from the ERP system to
the
In the practical scenario, we need to wait for the job to run in order to get these changes
synchronized
So what we will do right now, we will be logging into our ERP system and create this user and role.
Go to PFCG.
Underscore just SU01 and let us say create single role description.
I will say.
Create user.
S underscore.
T code.
I will say.
SU01
So in the authorization object which we have used for this specific function.
Okay.
Let me enable.
..
So here activity.
We set zero one and zero two and user group I will say star.
It can have more than this objects or the more than this transaction code.
Simple rules.
Underscore PFCG.
Create.
I will give a description.
Role development.
Authorization.
Okay.
That is Z underscore
TST_SOD01
..
Let me.
Now if you go to our GRC system and look for this user, this will not be available because this
repository
This is our GRC system and NWBC go to access management to check the risk analysis.
This user is not available because the synchronization job is not yet run.
So we will continue this particular session after the synchronization job is completed.
So at the moment what I did I executed the background job manually once again.
We can also show you that I copied the background job again and executed successfully.
Go to system.
Yeah.
If you go to Access management Access risk analysis then you can see the user level analysis.
In order to execute the analysis on user level we will use user level analysis.
If you go back to our presentation you can see this is the analysis which we are discussing.
Then we should have the risk analysis based on our rule sets which we have created.
So first we need to select the system which we have only one system.
And if you want more selection criteria we can simply add it here.
Our risk which we have created is medium for the analysis I will say all.
Here we can select the rule set which rule set which we are going to execute.
We also seen that we can also define a default rule set, since we did not assign any default rule set.
It is blank.
And if you want to have additional criteria as I said you can add.
And if you see these are all the different criteria which is available which can be added.
The format which we have here we have summary detail management summary and executive
summary.
And the views we have technical view business view and remediation view.
Okay.
So at the moment we will leave it everything in default I selected action as well as permission level.
You can see we found the risk that is f underscore risk zero one.
Okay.
These are the two or transaction code available in two different roles.
So at the moment if you see we don't see which is the role this particular transaction code is coming
If you go to detail now you can see the role and the profile okay.
And the PFCG is coming from this role which is assigned to the same user in the remediation process.
If the user is doing the user administration then we should remove PFCG.
If the user is doing role development then we need to remove the SU01.
If you go to permission level here you can see all the objects.
These cases we need to remove appropriate permissions which is related for this particular conflict.
And if you see here in the previous session we discussed about mitigation risk right.
If you select here mitigation risk here we can assign the mitigation control.
And if you want to create an mitigation control from here we can say create control.
Okay.
First we need to make sure that roles does not have any conflicts in technical scenario.
Let's say these two transaction codes that issue zero one and PFCG is available in single role.
The role itself, the single role itself will have a conflict.
So in order to simulate the role risk analysis, what we will do, we will create a composite role,
So these particular composite role should have a risk the same risk.
Let's go to PFCG.
And SU01.
Let's say.
SU01.
Okay.
So in order to continue our training, I simply copying this job and executing it manually.
Let us go to NWBC
Is z underscore p f c g, p f c g star.
Let me search.
Okay.
And let's select both action and permission level and let's say all and run in foreground.
Now if you see here, you can see the risk found in this particular role, but you can also see some
That is because we did not select which rule set to be used in the user level.
And you can see here the rule set is not present.
So we just add this.
And here rule set and select only the rule set which we have created and run it in foreground.
Now only have the rule set which we have created here action level and also permission level.
But if you want to see the detailed report then you can see the detail report.
You can see this particular permission is coming from which role and this particular permission is
coming
This is how we can run the risk analysis on the role level.
And here also if you do not select anything then it will run for all the rule set.
If you select only the global rule you can also run it here.
Okay.
The global rule set also has the same rules which we have created okay.
We have seen that we can simulate the SoD conflicts before you assign any roles okay.
Or we can also simulate the SoD conflict to see which role if you remove the conflict will be
remediated.
So we have a scenario.
Let us say if you remove one of the role whether this conflict will go or not.
So when you go to the role level simulation, we go to the same process again where we can remove
one
Let us say if this user is only doing user administration then the PFCG is not required, right?
In that case, we can simulate by removing the role of PFCG and see what is the conflict exist.
So this will become very handy when you are doing a SoD remediation.
So let us go to our system and see how we can simulate the SoD conflict within a user.
Similarly, we can also do the simulation on the role level.
Okay, the same thing works for user level as well as the role level.
Simulation become very handy because you will have many conflicts which you will not be able to
make
a decision.
So you need to go based on the process which we defined like single role composite role.
Then come to user where we could simulate whenever we make a decision whether specific action
will remediate
Let's assume that this specific user does not need this role.
Okay.
Okay.
Is Z underscore.
PFCG
Okay.
So let us say in the other way around if you want to include this particular rule then you will say
include.
Similarly if you add any rule you can also see if any conflict is getting generated or not.
Okay this is how we can simulate the user level SoD conflict.
Similarly, we could also do the same simulation for row level also.
We already seen we have parameters which will enable the change log.
So let us go to our system and enable the audit trail or the change log.
Then we will make a change in one of our function which we have created.
Let us go to the NWBC, let us go to function and let's open our function.
SU01 is added.
Reference IMG.
Governance.
Access control.
Let's enable change log for function and the parameter value.
It was inactive.
We changed to active.
Okay.
Okay.
So if you see the change log which was done, it's an update from the existing function module.
If I go back and let's say open again and go to permission I will disable this.
Save it again.
What you will get from the change log is quite in detail.
This will be very helpful to see when you have changed and who changed this particular object.
Enable the change log for all the critical objects like functions and risk, as well as for the rule
set.
Change logs and so on.
SAP GRC also gives you an option where you can download the rule sets.
As I said initially we have the standard rule set which is delivered by SAP.
In many cases, you may also need to download this rule set for your analysis.
So we have the standard functionality where you can download the rule set.
Similarly, let us say you have your own rule set which is created.
You can also upload the rule set as well as you can also delete a rule set and you can also transport
Now this brings you a question whether do we do a download and upload in different system, or do
we
do a transport.
You can download and upload let's say in the development system.
So whenever you make any changes in the SoD rule set, if you want to keep it consistent, then you
can use the option to transport where you can transport the SoD rule set from development to
quality
and production.
And we have one more option we can directly change in the productive system.
Now it brings a question how do we control if you make the changes directly in the productive
system,
because the changing the rule set can have big impact.
For that, we can have approval process using MSMP workflow that we will see in the next exercise.
However, as you can see here, we have download, upload, delete, SoD rules as well as transport
SoD rules.
Options are available.
Let us have a quick look into this because this will become quite handy whenever you are doing
implementation
If you select only this then it will download only the rule set which is assigned to the system.
Right.
Function.
Action function.
Risk.
Risk description.
Let's say new one text file I will say business process.
Then create the next one, let's say a function business process.
Then I will create another one.
A function action.
Function permission.
Then.
Risk.
Description.
Description.
Then we have.
Risk rule.
Relationship.
Relation.
Let's go to download.
Business process.
Business process.
Now you can see it says zero bypassed, but it's a green mark.
Let's have a look into the text files which we have created.
Whether we have any output there, it should not have any problems.
And then the function okay these are all the function, just the function detail.
Then we have function business process function and its related business process and function
action.
Then function permissions and the function and its related permissions.
One is global and one is the rule which we have created and the risk all the risk global, as well as
the, uh, rule which we have created, all the risk and risk description.
This is a risk description and risk rule relation actually which risk is for which rule.
Okay.
So that also available here you can see here risk which we have created which is related to rule zero
one.
upload rule sets the same sequence we have here two option whether you want to append or you
want to
overwrite.
Same text file, same format, you make all the changes, then you can upload it.
If you want to delete from the system, either it is a physical system or logical system.
We have one physical system, or you want to delete from the logical system.
Also make sure you do the backup before you delete means you download the existing rule sets.
Then you delete it to make sure that we are not doing anything wrong.
You can select whether you want to transport the rule set for one physical system like what we have
Instead.
In that case, instead of doing it from the NWBC, you can also do it here.
Now let us use MSMP to enable workflow function for function maintenance.
So far one.
Basically what we are going to do here, we are going to enable approval process for function.
So for that what we need to do is first we need to maintain the configuration in the access control,
Access control.
Maintain configuration.
And if you go here we have quite a lot of configuration which is available for workflow.
And the configuration which we need to enable is function maintenance 1064 the parameter value
set
to yes.
Now what happens is whenever you change or whenever you create any workflow, this workflow
need an
approval step.
Approver.
We need to enable the workflow for the approval of the function maintenance.
And we will also enable the stage and we will maintain the route mapping.
Let us go to SPRO.
SAP.
Access control.
What we could also do we can add the transaction code to call this MSMP configuration directly
here,
Okay.
So select this.
Here we do not need to enable the function escalation function or the notification event, because we
are not going to use notification or any other functionality for this exercise.
Let us go to maintain rules.
So maintain rules.
You can see we have initiator a rule which is the function approver initiator.
This is for creator agent rule and this is for the approver agent rule.
And.
If you want to see the approver you can also select here and say modify.
You can see this is the process ID and this is the agent rule function.
The next step then here we have current approval basically GRC API rule set.
The role which we are going to use for the function approval.
You need to make sure that user who is going to be the approver has this specific role.
So we already know what is the PFCG agent type means that whoever has this particular Role can
approve
Okay.
GRAC requester.
Okay.
And here we have variables for approver and escalation rejection as well as the variables for work
items.
So this is the default path based on the the BC sets which we have enabled.
So if you see here you do not have agent and approver type and so on.
Then you can see the approver agent is this one okay.
We also know what is the role and the approval type is any approver?
Any one of the approver can approve and escalation type will leave it default.
Okay.
Now you can see the agent ID is the function approver.
No routing enabled.
And it is default.
And if you go to modify task you can also see that we have selected the function approver as an
approver
here.
And if you want to modify the behavior when you are doing the approval you can also do it here.
For at the moment we we are saying confirm the approval and confirm the rejection.
If you want to notification, then we also can specify whether you want to notify the approver or the
requester.
Okay.
And if you want to have command mandatory and you can also say command mandatory for
approval or rejection
or both okay.
Then let's go to the next step the final step generate version I will save this first Let's say create
MS..
MP.
Changes.
Okay.
The simulation.
And activate.
This is the role which we need a SAP underscore GRAC underscore function underscore approver.
Go to SU01
Function approver.
Say create.
GRAC.
Function approver.
Let's assign the basic role SAP underscore GRAC underscore base.
And let's assign the role which we have assigned as an PFCG approver type SAP GRAC underscore.
Function.
Underscore.
Approver.
Because the first time login you may have to change the password.
Let's go to NWBC.
Let's create.
Zero three.
Zero three.
And let's say add a action here I will add SCC4 this for the client maintenance permission I just
We just wanted to see only the approval workflow how it's working.
Now you can see here the workflow request submitted successfully.
That means there is a workflow is being generated for this specific request.
Star.
You can see here that the function zero three is not yet created.
So based on our configuration, the approver, the approver user ID which we have created should
have
Let me log in with the user which we have created AC underscore func underscore APP.
And you can see here two options whether to approve or reject.
Okay.
Okay.
Okay.
Now if you make any changes here still you may need an approval step.
So let us go here.
I will change the activity zero two and zero three as the S_TABU_DIS is active and submit.
Create f underscore.
I will say function 4.
This also.
SE38.
Okay.
Function.
Approver.
Let's refresh.
Close.
F underscore star.
Open.
The permission.
You can see now it is active.
Now let us see how we can create risk using workflow similar to functions.
And we also need to maintain this approver as a risk approver in the access control owner.
Okay.
So whoever the users who has the specific role which was configured in the MSMP will receive the
workflow.
We need to maintain the rule set, as well as we need to create the risk owner based on the risk
owner.
And the next stage you can see the maintain rules where we have all the rules.
And where we have the current approver as well as the SoD risk approver.
Since this is delivered by SAP, we are using the default path as it is.
The agent ID is SoD risk approver and approver type is anyone can approve okay.
Once you activate then you should have a new version for this.
Okay.
Go to SU01.
GRAC risk.
Approver.
And we will assign the role which is required for the risk approver that is the risk owner.
Let's go to NWBC.
Say.
Risk.
Owner.
For.
Training.
Okay.
Save.
Okay.
And let's say f underscore risk zero two give description zero two business processes basis and
description
is.
If you select here and select this one, you can see the risk owner which is populated from the access
control owners.
Select this.
If you don't define it in the access control owner then this will not be visible.
There is no workflow created because we missed one configuration that we did not do, the access
control
Okay.
So if I see here.
Reference IMG.
Governance.
Maintain configuration.
That is 63.
Save it.
Okay.
Create.
Basis.
Function three.
Risk.
The risk.
Is not it active.
Now you can see the rule approver for risk request.
F_
And you can see the details function and the rule set as well as the risk owner.
Let's close.
Just for the demo purpose, I am using the same user which was used to create the function as well as
the risk.
Otherwise, this risk also will be visible in the specific approver user ID itself.
So define let's.
Select.
This is how we can use MSMP to enable approval function for risk creation as well as for the
maintenance.
Bye bye.