This documentation is for WSO2 Open Banking version 1.4.0. View documentation for the latest release.

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: idtokenissuerid

...

  1. Define the Open Banking specific Request Object Validator under the <OpenIDConnect> as follows:

    Code Block
    languagexml
    <RequestObjectValidator>com.wso2.finance.request.object.validator.OBRequestObjectValidatorImpl</RequestObjectValidator>
  2. Update the following configurations under the <OAuth> property with the hostname of the Open Banking API Manager Gateway.

    Code Block
    languagexml
    <OAuth2AuthzEPUrl>${carbon.protocol}://<WSO2_OB_APIM_HOST>:8243/authorize</OAuth2AuthzEPUrl>      
    <OAuth2TokenEPUrl>${carbon.protocol}://<WSO2_OB_APIM_HOST>:8243/token</OAuth2TokenEPUrl>
    
    <OAuth2UserInfoEPUrl>${carbon.protocol}://<WSO2_OB_APIM_HOST>:8243/userinfo</OAuth2UserInfoEPUrl>
    
    
    <OAuth2DCREPUrl>${carbon.protocol}://<WSO2_OB_APIM_HOST>:8243/register</OAuth2DCREPUrl>
    
    
  3. Update the following configuration under the <OpenIDConnect> tag with the hostname of the Open Banking API Manager server. 

    Code Block
    languagexml
    <IDTokenIssuerID>https://<WSO2_OB_APIM_HOST>:8243/token</IDTokenIssuerID>
  4. Make sure the RenewRefreshTokenForRefreshGrant value set to false. With this configuration, the refresh token that is received by the refresh token grant type is not renewed. This is used to enforce consent re-authorization.

    Code Block
    languagexml
    <RenewRefreshTokenForRefreshGrant>false</RenewRefreshTokenForRefreshGrant>
  5. Configure the ReceiverURL of the <EventPublisher> under <AdaptiveAuth> with the hostname of the Open Banking Business Intelligence Server. By default, the relevant Siddhi Apps are configured to listen to port 8006.

    Code Block
    languagexml
    <ReceiverURL>http://<WSO2_OB_BI_HOST>:8006/</ReceiverURL>
  6. Make sure the following Open Banking specific response type handlers are added under the <SupportedResponseTypes>.

    Code Block
    languagexml
    <SupportedResponseType>
    	<ResponseTypeName>code</ResponseTypeName>
    	<ResponseTypeHandlerImplClass>com.wso2.finance.open.banking.identity.extensions.response.type.handlers.OBCodeResponseTypeHandler</ResponseTypeHandlerImplClass>
    </SupportedResponseType>
    <SupportedResponseType>
    	<ResponseTypeName>code id_token</ResponseTypeName>
    	<ResponseTypeHandlerImplClass>com.wso2.finance.open.banking.identity.extensions.response.type.handlers.OBHybridResponseTypeHandler</ResponseTypeHandlerImplClass>
    </SupportedResponseType>
    Note

    In order to bind the MTLS certificate of the TPP that is sent in the requests to the user access token, update the  <GrantTypeHandlerImplClass> parameter under <GrantTypeName>authorization_code</GrantTypeName> as follows:

    Code Block
    <GrantTypeHandlerImplClass>com.wso2.finance.open.banking.identity.extensions.grant.type.handlers.MTLSTokenBindingAuthorizationCodeGrantHandler</GrantTypeHandlerImplClass>

    Add the following event listener under <EventListeners> and enable it as follows:

    Code Block
    <EventListener enable="true" name="com.wso2.finance.open.banking.identity.extensions.listeners.OBIntrospectionResponseInterceptor" orderId="27" type="org.wso2.carbon.identity.core.handler.AbstractIdentityHandler"/>
  7. The following Open Banking specific grant types should be there under <SupportedGrantTypes> property.

    Code Block
    languagexml
    <SupportedGrantType>
    	<GrantTypeName>authorization_code</GrantTypeName>
    	<GrantTypeHandlerImplClass>com.wso2.finance.open.banking.identity.extensions.grant.type.handlers.OBAuthorizationCodeGrantHandler</GrantTypeHandlerImplClass>
    </SupportedGrantType>
    
    <SupportedGrantType>
    	<GrantTypeName>client_credentials</GrantTypeName>
    	<GrantTypeHandlerImplClass>com.wso2.finance.open.banking.identity.extensions.grant.type.handlers.OBClientCredentialsGrantHandler</GrantTypeHandlerImplClass>
    	<IsRefreshTokenAllowed>false</IsRefreshTokenAllowed>
    	<IdTokenAllowed>false</IdTokenAllowed>
    </SupportedGrantType>
  8. The cache configurations are available in <CacheConfig> under <CacheManager> element. You can update the configurations according to your requirements.

  9. The ID Token Builder and the algorithm that signs the ID Token Builder are configurable.

    By default, <IDTokenBuilder> is set to org.wso2.carbon.identity.openidconnect.DefaultIDTokenBuilder. For example, to sign the <IDTokenBuilder> with the SHA256withPS algorithm the configurations are as follows:

    Code Block
    languagexml
    <OpenIDConnect>
    	<IDTokenBuilder>org.wso2.carbon.identity.openidconnect.DefaultIDTokenBuilder</IDTokenBuilder>
    	<SignatureAlgorithm>SHA256withPS</SignatureAlgorithm>
    </OpenIDConnect>

    Anchor
    BasicAuthConsentMgt
    BasicAuthConsentMgt

  10. By default, the Consent Management APIs are secured with basic authentication. 

    1. Each API resource is secured using a <Resource> element under <ResourceAccessControl>

    2. Use the default user or create a new user in the Key Manager Management Console to access the Consent Management APIs.
    3. Update the <Permissions> element under <Resource> with the permissions. These permissions are used to restrict access to the APIs. For more information, see Configuring Roles and Permissions.
    4. Update the credentials in Open Banking API Manager with the created user details.

      Expand
      titleClick here to see how it is done
      1. Open the <WSO2_OB_APIM_HOME>/repository/conf/finance/open-banking.xml file.
      2. Update the credentials under <APISecurity><Global> with the created user details.

        By default, this is set to the username and password of the super admin.

        Code Block
        languagexml
        <APISecurity>
        	<Global>
        		<Username>[email protected]</Username>
        		<Password>wso2123</Password>
        	</Global>
        </APISecurity>
    5. To disable basic authentication for an API, set the secured property to false in the corresponding <Resource> element. For example, to disable basic authentication for uk300 resources, update the configurations in the <WSO2_OB_KM_HOME>/repository/conf/identity/identity.xml file as follows:

      Code Block
      languagexml
      <ResourceAccessControl>
      	<!--
      
                  Configuration for protecting consent management APIs.
                  If not required, set secured to false. The credentials of the basic auth are
                  from the registered user role with the permission as specified in the Permission tag.
              
          -->
      	<Resource context="(.*)/uk300/(.*)" http-method="all" secured="false" allowed-auth-handlers="BasicAuthentication">
      		<Permissions>/permission/admin</Permissions>
      	</Resource>
      	<!--
                 END OF Configuration for protecting consent management APIs 
          -->
      </ResourceAccessControl>