Skip to Content
Product Information
Author's profile photo Amit Kumar Singh

Attribute Based Access Control (ABAC) – Field Masking scenario in MM03 with Reveal on Demand of SAP GUI

Introduction

In this blog post, we will learn how to mask “Material Description” field in MM03 transaction for materials of Material Group “300”.

Attribute based authorizations are dynamic determination mechanism which determines whether a user is authorized to access specific data sets which can be based on the context attributes of the user and data (for example, price of certain sensitive materials are masked).

The end result will appear as:

Reveal on Demand

Reveal on Demand provides additional data protection by masking the field value by default, even if the user is authorized to view the data. The authorized user then explicitly chooses the option to reveal the field value on the user interface.

When the authorized user reveals the data, a dialog box (which can be configured to display a confirmation message, reason code, and free text) is displayed. The user then has to specify, for example, a reason for revealing the data. The revealed data is masked again once the timeout takes effect or when the user switches off the reveal option.

  • To unmask the Material Description field information using Reveal On Demand feature, Follow the given Path –

In MM03 transaction “Display Material” screen, Click on “Help” -> “Reveal On <–> Off” option

  • On Reveal On Demand pop-up, select “Reason” as “DVA Data Verification”, enter “Comments for Reveal” as “Unmask to view values”, and click on “OK” button

  • Field value will get unmasked for “Material Description” field

  • To Again, mask the Field values, Follow the given path –

In MM03 transaction “Display Material” screen, Click on “Help” -> “Reveal On <–> Off” option

  • On Reveal On Demand pop-up, click on “OK” button

  • Material Description” field will again appear as masked

Prerequisite

UI Data Protection Masking for SAP S/4HANA is a solution that allows you to protect restricted and sensitive data values at field level by masking, clearing, or disabling fields for those users who are not authorized to view or edit this data.

Product “UI data protection masking for SAP S/4HANA” is used in this scenario to protect sensitive data at field level and must be installed in the S/4HANA system.

The product is a cross-application product which can be used to mask/protect any field in SAP GUISAPUI5/SAP FioriCRM Web Client UI, and Web Dynpro ABAP.

Let’s begin

Configuration to achieve masking

Logical Attribute is a functional modelling of how any attribute such as Social Security NumberBank Account NumberAmountsPricing informationQuantity etc. should behave with masking.

Configure Logical Attribute – Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Maintain Metadata Configuration -> Maintain Logical Attributes

Material Description

Material Number

Material Group

Configure Derived Attribute

Derived Attributes are user defined attributes which are populated at run time. The derivation of these attributes can be maintained in a class method. The name of the Class can be specified while maintaining a derived attribute in the IMG.

Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Maintain Metadata Configuration -> Maintain Attributes and Ranges for Policy – Follow below mentioned steps:

Material Group
  • Click on “New Entries” button
  • Enter “Derived Field” as “DA_MATGROUP”
  • Enter “Class Name” as “ZCL_MATGROUP
  • Select “Application Module” as “* Cross-Application
  • Enter “Description” as “Material Group
  • Click on “Save” button

Implementation of Derived Attribute for Material Group

For the given case, we are masking Material Description (MAKT-MAKTX) field in transaction MM03 and SE16. The context for our rule (i.e. Material Group (MARA-MATKL) is not available as context in table MAKT in SE16 and MM03 transactions (as in case of Module Pool programs, Context of only sub-screen fields are available), Hence, there is a need to create a Derived Attribute for Material Group.

Steps to implement Class for Derived Attribute:

  • Execute transaction SE24
  • Create Derived Attribute Class mentioned in the configuration (i.e. ZCL_MATGROUP)
  • Implement the Interface: /UISM/IF_DERIVED_ATTR_VALUE in the Class

  • Sample implementation of Method: /UISM/IF_DERIVED_ATTR_VALUE~EXECUTE

Configure Value Range

Value Ranges are a set of pre-populated values which can be used to derive the context under which an action should be executed.

Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Maintain Metadata Configuration -> Maintain Attributes and Ranges for Policy – Follow below mentioned steps:

Range for Material Group
  • Click on “New Entries” button
  • Enter “Value Range” as “VR_MATGROUP
  • Select “Application Module” as “* Cross-Application
  • Enter “Description” as “Range for Material Group
  • Click on “Save” button

Enter entries in “VR_MATGROUP” Value Range
  • Execute Transaction Code “/UISM/V_RANGE
  • Click on “VR_MATGROUP” Value Range
  • Click on “Display<- -> Change” button
  • Click on “Add New Entry” button
  • Add Value as “300” and Description as “Aircrafts” under “Include Value” tab
  • Click on “Save” button

Maintain Technical Address

In this step, we will associate the Technical Address of the fields to be masked with the Logical Attributes.

You can get the Technical Address of a GUI field by pressing “F1” on the field.

Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Maintain Metadata Configuration -> Maintain Technical Address

Follow below mentioned steps:

Under “GUI Table Field Mapping”, maintain technical address for following fields.

Material Description
  • Click on “New Entries” button
  • Enter “Table Name” as “MAKT
  • Enter “Field Number” as “MAKTX
  • Enter “Logical Attribute” as “LA_MATDESCR
  • Enter “Description” as “Material Description
  • Click on “Save” button
  • Click on “Mass Configuration” button which is required to generate technical addresses for Module Pool Programs

Material Number
  • Click on “New Entries” button
  • Enter “Table Name” as “MAKT
  • Enter “Field Number” as “MATNR
  • Enter “Logical Attribute” as “LA_MATERIAL
  • Enter “Description” as “Material Number
  • Click on “Save” button
  • Click on “Mass Configuration” button which is required to generate technical addresses for Module Pool Programs

Material Group
  • Click on “New Entries” button
  • Enter “Table Name” as “MARA
  • Enter “Field Number” as “MATKL
  • Enter “Logical Attribute” as “LA_MATGROUP
  • Enter “Description” as “Material Group
  • Click on “Save” button
  • Click on “Mass Configuration” button which is required to generate technical addresses for Module Pool Programs

Policy Configuration

Policy is a combination of rules and actions which are defined in one or more blocks. The actions are executed on a sensitive entity (field to be protected) which has to be assigned to a Policy. The conditions are based on contextual attributes which help derive the context.

Context Attributes are logical attributes which are used in designing the rules of a policy. They are mapped to fields which are used to derive the context under which an action is to be executed on a sensitive entity.

Sensitive Entities are logical attributes which are sensitive and need to be protected from unauthorized access.

Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Data Protection Configuration -> Maintain Policy Details for Attribute based Authorizations – Follow below mentioned steps:

  • Click on “New Entries” button
  • Enter “Policy Name” as “POL_PROTECT_MAT_DESC
  • Select “Type” as “Field Level Masking
  • Select “Application Module” as “* Cross-Application
  • Enter “Description” as “Mask Material Description of Sensitive Material
  • Click on “Save” button

Write following logic into Policy

Maintain Field Level Security and Masking Configuration

Here, we will define how masking will behave with the logical attribute that we created in above step.

Follow the given path:

SPRO -> SAP NetWeaver -> UI Data Protection Masking for SAP S/4HANA -> Data Protection Configuration -> Maintain Field Level Security and Masking Configuration

Follow below mentioned steps:
  • Click on “New Entries” button
  • Enter “Sensitive Entity” as “LA_MATDESCR” and press “Enter” key. “Description” and “Application Module” will get populated in corresponding fields
  • Check “Enable Configuration” check-box
  • Select “Attribute Based Authorization” option
  • Enter “Policy Name” as “POL_PROTECT_MAT_DESC
  • Click on “Save” button

Conclusion

In this blog post, we have learnt how Attribute-based masking with Reveal on Demand is achieved in transaction MM03 for masking “Material Description” field for materials of Material Group “300”.

Assigned Tags

      5 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo piyush Bansal
      piyush Bansal

      Hi Amit,

      Thanks for the post. Its very informative . I have one question.

      Can we use the masking solution to hide the material description in the Drop downs also like in the PO Item details?

      Regards,

      Piyush

      Author's profile photo Amit Kumar Singh
      Amit Kumar Singh
      Blog Post Author

      HI Piyush,

      Thanks for your appreciation.

      Yes, you can mask the Material Description in the Drop-downs like I did in ME22N transaction.

      Please refer following blog post in order get the details on configuration -

      Mask Material Description drop-down in ME22N transaction

      Please let me know in case you need any other information.

      Thanks & Regards,

      Amit Kumar Singh

      Author's profile photo Shital Lohar
      Shital Lohar

      Hi Amit,

      Can you please provide more information on how to configure a dialog box which will be displayed when authorized user reveal the data.

       

      Thank You,

      Shital.

       

      Author's profile photo meenakshi shukla
      meenakshi shukla

      Hi Amit,

       

      I am trying to mask material description using the steps you mentioned in this blog, but it is not working. I have enabled data masking from basic settings, by maintaining global flags, and followed the steps as per the blog. I see data is masked as table level, but not at MM03 level. Neither do I see Reveal on/off option in MM03->Help.

      Is there some other global setting I need to do? Any pointers will be greatly appreciated.

       

       

      Author's profile photo Amit Kumar Singh
      Amit Kumar Singh
      Blog Post Author

      Hi Meenakshi,

      Please raise an incident under "GRC-UDS-DO" component so that our support team can look into the same and extend the required support to you.

      Regards,

      Amit Kumar Singh