Federated SSO Login Flow

Innovapptive’s mobile apps authenticate users using federated SSO, integrating with tenant-managed identity providers like Azure AD, Google, or Okta.

The following flow explains the complete authentication sequence—from mobile app launch to user provisioning—highlighting how the app, backend services, SSO server, and user management databases interact at each step.

  1. The mobile app fetches the SSO method and Client ID for the tenant from the Innovapptive DB.
  2. Based on the SSO type, the app displays a single sign-in button, such as Sign in with Google or Sign in with Okta.
  3. When the user taps the button, an in-app browser opens and redirects them to the SSO login or consent screen.
  4. Upon successful authentication, the SSO server redirects the user to Innovapptive’s landing URL with a one-time authorization code.
  5. The app sends this code—along with the tenant ID—to the Auth Backend.
  6. The backend sends a grant request to the SSO server using:
    • Authorization code
    • Client ID
    • Client Secret
  7. The SSO server responds with an access token and a refresh token.
  8. Using the access token, the Auth Backend fetches the user’s profile details from the SSO server.
  9. The backend then:
    • Stores the user details and SSO refresh token in the Users Table
    • Creates a Mongo Realm user with a unique password
  10. The backend returns the following credentials to the mobile app:
    • Realm username and password
    • Basic Auth JWT token (used for secure API and DB sync)
    Figure 1. Federated SSO Login Flow – From Mobile App to SSO and Backend Sync


    Figure 2. Authentication Module Flow V1 – Step-by-Step Message Exchange Across Components


    Reference: https://excalidraw.com/#json=Uc84zojdzuFrFQB_0mr-5,UHk6cX3C_yJpW-dDgC4nPw