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
- User authenticates with USSO using their preferred method
- USSO issues JWT token signed with private key, containing user identity and permissions
- User sends JWT to your application(s)
- Your apps verify JWT using USSO's public key (via JWKS) - no need to call USSO!
- 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.
π Quick LinksΒΆ
π 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
π 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
π€ 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
π’ Deployment OptionsΒΆ
βοΈ Cloud (Recommended)ΒΆ
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
π‘ 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}
# 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ΒΆ
- GitHub: github.com/ussoio/usso
- Issues: Report bugs or request features
- Email: [email protected]
- Documentation: You're reading it! π
π Next StepsΒΆ
Ready to get started? Follow our quick start guide: