Claws Out: Securing and Building with OpenClaw - Nick Taylor, Pomerium
This talk details how the speaker contributed a "trusted-proxy auth mode" to the OpenClaw project to enhance security and user experience by eliminating the need for tokens and device pairing. It explains the technical implementation of this mode using Identity-Aware Proxies like Pomerium. The speaker also demonstrates a unique workflow, building and live-editing a Multi-Modal Chatbot Protocol (MCP) application directly within ChatGPT, controlled by their OpenClaw instance via Discord, showcasing the power of secure, natural language-driven web development.
Nick Taylor, a Developer Advocate at Pomerium, shares his journey of contributing the “trusted-proxy auth mode” to the OpenClaw project, driven by his role in securing applications. He highlights how this feature improves both security and developer experience by leveraging Identity-Aware Proxies (IAP), such as Pomerium.
The Problem with Previous OpenClaw Security
Prior to Nick’s contribution, securing OpenClaw, even with an external proxy, still required users to manually enter an authentication token for WebSocket connections. This token was often exposed in the query string, posing a security risk, and users frequently had to pair devices, which was cumbersome. As someone focused on security, Nick found these steps annoying and unnecessary when using an IAP.
Introducing Trusted Proxy Auth Mode
Nick proposed an issue to address this, and with community support, he developed and contributed the trusted-proxy auth mode. This feature allows OpenClaw to rely on an upstream trusted proxy to handle authentication and authorization, eliminating the need for explicit tokens and device pairing within the OpenClaw UI.
Configuration Details
The trusted-proxy auth mode requires specific configurations:
- The
modeis set totrusted-proxy. - A
trusted_proxiessection lists the IP addresses of the proxy gating access to the OpenClaw control plane (gateway). - A
trusted_proxysection defines theuser_header(e.g., a JWT for Pomerium) andrequired_headerthat the proxy will pass to OpenClaw. Options forallowed_usersare available but can be omitted if the IAP manages policies.
This configuration can be done during onboarding or through OpenClaw’s TUI. The primary benefits are enhanced security posture and a significantly improved user experience.
OpenClaw Community and Growth
Nick’s contribution marked his first to the OpenClaw project. He noted the project’s rapid growth, with issue numbers skyrocketing, indicating its popularity but also requiring frequent rebasing for contributors. He also acknowledged the community’s role in identifying and fixing bugs, such as a missed issue with device pairing that was swiftly resolved by Anthony and Sid.
“McClaw” and “Claw Space”: Personal Use Cases
Nick uses his personal OpenClaw instance, affectionately named “McClaw,” primarily through Discord for interactions (after moving from Telegram due to unencrypted channels). He even used OpenClaw itself to make the trusted-proxy auth mode contribution. This led him to build “Claw Space,” a browser-based file explorer and editor for his OpenClaw workspace, enabling him to view and edit files without needing to SSH in.
Live Demo: Building an MCP App with OpenClaw and ChatGPT
Nick demonstrated live coding an application based on the Multi-Modal Chatbot Protocol (MCP) using his OpenClaw instance. The demo involved:
- Setting up an MCP server: A templated MCP server with a UI was registered as an application within ChatGPT. Access was secured via Pomerium, providing a public URL.
- Live Editing the “Echo” Tool: Nick used OpenClaw from Discord to command live changes to an “echo” widget’s message (e.g., to “AIEU”) directly within ChatGPT. This showcased the power of hot module reloading (Vite and React) and immediate feedback in the chatbot interface.
- Enhancing the “Search Speakers” Tool: He evolved a basic “search speakers” tool by:
- Populating it with speaker data from a JSON file.
- Adding UI elements for filtering speakers.
- Integrating a “More” button that, when clicked, would make an LLM call (via the MCP
send_messagefunction) to ChatGPT, asking it to summarize a speaker’s talk. This demonstrated a dynamic, AI-powered interaction directly from the custom UI.
This workflow highlights how trusted proxies enable secure exposure of local development environments, facilitating rapid web development and integration with services like ChatGPT, controlled via natural language interfaces like Discord.
Conclusion
Nick concluded by emphasizing the fun and utility of building with OpenClaw in a personalized manner. He stressed the importance of security when exposing local services, advocating for trusted proxies like Pomerium or Caddy with OAuth. He reiterated that the trusted-proxy auth mode is highly beneficial for a secure, efficient, and enjoyable developer experience, encouraging others to explore and build with OpenClaw responsibly.