Skip to content

Identity & Auth

TapPass authenticates two types of principals: humans (SSO) and AI agents (SPIFFE).

The middleware tries four methods in order. First match wins:

PriorityMethodWhoProtocol
1SPIFFE X509-SVIDAI agentsmTLS (1h TTL, auto-rotated by SPIRE)
2SPIFFE JWT-SVIDAI agentsBearer token (5 min TTL)
3Session JWTHumansSSO (SAML 2.0 / OIDC)
4Admin keyBootstrapOne-time account creation

No match = 401. No fallback.

Agents authenticate via SPIFFE IDs issued by SPIRE:

spiffe:/tappass.internal/agent/acme/research-bot
└─ trust domain ─┘ └─ org ┘ └─ agent ─┘

No API keys, no passwords. SPIRE handles certificate rotation automatically.

Three methods:

ProviderProtocol
Google WorkspaceOIDC
Azure AD (Entra ID)OIDC or SAML 2.0
OktaOIDC or SAML 2.0

See the SSO guide for configuration.

super_admin (40): cross-org access, all operations
org_admin (30). team management, pipeline config
developer (20). agent registration, API access
auditor (10). read-only: audit trail, compliance
employee (0). dashboard, OAuth connections
  • Constant-time login: always runs bcrypt, even for unknown emails (prevents user enumeration)
  • Brute-force protection: per-IP and per-email lockout (5 attempts, 15 min cooldown)
  • Session revocation: single-session and revoke-all-sessions support
  • SAML signature verification: full XML digital signature chain with wrapping attack prevention