Cryptographically sign browser requests with Web Bot Auth
Web Bot Auth is quickly becoming the standard way for agents to establish identity. That’s why we’ve partnered with Vercel and Cloudflare to support Web Bot Auth on Kernel.You can now cryptographically sign browser requests, so your agents can prove who they are to services like Vercel.
Web Bot Auth works via a Chrome extension that intercepts all outgoing HTTP requests and adds cryptographic signature headers:
Signature: The RFC 9421 signature of the request
Signature-Input: Metadata about how the signature was created
Signature-Agent: URL that points to your key directory
Platforms like Vercel or other hosting providers can verify these signatures against your public key, confirming that the request came from your authenticated agent.
# Create a browser with the web-bot-auth extensionkernel browsers create --extension my-web-bot-auth# The command outputs the browser ID and live view URL# Open the live view URL in your browser, then navigate to:# https://http-message-signatures-example.research.cloudflare.com/
import { Kernel } from "@onkernel/sdk";import { chromium } from "playwright";const kernel = new Kernel();// Create browser with web-bot-auth extensionconst browser = await kernel.browsers.create({ extensions: [{ name: "my-web-bot-auth" }],});// Connect via Playwrightconst pw = await chromium.connectOverCDP(browser.browser_url);const context = pw.contexts()[0];const page = context?.pages()[0] || await context.newPage();// Navigate to a page - requests will be automatically signedawait page.goto("https://http-message-signatures-example.research.cloudflare.com/");
from kernel import Kernelfrom playwright.sync_api import sync_playwrightkernel = Kernel()# Create browser with web-bot-auth extensionbrowser = kernel.browsers.create(extensions=[{"name": "my-web-bot-auth"}])# Connect via Playwrightwith sync_playwright() as p: pw = p.chromium.connect_over_cdp(browser.browser_url) context = pw.contexts[0] page = context.pages[0] if context.pages else context.new_page() # Navigate to a page - requests will be automatically signed page.goto("https://http-message-signatures-example.research.cloudflare.com/")
Navigate to the test site to verify your signatures are being accepted:This site validates requests signed with the RFC9421 test key and shows whether the signature was verified successfully.
Kernel’s own Web Bot Auth identities are already approved by Cloudflare, Vercel,
Akamai, and other bot-verification providers. If you want to sign requests with
one of Kernel’s identities rather than your own, contact Kernel support.
See Bots and agents for the list of identities and their key
directories.
5. Register with Vercel and other Web Bot Auth-aware directories (optional)
If you want Vercel-protected sites to recognize your agent, you can register your key directory with Vercel. Kernel is officially listed in the Vercel directory.