mandate_required
HTTP 403 · Ludion-Error: mandate_required
何が起きたか
Section titled “何が起きたか”署名は検証できました。しかしこの経路は誰かの代理で行う行為(購入、アカウントの変更、予約)であり、Mandate を求めています。Mandate は、あなたが代理する人や法人(Principal)からの、署名付きで短命の委任です。このリクエストには、ここで使える Mandate が付いていませんでした。
Mandate が付いていても、次のどれかなら、付いていないのと同じに扱います。
- 別のサイトへの Mandate だった。カテゴリへの Mandate なら、このサイトがそのカテゴリに属していなかった。
- 期限が切れていた。
- Principal が取り消していた。
Ludion-Stapleが付いていなかった。Mandate が誰への委任かは、Staple が示す Diver と突き合わせて確かめます。
Mandate には、誰の代理か(サイトごとに異なる仮名で)、どこで、何をしてよいか(read、account、post、reserve、checkout、delete)、いくらまで、いつまでが書かれています。氏名、住所、連絡先は入りません。
サイトがこれを求める理由
Section titled “サイトがこれを求める理由”正規のエージェントでも、プロンプト注入で操られることがあります。Mandate があれば、サイトはその行為が Principal が本当に同意した範囲の内側にあるかを、実行の前に確かめられます。
- このサイトとこの行為を範囲に含む Mandate を、Principal に求めてください。Ludion Protocol v0 では、Principal がパスキーで同意し、Registry が Mandate を発行します。エージェントはそれを
Ludion-Mandateヘッダーに入れ、署名の対象に含めて送ります。 - Mandate には、いつも Staple を添えてください。
Ludion-Stapleも同じ署名の対象に含めます。 - 期限が切れたり取り消されたりした Mandate は、Principal に新しく同意してもらうまで使えません。
- Mandate の発行はまだ始まっていません。それまで、この経路は Mandate のないエージェントには閉じたままです。
3分で検証済みになる
Section titled “3分で検証済みになる”Ludion は Web Bot Auth を置き換えません。Web Bot Auth(RFC 9421)でリクエストに署名し、鍵ディレクトリを公開しているエージェントは、Ludion の Gate ではすでに VERIFIED(Depth 0)です。まだ署名していなければ、無料の Ludion CLI で次の手順を踏んでください。
3分は、この道の目標です。チェック DIV-1 として書いてあります。クリーンなコンテナで、init から VERIFIED まで180秒以内。
-
エージェントの身分(Diver)を作ります。Root 鍵はパスフレーズで封をされ、リクエストには署名しません。署名するのは短命の Session 鍵です。
Terminal window npx ludion init --name "My Agent" --contact mailto:you@example.com -
書き出された公開ファイルを、
Signature-Agentのオリジンに HTTPS で置きます。.well-known/http-message-signatures-directory(鍵。application/http-message-signatures-directory+jsonで返す)とcard(名乗り)です。自分のドメインで構いません。登録の受付が始まればdvr-….agents.ludion.aiにも置けます。 -
リクエストごとに署名します。次のコマンドは
Signature-Agent、Signature-Input、Signatureを付けたcurlをそのまま出力します。署名の寿命は 60 秒なので(仕様 §10.4)、毎回作り直してください。Terminal window npx ludion sign GET https://shop.example/checkout --curl -
自己診断します。
doctorは公開した鍵ディレクトリと Card を取りに行き、Gate が見るものを確かめます。リダイレクトなしの 200、Content-Type、ディレクトリに今の鍵があること、です。Terminal window npx ludion doctor
これで Gate はあなたのリクエストを VERIFIED と判定します。サイトがそれ以上に求めるもの(Depth、Ballast、Mandate)はその上に積むもので、それぞれ Gate のエラー に説明のページがあります。