Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to the ID Platform - Mercari India DEV Meetup #01 Backend

mercari
September 12, 2022

Introduction to the ID Platform - Mercari India DEV Meetup #01 Backend

This is a team introduction of Merpay ID Platform.
Merpay, Inc. was established in November 2017 as a fully-owned subsidiary of Mercari, Inc., with the goal of starting a new business related to finance. Merpay’s mission is to build trust for a seamless society. Using the technological know how, vast user base, and foundation of data from the marketplace app Mercari, the company’s goal is not only to provide Merpay as a method of payment, but to create a new form of trust that could be used to provide various other financial services in the future.

This slide was presented at the first Mercari India DEV Meetup on the 20th August to introduce the Backend teams of Mercari group. The recording can be viewed from the link below.
https://youtu.be/w_khQWGhzic

- Speaker LinkedIn
https://www.linkedin.com/in/guha-arghya/
https://www.linkedin.com/in/utkarsh-saxena-42497a119/

Please follow us on our LinkedIn account for the latest information!
https://www.linkedin.com/company/mercari-india/

#Engineering #MercariIndia #Backend

mercari

September 12, 2022
Tweet

More Decks by mercari

Other Decks in Programming

Transcript

  1. 2 @guha • From Kolkata India. • Joined IDP on

    January 1 this year. • 9+ years as a SWE. • Worked mainly in E-Commerce, Geo Data and now IDP. Software Engineer(IDP)
  2. 3 Purpose of IDP Introduce appropriate authentication, access control, and

    data protection to Mercari Group services in a standard format.
  3. 4 Appropriate and standard Meaning of "appropriate" • Authentication: Sufficiently

    strong authentication • Access Control: Principle of Least Privilege • Data Protection: data mimization/unlinkability Reason for "standard" • Authentication and authorization is a basic function used in any service. Versatility. • Authentication and authorization is an important function directly linked to security incidents. Safety.
  4. 6 @utkarsh • From Jaipur India. • Graduated from IIT

    Roorkee, 2018. • Joined Mercari in October 2018. • Joined IDP in August 2019. • 4 years of experience at Mercari, Japan. • Worked mainly on ID platform (backend). Software Engineer(IDP)
  5. 8 Mercari in 2017 A few Client applications Mercari, Merchari

    etc Not many backend components ② Verify MAT Client add the MAT on the Request to Mercari API. Mercari API checks if the MAT is valid or not. There is no fine-grained AuthZ. ① Issue MAT The MAT is issued on Mercari API. The MAT will be bound with user by AuthN(Password, SMS ...) on Login process.
  6. 9 Mercari in 2017 Not many backend components A few

    Client applications Mercari, Merchari etc Change 1 Migration to the Microservice Architecture Change 2 Necessity of Variety clients
  7. 10 AuthN/AuthZ in Microservices architecture • Mercari introduced Microservices architecture

    to meet the business speed. • How to handle the AuthN/AuthZ on the Microservices architecture? ◦ Where should the authentication and authorization be done? ◦ How to share the information between each microservices?
  8. 11 • Mercari’s APIs are not only for Mercari App.

    Other Type of Clients and Other party Clients want to to use the APIs. • How to handle the variety of other type and party clients? ◦ How to issue and deliver the token securely for many type of client? ◦ How to control the Authorization finer grained. AuthN/AuthZ for other type/party clients
  9. 12 Old Mercari situation • Summary ◦ Token issuing and

    verification Process is executed on Mercari API. ◦ The token is called Mercari Access Token(MAT). ◦ MAT don’t have the ability to control authorization.
  10. 13 Recent Mercari situation (2019 - 2022) Go to Microservices

    ! Move business logic from Mercari API to Microservices
  11. 14 What is the problem in this situation 2. How

    to share the information between each microservices? 1. Where should we do authentication? How to handle the AuthN/AuthZ on the Microservices architecture?
  12. 15 How to solve the problem ② PAT Private Access

    Token(PAT) is used for sharing Authentication Information ③ Authority Verify MAT and Issue PAT ① Gateway MAT is checked on Gateway layer.
  13. 16 Process to Access API ② Verify MAT and Issue

    PAT Gateway/Authority will request to Mercari API to checks if the MAT is valid or not. If it is valid, PAT will be issued. ③ Communication between microservices Each microservices check if the PAT is valid. Propagate the PAT to access other microservices ① Issue MAT The process is same with old Mercari situation.
  14. 17 Access Control ② Microservices Each microservices should check if

    the requests are allowed by the claims of PAT, like subject. In addition to checking whether the PAT is valid or not. ① Gateway/Authority The situation is same with old Mercari situation. Just check MAT is valid or not.
  15. 18 Other issuing process of PAT ① Service When a

    worker want to access microservice. The PAT is created based on Google ID Token of Google Service Account. ① Employee When an employee access to Mercari’s API from CS Tool a employee token is used as external token.
  16. 19 How to handle the AuthN/AuthZ on Microservices? • Summary

    ◦ The MAT is used as External Token. ◦ Token issuing Process is same with old Mercari situation. ◦ Token verification Process is executed on Gateway/Authority Layer. ◦ Exchange external token (MAT) to Internal token (PAT). ◦ The Internal token(PAT) is propagated to microservices and be used AuthZ.
  17. 20 IDP current projects • Replacing MAT with OAuth2.0 Access

    Token (aka PFAT) • Authentication across multiple clusters • Additional Biometric Authentication (FIDO) ◦ One stop solution for phishing prevention ◦ Becoming a part of the FIDO alliance • Resource Management ◦ automate onboarding of oidc clients • Fine-grained Authorization What are we currently working on?
  18. 21 The ID Platform Team @kung
 @wicros
 @kokukuma
 @eric
 @g-varona


    @utkarsh
 @gia.nguyen
 @nikku
 @guha
 @koi
 @danny
 • 11 members • 9 nationalities • 1 Engineering Manager • 1 Tech Lead • 3 Product Managers • 6 Backend Engineers
  19. 22 We are Hiring! We are looking for ID pros

    who can bring their experience and expertise in the domain to lay the foundation of the IDP team in India.