Skip to content

Welcome to USSOΒΆ

Secure authentication and authorization for your application, without the complexity.

USSO (Universal Single Sign-On) is a modern, multi-tenant identity platform that handles authentication, authorization, and user management so you can focus on building your product.


πŸš€ Why USSO?ΒΆ

Building authentication from scratch is time-consuming, risky and challenging. USSO provides:

  • βœ… Flexible authentication β€” Password, Magic Link, OTP, OAuth, Passkeys, and QR-based login.
  • βœ… Granular authorization β€” Role-based access control (RBAC) with workspace isolation, plus attribute-based access control (ABAC).
  • βœ… Secure token management β€” Public key–based JWTs with access & refresh tokens, custom claims, and support for both cookies and headers.
  • βœ… API keys β€” First-class, scoped API keys for programmatic access.
  • βœ… Service accounts β€” JWT-based authentication for agents and non-human clients.
  • βœ… OAuth integrations β€” Delegated authorization for third-party services.
  • βœ… Developer SDKs β€” Official Python and JavaScript SDKs.
  • βœ… Multiple workspaces β€” Independent permission models inside each tenant.
  • βœ… Multi-tenant isolation β€” Built-in separation for SaaS applications.
  • βœ… Flexible deployment β€” Self-hosted or fully managed, deployable with Docker in minutes.

🎯 Perfect for Startups¢

USSO is designed for early-stage companies that need enterprise-grade authentication without the overhead:

  • Quick to integrate β€” Get started in under 30 minutes
  • Scales with you β€” From MVP to production
  • Open source β€” No vendor lock-in
  • Cost-effective β€” Self-host with Docker or use our managed service

USSO has you covered β€” no more stitching together ad-hoc user management solutions (OAuth, API keys, etc.) as your product grows.


πŸ—οΈ How It WorksΒΆ

sequenceDiagram
    participant User
    participant USSO
    participant App1 as Your App

    User->>USSO: 1. Login
    USSO->>USSO: Authenticate
    USSO->>User: 2. JWT Token (signed)

    User->>App1: 3. Request with JWT
    App1->>App1: Verify with Public Key
    App1->>User: 4. Access granted
  1. User authenticates with USSO using their preferred method
  2. USSO issues JWT token signed with private key, containing user identity and permissions
  3. User sends JWT to your application(s)
  4. Your apps verify JWT using USSO's public key (via JWKS) - no need to call USSO!
  5. Same token works across all your applications - true Single Sign-On

πŸ“Œ Considerations

πŸš€ Performance β€” Apps verify tokens locally (<1ms), with no network calls to USSO.

πŸ”’ Security β€” Tokens are cryptographically signed; apps trust the signature, not the bearer.

πŸ“± Scalability β€” USSO never becomes a bottleneck; applications remain independent.

🌐 Universality β€” One token works across all services, enabling a true SSO experience.


πŸš€ Getting Started Install USSO and create your first user in 5 minutes

πŸ“– Core Concepts Understand multi-tenancy, tokens, and authorization

πŸ’» Integration Guide Connect your app with Python SDK

πŸ“š API Reference Complete REST API documentation


πŸ”’ Security FirstΒΆ

USSO is built with security as a top priority:

  • Modern cryptography - EdDSA (Ed25519) by default, RSA and ECDSA are also supported
  • Token security - Short-lived access tokens with refresh rotation
  • Rate limiting - Protection against brute force attacks
  • Audit logs - Track all authentication events
  • Open source - Transparent and auditable code

Learn about security β†’

πŸ” Authentication MethodsΒΆ

USSO supports multiple authentication methods out of the box:

Method Use Case
Password Traditional email/password login
Magic Link Passwordless email authentication
OTP SMS or email one-time codes
OAuth/OIDC Login with Google, GitHub, etc.
Passkeys WebAuthn biometric authentication
QR Code Cross-device login (like WhatsApp Web)

Learn more about authentication methods β†’


πŸ›‘οΈ Authorization That ScalesΒΆ

USSO's authorization system grows with your needs:

  • Roles - Bundle permissions into reusable roles
  • Scopes - Fine-grained access control
  • Workspaces - Isolate data by team or organization
  • Custom policies - Extend with your own logic

Explore authorization β†’


πŸ€– Service AccountsΒΆ

Need machine-to-machine authentication? USSO provides:

  • Service Agents - Dedicated accounts for services
  • API Keys - Simple token-based authentication
  • Scoped access - Limit what each service can do

Learn about service accounts β†’


πŸ”Œ OAuth ProviderΒΆ

Turn USSO into an OAuth/OIDC provider for your ecosystem:

  • Let third-party apps authenticate your users
  • Manage client applications
  • Full OAuth 2.0 and OpenID Connect support

Setup OAuth provider β†’


🚒 Deployment Options¢

Coming soon! Use our hosted service without managing infrastructure.

🏠 Self-Hosted¢

Deploy USSO with Docker in your infrastructure:

git clone https://github.com/ussoio/usso.git
cd usso
cp sample.env .env
# Edit .env with your configuration
docker compose up -d

Read deployment guide β†’


πŸ’‘ Example IntegrationΒΆ

Here's how simple it is to protect your API with USSO:

from fastapi import FastAPI, Depends
from usso.integrations.fastapi import get_authenticator
from usso.config import JWTConfig
from usso.schemas import UserData

# Configure USSO
config = JWTConfig(
    jwks_url="http://localhost:8000/.well-known/jwks.json",
    issuer="https://sso.example.com",
    audience="api.example.com"
)

authenticator = get_authenticator(config)
app = FastAPI()

@app.get("/protected")
def protected_route(user: UserData = Depends(authenticator)):
    return {"user_id": user.sub, "roles": user.roles}
//not implemented yet
# Login to get token
curl -X POST http://localhost:8000/api/sso/v1/auth/login \
    -H "Content-Type: application/json" \
    -d '{
    "identifier": "[email protected]",
    "secret": "password123"
    }'

# Use token to access protected resource
curl -X GET http://localhost:8000/api/sso/v1/me \
    -H "Authorization: Bearer <your_access_token>"

See more integration examples β†’


πŸ—ΊοΈ What's Next?ΒΆ

We're actively developing USSO. Check out our roadmap to see what's coming:

  • Additional KYC integrations
  • User impersonation for support
  • Telegram authentication
  • TOTP support
  • Multi-account linking
  • Rust implementation for performance

🀝 Community & Support¢


πŸ“– Next StepsΒΆ

Ready to get started? Follow our quick start guide:

Get Started β†’

View on GitHub β†’