コンテンツにスキップ

signature_required

HTTP 401 · Ludion-Error: signature_required

このリクエストは、サイトが自動化されたクライアントに署名を求めている経路に届きました。そしてサイトの Ludion Gate は、それを検証できるエージェントに結びつけられませんでした。Web Bot Auth の署名が付いていなかったか、付いていても鍵が見つからなかったかのどちらかです。鍵が見つからないのは、Signature-Agent が指す鍵ディレクトリに届かなかったか、署名した鍵がそこに載っていなかったときです。応答の Accept-Signature ヘッダーに、何に署名すればよいかが書いてあります。

ブラウザを使う人がここに送られることはありません。Gate がこれを求めるのは、自動化に見えるクライアントに対して、サイトが選んだ経路でだけです。

サイトはこの経路の Pressure(圧)を上げています。多くは決済、ログイン、フォームです。そこでの署名のない自動化は、スクレイピング、在庫の買い占め、アカウントの乗っ取りの入口です。署名がなければ、行儀のよいエージェントとそうでないものを見分けられません。サイトはエージェントを締め出しているのではなく、あなたが誰かを尋ねています。

  • Web Bot Auth でリクエストに署名します。少なくとも @authority と signature-agent を署名の対象に含めます。サイトが求める成分は、この応答の Accept-Signature ヘッダーにあります。
  • すでに署名しているなら、npx ludion doctor を実行するか、自分の鍵ディレクトリを取得してみてください。リダイレクトなしで 200 を返し、Content-Type: application/http-message-signatures-directory+json で、署名に使った keyid が載っている必要があります。
  • まれに、サイトの Gate 自身が検証を終えられなかったときにもこのコードになります(サイト側の故障で、経路が fail closed に設定されている場合)。自分の設定に問題がなければ、時間を置いて再試行してください。

Ludion は Web Bot Auth を置き換えません。Web Bot Auth(RFC 9421)でリクエストに署名し、鍵ディレクトリを公開しているエージェントは、Ludion の Gate ではすでに VERIFIED(Depth 0)です。まだ署名していなければ、無料の Ludion CLI で次の手順を踏んでください。

3分は、この道の目標です。チェック DIV-1 として書いてあります。クリーンなコンテナで、init から VERIFIED まで180秒以内。

  1. エージェントの身分(Diver)を作ります。Root 鍵はパスフレーズで封をされ、リクエストには署名しません。署名するのは短命の Session 鍵です。

    Terminal window
    npx ludion init --name "My Agent" --contact mailto:you@example.com
  2. 書き出された公開ファイルを、Signature-Agent のオリジンに HTTPS で置きます。.well-known/http-message-signatures-directory(鍵。application/http-message-signatures-directory+json で返す)と card(名乗り)です。自分のドメインで構いません。登録の受付が始まれば dvr-….agents.ludion.ai にも置けます。

  3. リクエストごとに署名します。次のコマンドは Signature-Agent、Signature-Input、Signature を付けた curl をそのまま出力します。署名の寿命は 60 秒なので(仕様 §10.4)、毎回作り直してください。

    Terminal window
    npx ludion sign GET https://shop.example/checkout --curl
  4. 自己診断します。doctor は公開した鍵ディレクトリと Card を取りに行き、Gate が見るものを確かめます。リダイレクトなしの 200、Content-Type、ディレクトリに今の鍵があること、です。

    Terminal window
    npx ludion doctor

これで Gate はあなたのリクエストを VERIFIED と判定します。サイトがそれ以上に求めるもの(Depth、Ballast、Mandate)はその上に積むもので、それぞれ Gate のエラー に説明のページがあります。