Keeping Client and Advisor Data segregated and confidential is at the heart of the Security configuration built into the Fintso platform.
We do it essentially through the concept of Data Entitlement: Data is to be shown ONLY to the person who is entitled to see the data.
Given that we are a B2B2C platform, we are currently building a multi-tenant SaaS event-driven cloud-native application. We are achieving multi-tenancy by isolating data at the database level using roles and security policies.
Our platform, which is one of the best online mutual fund software platforms for IFA, needs to be extensible in order to allow silo deployments for advisors requesting so in the future. In such a case, the isolation will happen at multiple levels - UI, business layer, database. Indispensably, a replica of the platform is set up for the business.
While the platform provides multiple features to the advisors, what it promises the advisors is data privacy. The platform deals with different kinds of data. The two main categories of data are shared master data (AMC, products, NAV) and client data (personal, investments).
Advisors are on-boarded to the platform as subscribers. A subscriber chooses a plan that grants him/her a certain set of services. The services grant access to a limited set of data. This forms the subscriber context.
Each subscriber may additionally onboard other advisors and sub-brokers as employees. An employee belongs to one subscriber only. Each employee may be assigned to one or more clients. To state the employee’s data entitlement in simple terms:
- The client data is accessible only to the assigned employee and the higher-ups in his hierarchy.
- The employee does not have access to all the client data such as transactions prior to his/her association with the client or data uploaded by the client.
- He/she can access only that part of the client data that he/she is associated with through the subscriber.
- The data that the client has agreed to share with the advisor through the platform.
In other words, an employee’s data access is limited to the subscriber context and the period of association with the client. If the client agrees to share additional data with the advisor, then it is made available to the subscriber context.
User authentication is achieved using OAuth2 token-based authentication. Identity and Access tokens are issued to the user on sign-in, which are further used to determine data entitlement.
Implementing Data Entitlement
Subscriber context is established using AWS Cognito and IAM Policies. The JWT token contains the user identity. When a user makes a request for data, it reaches the API Gateway. Every request is serviced by a Lambda function behind the API Gateway. The request is intercepted by the Custom Authorizer at the API Gateway. The authorizer performs the following tasks to check if the user has access to the requested function.
- Validate the JWT token
- Retrieve the roles of the user [A user may be assigned multiple roles, hence plural]
- If the user is a client, check if the role has access to the requested data
- If the user is an employee
- Retrieve the subscriber for the employee
- Check if the role has access to the requested data
- Pass the user and subscriber details to the function
The function, on receipt of the subscriber details, establishes the subscriber context and retrieves data with that scope.
We are working actively for information security management system (ISMS) certification.
An ISMS is a set of guidelines and processes created to help organizations in a data breach scenario. By having a formal set of guidelines, businesses can minimize risk and can ensure work continuity in case of a staff change.
With our promising online platform for mutual fund distributors and IFAs, which is completely safe to use you can enjoy the best of the services available in the Financial advisory ecosystem.
By Shilpa Nagavara, Solutions Architect & Full Stack Developer Lead, Fintso
Over 17 years, Shilpa has built applications for healthcare, federal, transportation and banking domains. She has designed systems using a wide array of diverse technologies from Microsoft to Java to JS to PHP to now Python and AWS. She specialises in finding simple and robust solutions to complex problems by leveraging state-of-the-art technologies.