> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topsort.com/llms.txt
> Use this file to discover all available pages before exploring further.

# User Authentication and Authorization

> Understanding User Authentication and Authorization with Topsort

export const LastUpdated = ({date, lang = "en"}) => {
  const translations = {
    en: "Last updated:",
    es: "Última actualización:",
    pt: "Última atualização:",
    fr: "Dernière mise à jour:",
    de: "Zuletzt aktualisiert:"
  };
  const label = translations[lang] || translations.en;
  return <>
<style>{`
.last-updated-component {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
border-radius: 8px;
margin-top: 12px;
margin-bottom: 16px;
font-size: 14px;
background-color: rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0, 0, 0, 0.12);
color: rgba(0, 0, 0, 0.75);
line-height: 1;
}

        .last-updated-component svg {
          flex-shrink: 0;
          vertical-align: middle;
        }

        .last-updated-component span {
          display: inline-flex !important;
          align-items: center !important;
          line-height: 1 !important;
        }

        [data-theme="dark"] .last-updated-component {
          background-color: #3a3a3a;
          border: 2px solid #888888;
          color: #ffffff;
        }

        [data-theme="dark"] .last-updated-component svg {
          stroke: #ffffff;
        }
      `}</style>
      <div className="last-updated-component">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <circle cx="12" cy="12" r="10" />
          <polyline points="12 6 12 12 16 14" />
        </svg>
        <span>
          <strong style={{
    fontWeight: 600
  }}>{label}</strong> 
          <time dateTime={date}>{date}</time>
        </span>
      </div>
    </>;
};

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Topsort provides robust authentication options, including single sign-on (SSO) capacities, to manage how vendors and admin users access the platform. After successful authentication, users are authorized to the appropriate dashboard based on their permissions.
</div>

## Authentication Options

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  1. Email and password.
  2. Social login (using existing Google and Microsoft credentials).
  3. Single sign-on (SSO), integrated with your custom enterprise login system
</div>

## Authorization

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  After authentication, Topsort will authorize the user to the correct marketplace or vendor dashboard. Access is determined by where the user was created (user type) and their authorized permissions (user role).
</div>

<Note>An email address can have access to multiple vendor dashboards or multiple marketplace dashboards. But an email address cannot have access to both vendor and marketplace dashboards simultaneously.</Note>

## Single Sign-On (SSO)

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  SSO allows users to authenticate with Topsort using your organization's existing credentials. This offers improved user experience with centralized authentication by your organization. It also allows for customization while increasing productivity by eliminating multiple logins. The users will access your organization's login page instead of Topsort's for authentication.
</div>

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  Topsort uses [Auth0](https://auth0.com/) as the identity provider to manage user authentication and authorization. To use SSO, your system must comply with one of these protocols:
</div>

* OpenID Connect (OIDC)
* SAML 2.0
* OAuth 2.0

<div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
  To get started with SSO, contact your Topsort account manager or support team.
</div>

***

<LastUpdated date="2025-11-18" />
