AuthFrame is built for developers who care about the security of their users. Here's how we protect your data at every layer.
Defense in depth across every layer of the stack.
All data is encrypted at rest using AES-256. All traffic is enforced over TLS 1.2+. Passwords are hashed with bcrypt (cost factor ≥ 12). Client secrets are stored as hashed values — never in plaintext.
Authentication endpoints are rate-limited per IP and per account. Repeated failures trigger exponential backoff and temporary lockouts. Suspicious activity is logged and can trigger alerts.
AuthFrame issues short-lived JWTs signed with RSA private keys (RS256). The corresponding public keys are exposed via the JWKS endpoint for server-side verification — no shared secrets, no symmetric keys.
Every auth event — signins, signups, failed attempts, admin actions, and configuration changes — is recorded with timestamps, IP addresses, and user-agent data. Logs are immutable and retained for 90 days.
The embed only responds to messages from domains you explicitly allowlist. Every postMessage contains an origin check. Cross-origin requests outside your configured domains are rejected.
Each organization's data is logically isolated with row-level tenant scoping on every query. Database credentials never leave the server environment. Infrastructure runs on SOC 2 Type II certified cloud providers.
Client secrets can be rotated at any time from the dashboard with zero downtime. Old secrets continue to work during a configurable grace period. API keys support independent rotation without affecting active sessions.
AuthFrame enforces strict CSP headers across all served pages. We recommend setting `frame-src` in your own CSP to scope iframe embeds to your AuthFrame subdomain only.
A checklist of the security controls enforced across all AuthFrame deployments.
Set this header on pages that embed the AuthFrame iframe to restrict framing to your AuthFrame origin only.
# HTTP response header Content-Security-Policy: frame-src https://embedauth.com https://cdn.embedauth.com; # Or as a <meta> tag <meta http-equiv="Content-Security-Policy" content="frame-src https://embedauth.com https://cdn.embedauth.com;">
Both hosts are required: the iframe URL points at embedauth.com, which redirects to the static CDN at cdn.embedauth.com. CSP enforces frame-src on every hop of the redirect chain. Self-hosters should substitute their own auth and CDN hostnames.
We take security vulnerabilities seriously. If you discover a potential security issue, please disclose it responsibly by emailing security@embedauth.com. Include a description of the vulnerability, steps to reproduce, and your contact details.
Start for free. Upgrade when you need more scale.