This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, go to https://wso2.com/documentation/.

Configuring Consent Revocation Apps for Berlin

After a certain period, some bank customers (Payment Service Users/(PSUs), may prefer to revoke the consents they gave Third-Party Providers (TPPs) to access account data. In WSO2 Open Banking, you can revoke these consents as follows:

Let's learn more about these two methods! 

WSO2 Open Banking adheres to PSD2, which states that a PSU cannot revoke a payment-order consent after it has been authorised, you can only revoke account consents, not payment consents.


Revoking the Consents by Payment Service Users

Before you begin:

Configure the Consent Management application to try out the Consent Manager Portal.

 Click here to see how to configure Consent Management application

WSO2 Open Banking solution includes consent revocation apps that support bank customers (PSUs) and banks (ASPSPs) to revoke consents. The consent revocation app provided to PSU is known as Self-care portal and the consent revocation app provided to ASPSP is known as Customer Care portal

In order to manage the consents granted to a Third-Party Provider using the Self-care portal,  do the following configurations. 

  1. Go to the Identity and Access Management Console at https://<WSO2_OB_IAM_HOST>:9446/carbon.
  2. On the Main tab, click Home > Identity > Service Providers > Add.
  3. By default, the mode is set to Manual Configuration. Leave it as it is.
  4. Enter consentmgt as the Service Provider’s name. 
  5. Click Register.
  6. Click Inbound Authentication configuration > OAuth/OpenID Connect configuration > Configure.
  7. Set the values for the following parameters and keep the default value for the other parameters.

    ParameterValue
    OAuth Version2.0
    Allowed Grant Type

    code

    Callback URL
    regexp=(https://<WSO2_OB_IAM_HOST>:9446/consentmgt|https://<WSO2_OB_IAM_HOST>:9446/consentmgt)

    The first and second URLs are respectively; redirect and logout URLs.

    Regex-based consumer URLs are supported when defining the callback URL. This enables you to configure multiple callback URLs for one application by entering a regex pattern as the value for the callback URL field.

    You must have the prefix regexp= before your regex pattern. To define a normal URL, you can specify the callback URL without this prefix.

  8. Click Add.

    The OAuth client key/client ID and OAuth client secret are generated. Those are used in Configuring consent management jaggery application.

  9. Open the <WSO2_OB_IAM_HOME> /repository/deployment/server/jaggeryapps/consentmgt/configs/conf.json file and modify the following parameters:

    ParameterDescription

    apimHost

    Hostname of the API Management server

    applicationId

    OAuth Client Key generated in the above step
    authCredential

    Base64 encoded CLIENT_ID:CLIENT_SECRET value (in the given format). 

    For example, 

    redirectUrl

    The URL you are redirected to when you log in to the application.

    logoutUrl

    The URL you are redirected to when you log out from the application.
    DeployedSpecificationPossible values are UK, BERLIN, AU, and STET. By default, the value is set to UK.

    Given below is a sample file for the Berlin specification:

    {
    	"app" : "consentmgt",
    	"applicationType" : "oauth2",
    	"tenantDomain": "carbon.super",
    	"apimHost":"http://<WSO2_OB_APIM_HOST>",
    	"apimNioPort":"8280",
    	"apimHttpPort":"9763",
    	"kmHost" : "https://<WSO2_OB_IAM_HOST>",
    	"kmPort" : "9446",
    	"kmTokenAPI" : "oauth2/token",
    	"kmAuthorizeAPI" : "oauth2/authorize",
    	"applicationId":"<CLIENT_ID>",
    	"authCredential":"<BASE64ENCODED CLIENT CREDENTIALS>",
    	"redirectUrl":"https://<WSO2_OB_IAM_HOST>:9446/consentmgt",
    	"logoutUrl": "https://<WSO2_OB_IAM_HOST>:9446/consentmgt",
    	"tokenApiName" : "token",
    	"tokenApiVersion" : "",
    	"authorizeApiName" : "authorize",
    	"authorizeApiVersion" : "",
    	"pagination" : {
    		"limit" : 11,
    		"actualLimit" : 10,
    		"offset": 0
    	},
    	"DeployedSpecification" : "BERLIN"
    }



The WSO2 Open Banking Consent Manager portal also known as the Self-care portal, enables Payment Service Users (PSUs) to review and revoke the consents they provided to access account details. 

Let's take a look at how a PSU can revoke consent.

  1. Go to the Consent Manager portal at https://<WSO2_OB_IAM_HOST>:9446/consentmgt.

  2. Enter the username and password provided by the bank. Click Continue.
  3. In the Consent Manager portal's home page, you can view a list of Accounts and Payments consents that you have granted access to account information.

  4. Consent status is displayed to the right of the selected consent. The statuses of the consents are as follows: 

  5. After reviewing the consent, you may revoke it. 
  6. Optionally, you can enter a reason for the revocation.

    Revocation reasons help you to find more information later. It is not mandatory to provide a reason for revocation.

  7. Click Revoke to confirm the revocation. 

  8. The status of the consent is now changed to Revoked. You can still find the history of consents remaining in the list.


Revoking the consents by Customer Care Representatives

The WSO2 Open Banking Customer Care portal enables the Customer Care Representatives to revoke the consents on behalf of the PSUs.

Before you begin:

Create a user whose role is defined as a customer care officer. 

 Click here to see how it is done...
  1. Sign in to the Identity and Access Management console (https://<WSO2_OB_IAM_HOST>:9446/carbon). Use the default super admin credentials:

    Username: admin@wso2.com

    Password: wso2123

    The above credentials are used for demo purposes only. It is recommended to change them in a production environment.

  2. On the Main  tab, click  Identity > Users and Roles > Add > Add New Role and create the following user:

    DomainRolePermissions

    Internal

    CustomerCareOfficer

    No permissions required.
  3. On the  Main  tab, click  Identity > Users and Roles > Add > Add New User and create the following user:

    UserRoles
    ann@gold.comInternal/CustomerCareOfficer
  4. Click Finish.

Configuring SSO:

You can configure SSO for the Customer Care Portal.

 Click here to see how it is done
  1. Create a Service provider with the following parameters.
    1. Sign in to the Identity and Access Management console at https://<WSO2_OB_IAM_HOST>:9446/carbon.

    2. Go to Home > Identity > Service Providers > Add.

    3. Use the Manual Configuration option and fill in the Basic Information.

    4. Click Register.

    5. Go to Inbound Authentication Configuration > SAML2 Web SSO Configuration > Configure.
    6. Configure the following:

      Manual ConfigurationValue
      Issuerccportal
      Assertion Consumer URLshttps://<OB_IAM_HOST>:9446/ccportal/jagg/jaggery_acs.jag

    7. Click Add to add Assertion Consumer URL.

    8. Click Register.

    9. Expand the Local and Outbound Authentication Configuration section and select the authenticators that are used to authenticate users in this service provider (sample value: Default).

    10. Check the Enable Authorization checkbox and click Update.

  2. Setting up the policy.
    1. Follow the instructions in Configuring Access Control Policy for a Service Provider - Setting up the policy and publish a policy using the authn_role_based_policy_template for the Internal/CustomerCareOfficer role.
    2. Given below is a sample policy file:

      <Policy
      	xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" PolicyId="authn_ccportal_role_based_policy"        RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1.0">
      	<Description>This policy authorizes Internal/CustomerCareOfficer users to the ccportal service provider in the authentication flow based on the roles of the user. Other users will be denied.</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">ccportal</AttributeValue>
      					<AttributeDesignator AttributeId="http://wso2.org/identity/sp/sp-name" Category="http://wso2.org/identity/sp" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
      				</Match>
      				<Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
      					<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">authenticate</AttributeValue>
      					<AttributeDesignator AttributeId="http://wso2.org/identity/identity-action/action-name" Category="http://wso2.org/identity/identity-action" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"></AttributeDesignator>
      				</Match>
      			</AllOf>
      		</AnyOf>
      	</Target>
      	<Rule Effect="Permit" RuleId="permit_by_roles">
      		<Condition>
      			<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:or">
      				<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-is-in">
      					<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Internal/CustomerCareOfficer</AttributeValue>
      					<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"/>
      				</Apply>
      			</Apply>
      		</Condition>
      	</Rule>
      	<Rule Effect="Deny" RuleId="deny_others"/>
      </Policy> 
  3. Update SSO configurations.
    1. Open the <WSO2_OB_IAM_HOME>/repository/deployment/server/jaggeryapps/ccportal/configs/conf.json file.
    2. Update the ssoConfiguration section. Given below is a sample configuration:

         "ssoConfiguration":{
            "enabled":"true",
            "issuer":"ccportal",
            "identityProviderURL":"https://localhost:9446/samlsso",
            "keyStorePassword":"wso2carbon",
            "identityAlias":"wso2carbon",
            "verifyAssertionValidityPeriod":"true",
            "timestampSkewInSeconds":"300",
            "audienceRestrictionsEnabled":"true",
            "responseSigningEnabled":"true",
            "assertionSigningEnabled":"true",
            "keyStoreName":"<WSO2_OB_IAM_HOME>/repository/resources/security/wso2carbon.jks",
            "signRequests":"true",
            "assertionEncryptionEnabled":"false",
            "idpInit":"false",
            "idpInitSSOURL":"https://localhost:9446/samlsso?spEntityID=ccportal",
            "loginUserNameAttribute":""
         }
  4. Make sure the <WSO2_OB_IAM_HOME>/modules/sso/module.xml file contains the following:

    <hostObject>
    	<className>org.wso2.carbon.hostobjects.sso.SAMLSSORelyingPartyObject</className>
    	<name>SSORelyingParty</name>
    </hostObject>

  1. Sign in to the Customer Care Portal (https://<WSO2_OB_IAM_HOST>:9446/ccportal) using the username and password of a user with the Customer Care role. See Configuring Users and Roles, for more information on user roles.

  2.  You can filter the search results using the following parameters:
    • User ID: The user ID created for a PSU in the online baking application. This is the same ID used to generate the Consent ID.

    • Consent Type: Selected Accounts by default. You can select between Accounts and Payments.
    • Status: Select the consent status. 
    • Set Date Range: The date range in which the PSU’s consent is valid.

      You can use one or more filter options and proceed to search.

    WSO2 Open Baking is a solution developed with compliance to the PSD2. It is stated in the PSD2, a PSU cannot revoke a payment-order consent once it has been authorized.

  3. Click Search.
  4. A list of search results is displayed, as shown below. You can view the Account and Payment consent information by clicking the consent.

    Click the consent you want to revoke and view the consent details. 
  5. One consent ID can be granted to many accounts that belong to the same PSU. Therefore, there are two methods to revoke account consent.
    1. Revoke a consent -
      When a PSU has asked a customer care representative to revoke consent, customer care representative revokes all account consents with that consent ID.
    2. Revoke an account consent -
      An individual account consent can be revoked. It revokes only that account consent. 
  6. Click Revoke.

  7. Optionally, you are asked to enter a reason for the revocation.

    Revocation reasons will help you to find more information later. It is not mandatory to provide a reason for revocation.


  8. Click Revoke to confirm the revocation.