Everyone demands efficiency, but without security how useful is it really?
OpenClaw is a viral, open-source framework for autonomous AI agents that runs locally and executes real-world tasks such as file management and web browsing. But as great as it sounds, OpenClaw has its vulnerabilities. Which is why we built ShieldClaw, a secure and interpretable upgrade on OpenClaw using Auth0 AI Security/Authentication and Backboard.io's API.
What it does
ShieldClaw is the result of weaving Auth0's security and authentication measures through every step of OpenClaw's workflow, combined with Backboard.io's persistent memory and threaded execution to create a fully secured, context-aware, and traceable AI agent.
Backboard acts as the intelligence and observability layer for the system. Every request is routed through Backboard where threads maintain execution context, persistent memory stores long-term user information, and security decisions are logged to create a transparent audit trail of agent behaviour.
How we built it
Auth0 JWKS (JSON Web Key Sets)
ShieldClaw fetches Auth0's public JWKS endpoint to validate every incoming
token against Auth0's actual signing keys before any business logic runs.
A forged or tampered token from any third party is rejected on arrival
regardless of how well-formed it looks.
Auth0 JWT Verification
Every request proxied through ShieldClaw has its token fully verified
inline, checking signature, expiry, issuer, and audience before it touches
any routing or agent logic. Security context values like risk_level and
trust_tier are embedded directly into the signed token, so ShieldBot
always reads verified, tamper-proof data about who is making the request.
Auth0 Token Endpoint (Client Credentials)
ShieldBot authenticates as its own non-human identity using Auth0's Client
Credentials flow, receiving a scoped access token that proves who it is to
every downstream service. This keeps ShieldBot's identity completely
separate from the human user it acts on behalf of, so every action it
takes is cryptographically attributable to the agent, not the person.
Auth0 Token Vault
Instead of storing third-party API keys in environment files, ShieldClaw
uses Auth0's Token Vault to keep all external credentials locked on Auth0's
side. At runtime, ShieldBot requests a short-lived token for the specific
service it needs, meaning the raw secret is never exposed to the agent, and
a compromised session can never walk away with permanent credentials.
Auth0 FGA (Fine-Grained Authorization)
Every resource in ShieldClaw is modeled as relationship tuples in OpenFGA,
and every query to Backboard is gated by an FGA check before any data is
returned to the agent. The authorization model explicitly blocks ShieldClaw
from editing its own source code or logic, deleting anything that has not
been specifically selected by the user, and making purchases or API calls
that have not been explicitly instructed, making these restrictions
structural rather than just rule-based. Even if ShieldBot is manipulated
through a prompt injection attack, it is physically incapable of taking
those actions because the permissions simply do not exist in the model.
Auth0 Agent Identity
Every agent in ShieldClaw is registered with its own unique non-human
identity, meaning every action it takes is logged and attributable to the
agent specifically rather than being mixed in with human user activity.
This creates a clean audit trail that makes it immediately obvious when an
agent has done something it should not have, and allows any individual
agent to be instantly revoked without touching the human account or any
other part of the system.
Backboard Threaded Execution
Every user interaction first creates a Backboard thread that acts as the
execution context for the request. This allows the system to maintain
conversation state, track tool calls, and run structured AI workflows
instead of stateless prompt responses.
Backboard Persistent Memory
Backboard automatically extracts and stores relevant information from
interactions, allowing ShieldClaw to remember user preferences, retrieve
past context, and reason consistently across conversations and multi-step
workflows.
Backboard Security Evaluation & Audit Trail
All agent actions are evaluated and logged through Backboard. Security
decisions, risk scores, and agent actions are stored as memory records,
creating a transparent audit trail that can be visualized through the
Backboard dashboard.
Challenges we ran into
Getting Auth0 FGA to sit correctly between the agent and Backboard so that permission checks happened before any data was ever retrieved took a lot of iteration. We also had to figure out how to cleanly separate agent identity from human identity in a way that held up across every part of the request pipeline.
Accomplishments that we're proud of
We built a system where even if an AI agent gets manipulated or hijacked, it is physically blocked from doing anything destructive because the permissions do not exist at the authorization layer. Getting prompt injection to be a non-issue by design rather than by filtering felt like a genuinely meaningful security win.
By integrating Backboard as the system’s intelligence and observability layer, we also made every agent action traceable, context-aware, and auditable, allowing us to visualize threads, memory usage, and security decisions in real time through the Backboard dashboard.
What we learned
We learned that the right way to secure an AI agent is not to monitor what it does after the fact, but to make dangerous actions structurally impossible before they can even be attempted. Auth0's tooling made it possible to treat authorization as infrastructure rather than application logic, which completely changed how we thought about the problem.
Working with Backboard also showed us how powerful stateful AI systems can be. By introducing threaded execution, persistent memory, and observable workflows, we were able to build an agent that is not only secure but also transparent and accountable in how it reasons and acts.
What's next for ShieldClaw
Auth0 CIBA (Client-Initiated Backchannel Authentication)
The next step is implementing Auth0's CIBA flow so that any high-stakes
action like deletions or purchases triggers a push notification to the user
requesting explicit confirmation before anything happens. The request
expires in 120 seconds, meaning if the user does not respond, the action is
automatically aborted.
Built With
- auth0
- backboard
- javascript
- json
- python
- yaml
Log in or sign up for Devpost to join the conversation.