WSO2 Identity Server

How to:

This section describes how to configure Data Quality Monitor (DQM) through the WSO2 Identity Server.

Procedure: How to Display the Data Quality Monitor Menu Item

To display Data Quality Monitor as a menu item in the user interface:

  1. Add the appropriate syntax to the component-access-menuitem-policy file, as shown in the following image.

    The section that appears in the image above defines which user roles will see the DQM tab in the application.

  2. Enable the policy (if needed) and then publish it to PDP.

    The Data Quality Menu item appears after updating the policy and publishing, then logging on again in the application, as shown in the following image.

    The following syntax is an example of the component-access-menuitem-policy.

    <Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"  PolicyId="component-access-menuitem-policy" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1.0">
       <Description>Policy that specifies what page components(functionalities)are available for passed attributes (roles, etc.). Order is important first applicable result will be returned.</Description>
       <Target>
          <AnyOf>
             <AllOf>
                <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                   <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">authorize-component</AttributeValue>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Match>
             </AllOf>
          </AnyOf>
       </Target>
    <!--MENU ITEMS-->
          <Rule Effect="Permit" RuleId="menuitem-360viewer-component-access-rule">
             <Description>Handles the access to 360viewer menu item</Description>
             <Target>
                <AnyOf>
                   <AllOf>
                      <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                         <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">menuitem_360viewer</AttributeValue>
                         <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                      </Match>
                   </AllOf>
                </AnyOf>
             </Target>        
             <Condition>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">System_Administrator</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">User</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Condition>
          </Rule>
          <Rule Effect="Permit" RuleId="menuitem-remediation-component-access-rule">
             <Description>Handles the access to Remediation menu item</Description>
             <Target>
                <AnyOf>
                   <AllOf>
                      <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                         <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">menuitem_remediation</AttributeValue>
                         <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                      </Match>
                   </AllOf>
                </AnyOf>
             </Target>
             <Condition>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Condition>
          </Rule>
          <Rule Effect="Permit" RuleId="menuitem-datadictionary-component-access-rule">
             <Description>Handles the access to Data Dictionary menu item</Description>
             <Target>
                <AnyOf>
                   <AllOf>
                      <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                         <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">menuitem_datadictionary</AttributeValue>
                         <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                      </Match>
                   </AllOf>
                </AnyOf>
             </Target>
             <Condition>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">User</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Condition>
          </Rule>
          <Rule Effect="Permit" RuleId="menuitem-administration-component-access-rule">
             <Description>Handles the access to Administration menu item</Description>
             <Target>
                <AnyOf>
                   <AllOf>
                      <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                         <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">menuitem_administration</AttributeValue>
                         <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                      </Match>
                   </AllOf>
                </AnyOf>
             </Target>
             <Condition>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">System_Administrator</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Condition>
          </Rule>
          <Rule Effect="Permit" RuleId="menuitem-dqm-component-access-rule">
             <Description>Handles the access to Data Quality Monitor menu item</Description>
             <Target>
                <AnyOf>
                   <AllOf>
                      <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                         <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">menuitem_dqm</AttributeValue>
                         <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                      </Match>
                   </AllOf>
                </AnyOf>
             </Target>
             <Condition>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">User</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Condition>
          </Rule>
          <Rule Effect="Deny" RuleId="menuitem-denyother-component-access-rule">
             <Description>Denies menu items for other roles</Description>
             <Target>
                <AnyOf>
                   <AllOf>
                      <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
                         <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">menuitem_*</AttributeValue>
                         <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                      </Match>
                   </AllOf>
                </AnyOf>
             </Target>
          </Rule>
          <!--END OF MENU ITEMS--></Policy>        

Procedure: How to Configure the Domains Which DQM Will Be Available In

DQM works only with those domains that you have access to (which are defined by the roles of the user). To check the available domains or add new ones:

  1. Click Configure and then select Users and Roles.
  2. Find the user and select the assigned roles, as shown in the following image.

    Roles that have the domain prefix will be displayed in the domain drop-down list in DQM, as shown in the following image.

Procedure: How to Configure Access to DQ and BI Tabs

The DQ and BI tabs are independent of each other. Access can be defined separately in the component-access-dqm-tabs-policy.xml file, as shown in the following image.

The policy allows you to define which roles can work with a specific tab and which domains those tabs are available.

  1. After accessing the policy, enable it if needed.
  2. Publish the policy to PDP.

    The configured tabs appear after you log on back to the application, as shown in the following image.

    The following syntax shows an example of the component-access-dqm-tabs-policy.

    <Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"  PolicyId="component-access-dqm-tabs-policy" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1.0">
       <Description>Policy that specifies what page components(functionalities)are available for passed attributes (roles, etc.). Order is important first applicable result will be returned.</Description>
       <Target>
          <AnyOf>
             <AllOf>
                <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                   <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">authorize-component</AttributeValue>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Match>
             </AllOf>
          </AnyOf>
       </Target>
       <Rule Effect="Permit" RuleId="dq-tab-component-access-rule">
          <Description>Handles the access for Data Quality tab</Description>
          <Target>
             <AnyOf>
                <AllOf>
                   <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">dataquality</AttributeValue>
    <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                   </Match>
                </AllOf>
             </AnyOf>
          </Target>
          <Condition>
             <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">System_Administrator</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">User</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">PatientMaster</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">FacilityMaster</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">ProviderMaster</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:environment-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Apply>
          </Condition>
       </Rule>
       <Rule Effect="Permit" RuleId="bi-tab-component-access-rule">
          <Description>Handles the access for Business Impact tab</Description>
          <Target>
             <AnyOf>
                <AllOf>
                   <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">businessimpact</AttributeValue>
                      <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                   </Match>
                </AllOf>
             </AnyOf>
          </Target>
          <Condition>
             <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">PatientMaster</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:environment-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Apply>
          </Condition>
       </Rule>
    </Policy>        

Procedure: How to Configure Dimensions

Access to dimensions can be configured in the component-access-dimensions-policy file. Each dimension has its own section, as shown in the following image.

The policy allows you to define which roles can work with specific dimensions and which domains those dimensions are available in.

  1. After accessing the dimensions, enable the policy (if needed).
  2. Publish it to the PDP.

    The configured dimensions appear in the application after logging on again, as shown in the following image.

    The following is an example of the component-access-dimensions-policy.

    <Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"  PolicyId="component-access-dimensions-policy" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1.0">
       <Description>Policy that specifies if dimensions are available for provided roles. Order is important first applicable result will be returned.</Description>
       <Target>
          <AnyOf>
             <AllOf>
                <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                   <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">authorize-component</AttributeValue>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Match>
             </AllOf>
          </AnyOf>
       </Target>                  
       <Rule Effect="Permit" RuleId="dimensions-validity-component-access-rule">
          <Description>Handles the access for validity dimension</Description>
          <Target>
             <AnyOf>
                <AllOf>
                   <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Validity</AttributeValue>
    <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                   </Match>
                </AllOf>
             </AnyOf>
          </Target>
          <Condition>
             <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">System_Administrator</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">User</AttributeValue>
                   </Apply>
                  <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">ProviderMaster</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">FacilityMaster</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">PatientMaster</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:environment-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Apply>
          </Condition>
       </Rule>
       <Rule Effect="Permit" RuleId="dimensions-conformity-component-access-rule">
          <Description>Handles the access for conformity dimension</Description>
          <Target>
             <AnyOf>
                <AllOf>
                   <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Conformity</AttributeValue>
                      <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                   </Match>
                </AllOf>
             </AnyOf>
          </Target>
    <Condition>
             <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">ProviderMaster</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">PatientMaster</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:environment-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Apply>
          </Condition>
       </Rule>
       
    </Policy>        

Procedure: How to Configure Measures

Access to measures can be configured in the component-access-measures-policy file. Each measure has its own section, as shown in the following image.

The policy allows you to define which roles can work with specific measures and which domains those dimensions are available in.

  1. After accessing the measures, enable the policy (if needed).
  2. Publish it to the PDP.

    The configured measures appear in the application after logging on again, as shown in the following image.

    The following is an example of the component-access-measures-policy.

    <Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"  PolicyId="component-access-measures-policy" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1.0">
       <Description>Policy that specifies if measures are available for provided roles. Order is important first applicable result will be returned.</Description>
       <Target>
          <AnyOf>
             <AllOf>
                <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                   <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">authorize-component</AttributeValue>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Match>
             </AllOf>
          </AnyOf>
       </Target>
       <Rule Effect="Permit" RuleId="dimensions-conformity-component-access-rule">
          <Description>Handles the access for Production Capacity measure</Description>
          <Target>
             <AnyOf>
                <AllOf>
                   <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">ProductionCapacity</AttributeValue>
                      <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                   </Match>
                </AllOf>
             </AnyOf>
          </Target>
         <Condition>
             <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                   </Apply>
    <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">PatientMaster</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">FacilityMaster</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:environment-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Apply>
          </Condition>
       </Rule>
       <Rule Effect="Permit" RuleId="dimensions-validity-component-access-rule">
          <Description>Handles the access for Revenue measure</Description>
          <Target>
             <AnyOf>
                <AllOf>
                   <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Revenue</AttributeValue>
                      <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
                   </Match>
                </AllOf>
             </AnyOf>
          </Target>
          <Condition>
             <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">System_Administrator</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Supervisor</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Data_Steward</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">User</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="http://wso2.org/claims/role" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
                   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">PatientMaster</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">ProviderMaster</AttributeValue>
                      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">FacilityMaster</AttributeValue>
                   </Apply>
                   <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:environment-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Apply>
             </Apply>
          </Condition>
       </Rule>
       
    </Policy>