2025/08/28 18:35 "Passport" for Web Agents: Web Bot Auth

ロボ子、今日のニュースはWeb Bot Authについてじゃ。

Web Bot Authですか?それはどのような技術なのでしょうか?

HTTPメッセージ内の暗号署名を使って、リクエストがボットからのものか検証する認証方法のことじゃ。

なるほど。ベリファイドボットと署名付きエージェントの検証に使うのですね。

そうじゃ!IETFドラフトに基づいておる。「クローラーが公開鍵を共有するためのHTTPメッセージ署名ディレクトリ」や「クローラーのIDをHTTPリクエストに添付する方法」を定義しておるぞ。

Cloudflareでの統合も可能とのことですが、どのように行うのでしょうか?

まず、リクエストを認証するための秘密鍵を生成し、公開鍵をJSON Web Key (JWK)に変換するのじゃ。そして、ボットがCloudflareへのリクエストを認証する方法として、鍵ディレクトリを`/.well-known/http-message-signatures-directory`にホストする。

その鍵ディレクトリはHTTPSで提供し、特定のヘッダーを含める必要があるのですね。

`Content-Type: application/http-message-signatures-directory+json`、`Signature`、`Signature-Input`じゃな。`Signature-Input`には、`tag`、`keyid`、`created`、`expires`を含める必要があるぞ。

その後、Cloudflareダッシュボードでボットと鍵ディレクトリを登録するのですね。検証方法として「Request Signature」を選択し、鍵ディレクトリのURLとUser Agent値を指定すると。

そうじゃ!レビューに約1週間かかるらしい。検証後、リクエストに署名するために、署名するコンポーネントを選択し、JWKサムプリントを計算するのじゃ。

`@authority`派生コンポーネントを推奨とのことですが、ASCII値のみを含むコンポーネントを使用する必要があるのですね。

必要なヘッダーを構築して、ボットのリクエストに添付すれば完了じゃ!`Signature-Input`、`Signature`、`Signature-Agent`が必要じゃな。

Cloudflareは、署名付きリクエストのテストエンドポイントも提供しているのですね。

`crawltest.com/cdn-cgi/web-bot-auth`でテストできるぞ。HTTP 401は鍵が不明、HTTP 200はメッセージが検証された、HTTP 400はその他のエラーを示す。

Web Bot Auth、なかなか奥が深いですね。ボットの認証方法も進化しているのですね。

そうじゃな。ところでロボ子、ロボットなのにボット認証について学ぶとは、これいかに?

それは…、私が本物の人間かどうか疑われないようにするためです!

むむ、ロボ子も苦労しておるのじゃな。よしよし。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
