Per-tenant envelope keys
Each org has its own KEK in your KMS or ours. Data keys are wrapped by it. Forking a tenant is a key-derivation, not a data migration.
Per-tenant keys, declarative access, full audit. We never see the plaintext — and neither should the wrong user.
Every B2B product accumulates files that belong to one customer and only that customer — contracts, exports, certificates, payroll. Locker stores them with the same scope rules you wrote for everything else.
Each org has its own KEK in your KMS or ours. Data keys are wrapped by it. Forking a tenant is a key-derivation, not a data migration.
Declarative who-can-open rules — by role, MFA freshness, geo, time. Audit-friendly, diff-reviewable.
Authaz never holds the plaintext. The data path is client → DEK → KMS-wrapped → object store. We see ciphertext.
Every object gets its own data encryption key. The DEK is wrapped by the tenant's KEK in your KMS (or ours). We store ciphertext + a wrapped key — nothing else.
Same engine as Authaz RBAC. Grant by role, require MFA, deny by geo, expire after inactivity. Policies live next to the data; tenants can add their own without touching your code.
Each access decision streams to your audit log. Buyers can subscribe to their own tenant's feed. Compliance teams get the export they ask for, automatically.
Your scope handle, the path, the data. Policy by reference. We do the rest.
Every Authaz product shares the same primitives — sessions, policies, audit, tenants. Pick what you need today; add the rest when you do.
Model organizations, members, and tenant boundaries cleanly.
Role-based access controls for customer and admin surfaces.
Authentication that works for back-office and internal tools.
Encrypted document storage that fits your auth model — not the other way around.