コンテンツにスキップ

mandate_scope

HTTP 403 · Ludion-Error: mandate_scope

署名は検証でき、Mandate も付いていました。しかしその Mandate は、この経路で行う行為を含んでいません。経路はある範囲(たとえば checkout)を求めており、あなたの Mandate の scope の一覧にそれがありませんでした。

支払いでは、Mandate の上限を超えたときにもこう答えます。上限は、支払いごとの金額(checkout_max)、通貨(currency)、日ごとの回数(per_day)です。金額はサイトが自分のカートから数え、Gate は Mandate の上限と突き合わせます。

Mandate が役に立つのは、その範囲が守られるときだけです。閲覧を許されたエージェントは支払いを許されておらず、予約を許されたエージェントはアカウントの解約を許されていません。サイトは Principal 自身が引いた線を守ります。

  • この行為を範囲に含む Mandate を、Principal に求めてください。範囲は read、account、post、reserve、checkout、delete です。
  • 上限を超える支払いが要るなら、その上限を含む新しい Mandate を Principal に求めてください。支払いを分けて上限をくぐらないでください。日ごとの回数も数えています。
  • Mandate を自分で広げないでください。Mandate は署名されており、どんな変更も署名を壊します。

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 のエラー に説明のページがあります。