Skip to content

Access and Onboarding

Landing and Sign-In Entry

Customer Portal Landing

Use the landing page to start authentication. The primary action calls the portal login flow and returns users to the customer portal after authentication.

Sign-Up Behavior

Customer Portal Register Guidance

When users select Sign up from customer login, they are routed to the customer portal registration page (/register) instead of Keycloak's default registration screen.

The page supports two onboarding paths:

  1. Self Registration: customer submits profile details, receives email verification and password setup flow
  2. Onboarded by CFA: company/CFA admin creates or links the customer, then the customer receives onboarding email actions

Note

A customer can exist without a CFA link and can later be linked to one or more CFAs.

Customers are importers or exporters that may work with one or more clearing agents. After onboarding, a linked customer can exchange messages, receive invoices/contracts, track shipments, rate completed services, and raise complaints.

Access Scope and Role Guard

Customer users are constrained to customer workflows only. If an active SSO session belongs to a user without customer-portal access, the app forces re-login so the user can switch account.

Session Basics

  • the app checks SSO status at load
  • token refresh runs automatically in the background
  • expired/invalid refresh falls back to login
  • registered passkeys can be used from the Keycloak login page as a passwordless sign-in option

Common Access Issues

Symptom Likely cause Action
redirected back to login user lacks customer-portal role in active SSO session sign out and sign in with customer-authorized account
sign-up submission fails validation error or duplicate email correct input and retry, or use password-reset/verify-email flows for existing accounts
blank/blocked after auth stale SSO callback params or expired session refresh browser and retry login
passkey registration does not open browser prompt unsupported browser/device or interrupted Keycloak required action retry over HTTPS from a passkey-capable browser