This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Configuring the Open-Banking.xml File for Berlin
Configure open-banking.xml
files in both WSO2 Open Banking Key Manager(
WSO2_OB_KM
) and WSO2 Open Banking API Manager(
WSO2_OB_APIM)
nodes based on the configurations listed below.
The
open-banking.xml
files are in below locations:
<WSO2_OB_KM_HOME>/repository/conf/finance/open-banking.xml
<WSO2_OB_APIM_HOME>/repository/conf/finance/open-banking.xml
Do the following configurations in both the Key Manager and API Manager nodes and restart the servers.
Configuration | |||||||||
---|---|---|---|---|---|---|---|---|---|
1 | Define the specification that you plan to deploy. Possible values: <DeployedSpecification>BERLIN</DeployedSpecification> | ||||||||
2 | Select an SCA approach. Currently, the solution supports only the Redirect approach (OAUTH2 is subsumed by this). <SCA> <SelectedSCAApproach>REDIRECT</SelectedSCAApproach> </SCA> | ||||||||
3 | The endpoint to retrieve OIDC Discovery metadata. <SCA> <OAuthMetadataEndpoint>https://<WSO2_OB_APIM_HOST>:8243/.well-known/openid-configuration</OAuthMetadataEndpoint> </SCA> | ||||||||
4 | Following links represent the templates of the self links for the newly created accounts and payments resources. <AccountConsentSelfLink>https://<WSO2_OB_APIM_HOST>:8243/xs2a/1.3.3/consents/%s</AccountConsentSelfLink> <PaymentResourceSelfLink>https://<WSO2_OB_APIM_HOST>:8243/xs2a/1.3.3/%s/%s/%s</PaymentResourceSelfLink> | ||||||||
5 | This configuration decides the optional parameters sent in the request. The ASPSP can decide on the optional parameters they need to mandate. For example <Berlin> <MandatoryParameters> <!--<Parameter>PSU-ID</Parameter>--> <!--<Parameter>PSU-ID-Type</Parameter>--> </MandatoryParameters> </Berlin> | ||||||||
6 | The
<Berlin> <AuthorizeCancellation>false</AuthorizeCancellation> </Berlin> | ||||||||
7 |
<SharableAccountsRetrieveEndpoint>http://<WSO2_OB_APIM_HOST>:9763/open-banking/services/bankaccounts/bankaccountservice/sharable-accounts</SharableAccountsRetrieveEndpoint>
< <PayableAccountsRetrieveEndpoint>http://<WSO2_OB_APIM_HOST>:9763/open-banking/services/bankaccounts/bankaccountservice/payable-accounts</PayableAccountsRetrieveEndpoint> In some banks, some PSUs may have a certain number of accounts, but not all accounts have the ability to be shared externally or to make a payment online. In a bank, the sharable account list and the payable account list can either be the same or different. In the default WSO2 Open Banking solution, at least two APIs are expected to return sharable and payable accounts when passing the user_id, and the given JSON response must be returned. Then it automatically loads the accounts list in the consent page. The bank's backend endpoint for retrieving the user's accounts returns a response in the following format: Account: type: object properties: iban: type: string example: DE12345678901234567890 description: IBAN of account GetAccountsResponse: type: object properties: customerNumber: type: string accounts: type: array items: $ref: '#/definitions/Account' description: The response related to the get method of Account By default, mock backend deployed in https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/v130/accounts/shareable An example of configuring the endpoint to retrieve payable accounts: https://<WSO2_OB_APIM_HOST>:9443/open-banking-berlin/services/v130/accounts/payable | ||||||||
8 | The link to the payment initiation resource, which needs to be updated by the PSU identification. This might be used in an embedded, redirect or decoupled SCA Approach, where the PSU ID was missing in the first request. <SCA> <UpdatePSUIdentification>https://<WSO2_OB_KM_HOST>:9446</UpdatePSUIdentification> </SCA> | ||||||||
9 | The link to the payment initiation resource, which needs to be updated by a PSU password and eventually the PSU identification if not delivered yet. This is used in case of the Embedded or Decoupled SCA approach. <SCA> <UpdatePSUAuthentication>https://<WSO2_OB_KM_HOST>:9446</UpdatePSUAuthentication> </SCA> | ||||||||
10 | This is a link to a resource, where the TPP can select the applicable strong customer authentication methods for the PSU if there were several available authentication methods. <SCA> <SelectAuthenticationMethod>https://<WSO2_OB_KM_HOST>:9446</SelectAuthenticationMethod> </SCA> | ||||||||
11 | The link to the payment initiation resource, where the "Payment Authorisation Request" is sent to. This is the link to the resource which will authorise the payment by checking the SCA authentication data within the Embedded SCA approach. <SCA> <AuthorizeTransaction>https://<WSO2_OB_KM_HOST>:9446</AuthorizeTransaction> </SCA> | ||||||||
12 | Configure SCA Methods for API responses. Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the first relevant factor, or if an access token is transported. Following are the possible SCA Authentication types:
<Berlin> <SCA> <SCAMethods> <AuthenticationObject> <AuthenticationType>SMS_OTP</AuthenticationType> <AuthenticationVersion>1.0</AuthenticationVersion> <AuthenticationMethodId>sms-otp</AuthenticationMethodId> <Name>SMS OTP on Mobile</Name> <Explanation>SMS based one time password</Explanation> <Default>true</Default> </AuthenticationObject> </SCAMethods> </SCA> </Berlin> | ||||||||
13 | The time interval for duplicate checking of payment consent initiation requests using X-Request-ID. <DuplicateCheck> <TimeIntervalInMinutes>60</TimeIntervalInMinutes> </DuplicateCheck> | ||||||||
14 | Enable IBAN validation for single accounts by adding the <EnableIBANBasedSingleAccountRetrievalValidation>true</EnableIBANBasedSingleAccountRetrievalValidation> <EnableIBANBasedAccountRetrievalValidation>true</EnableIBANBasedAccountRetrievalValidation> | ||||||||
15 | The <FrequencyPerDay>4</FrequencyPerDay | ||||||||
16 | This is for the Data Reporting feature, to enable data publishing set the <DataPublishing> <!-- Include all configurations related to Data publishing --> <!-- Enable data publishing in WSO2 Open Banking--> <Enabled>true</Enabled> <!-- Server URL of the remote BI server used to collect statistics. Must be specified in protocol://hostname:port/ format. --> <ServerURL>{tcp://<WSO2_OB_BI_HOST>:7612}</ServerURL> <!-- Administrator username to login to the BI server for data publishing. --> <Username>admin@wso2.com@carbon.super</Username> <!-- Administrator password to login to the BI server for data publishing. --> <Password>wso2123</Password> </DataPublishing> | ||||||||
17 | To enable Transaction Risk Analysis, set the Use the <AccountValidationEnabled> and <TRA> <!-- Include all configurations related to Transaction Risk Analysis --> <!-- Enable TRA in WSO2 Open Banking--> <IsEnabled>true</IsEnabled> <!-- following configurations are used to enable TRA for specific flows only--> <!-- Enable TRA for Payments--> <PaymentValidationEnabled>true</PaymentValidationEnabled> <!-- Enable TRA for Accounts--> <AccountValidationEnabled>true</AccountValidationEnabled> <!-- Configurations related to TRA Receivers--> <Receivers> <!-- Administrator username to login to the remote BI server. --> <Username>admin@wso2.com@carbon.super</Username> <!-- Administrator password to login to the remote BI server. --> <Password>wso2123</Password> <!-- Receiver URLs of the Siddhi Apps used to validate for TRA.--> <TRAAccountValidationURL>http://<WSO2_OB_BI_HOST>:8007/TRAAccountValidationApp/TRAValidationStream</TRAAccountValidationURL> <TRAPaymentValidationURL>http://<WSO2_OB_BI_HOST>:8007/TRAPaymentValidationApp/TRAValidationStream</TRAPaymentValidationURL> </Receivers> <TimePeriodOfRecurringPayment>90</TimePeriodOfRecurringPayment> <MaxFrequencyOfTransactionsWithoutSCA>5</MaxFrequencyOfTransactionsWithoutSCA> <TotalAmountLimitOfTransactionsWithoutSCA>100</TotalAmountLimitOfTransactionsWithoutSCA> <LastSCATimeLimit>90</LastSCATimeLimit> <TransactionAmountLimit>30</TransactionAmountLimit> <!-- Number of maximum days of transaction history that can be accessed with the first-time consent use for Berlin.--> <FirstAccessHistoryLimit>90</FirstAccessHistoryLimit> </TRA> | ||||||||
18 | You can enable the Fraud Detection feature by setting the <FraudDetection> <!-- Include all configurations related to Fraud Detection --> <!-- Enable FD in WSO2 Open Banking--> <IsEnabled>true</IsEnabled> <!-- Configurations related to FD Receivers--> <Receivers> <!-- Administrator username to login to the remote BI server. --> <Username>admin@wso2.com@carbon.super</Username> <!-- Administrator password to login to the remote BI server. --> <Password>wso2123</Password> <!-- Receiver URLs of the Siddhi Apps used to validate for FD.--> <FraudDetectionURL>http://<WSO2_OB_BI_HOST>:8007/FraudDetectionApp/FraudDetectionStream</FraudDetectionURL> <InvalidSubmissionURL>http://<WSO2_OB_BI_HOST>:8006/InvalidSubmissionsApp/InvalidSubmissionsStream</InvalidSubmissionURL> </Receivers> </FraudDetection> | ||||||||
19 | If Mutual Transport Layer Security (MTLS) is terminated before the request reaches the Gateway, retrieve the TPP's certificate from the MTLS session and include as a transport certificate header. By default, the gateway expects <CertificateManagement> <!-- In order to enable the client certificate validation feature (Certificate Expiry, Signature and Revocation validation during MTLS), the following module needs to be engaged under the "Global Engaged Modules" section in the axis2.xml file. <module ref="mtlscertvalidator"/> --> <!--Set the value of the transport certificate header sent in the request if MTLS is terminated before the gateway default value is ssl.client.auth.cert.X509--> <TransportCertificateHeader>ssl.client.auth.cert.X509</TransportCertificateHeader> </CertificateManagement> The load balancer should not allow the TPP to send its certificate as a transport certificate header that is configured in the If such header was found in the TPP’s request, it is mandatory to remove that header from the TPP’s request. This is applicable even when the MTLS session is not terminated at the load balancer. When TLS is terminated before reaching the Gateway, to send the client certificate as a transport header, add the following configuration just above the <ClientTransportCertAsHeaderEnabled>true</ClientTransportCertAsHeaderEnabled> | ||||||||
20 | In order to enable certificate revocation validation for API security, make sure that the following configurations are added under the <CertificateManagement> <!-- Expiry time for the cache (in seconds) for storing the validation result of the certificates--> <ClientCertificateCacheExpiry>3600</ClientCertificateCacheExpiry> <!-- Enable/Disable certificate OCSP and CRL validation. Default value has been set to true --> <CertificateRevocationValidationEnabled>true</CertificateRevocationValidationEnabled> </CertificateManagement> | ||||||||
21 | This feature is available as a WUM update from September 3, 2019 (09-03-2019) onwards. To extend the certificate revocation validation by adding alternative approaches, configure the CertificateManagement configurations as follows: <CertificateManagement> <ClientTransportCertAsHeaderEnabled>true</ClientTransportCertAsHeaderEnabled> <!-- Validate the issuer of the certificate when the client cert is received as a transport header --> <TransportCertIssuerValidationEnabled>true</TransportCertIssuerValidationEnabled> <!--Manager class implementation responsible for verifying certificate revocation status--> <RevocationValidationManagerImplClass>com.wso2.finance.open.banking.mtlscert.validator.service.CertRevocationValidationManagerImpl</RevocationValidationManagerImplClass> <!-- Retry count for validating certificate OCSP and CRL revocation status --> <CertificateRevocationValidationRetryCount>3</CertificateRevocationValidationRetryCount> <!-- List of issuer DNs whose issued certificates needs to be skipped from certificate revocation validation. e.g. <IssuerDN>CN=Test Pre-Production Issuing CA, O=Test, C=GB</IssuerDN> --> <RevocationValidationExcludedIssuers> <IssuerDN></IssuerDN> </RevocationValidationExcludedIssuers> <!--Truststore dynamic loading interval (in seconds). Default value has been set to 86400 seconds--> <TrustStoreDynamicLoadingInterval>86400</TrustStoreDynamicLoadingInterval> </CertificateManagement> | ||||||||
22 | By default, the Consent Management APIs are secured with basic authentication. To access the Consent Management APIs, use the default user or create a new user using the Key Manager Management Console.
See configuring basic authentication for Consent Management APIs for more information. | ||||||||
23 | If the TPP certificate revocation validation is failing due to no internet connectivity, update the parameter values under <CertificateRevocationProxy> <Enabled>false</Enabled> <ProxyHost>PROXY_HOSTNAME</ProxyHost> <ProxyPort>8080</ProxyPort> </CertificateRevocationProxy> | ||||||||
24 | Configure the client certificate header name in the <CertificateManagement> <!--Mutual TLS Authenticator Certificate header--> <ClientAuthenticationHeader>x-wso2-mutual-auth-cert</ClientAuthenticationHeader> </CertificateManagement> | ||||||||
25 | To enforce regulatory certificates for API invocations, add the following configuration under the This is available only as a WUM update and is effective from April 26, 2021 (04-26-2021). For more information on updating WSO2 Open Banking, see Updating WSO2 Products. <EnforceRegulatoryCertificates>true</EnforceRegulatoryCertificates> |