Skip to main content
@adcp/sdk 5.21+ は認証適合性のための CLI グレーダーを出荷します。それらは コンプライアンスストーリーボード とは別です — ストーリーボードはプロトコル動作をエンドツーエンドでテストし、これらのグレーダーは認証と署名の層を特にテストし、ベクターごとの診断と仮説ランク付けされた失敗分析を与えます。
下のすべてのコマンドは npx @adcp/sdk@latest を使います。@adcp/sdk をグローバルにインストール(npm install -g @adcp/sdk)している場合、npx @adcp/sdk@latest プレフィックスを落として adcp を直接使えます。

リクエスト署名グレーダー

RFC 9421 適合性をエージェントに対してエンドツーエンドで検証します。すべての署名ベクターを実行しベクターごとの結果をレポートするため、どの正準化ルールやヘッダーカバレッジチェックが失敗しているかを正確に追跡できます。
確認するもの:
  • 署名ベース正準化(method、target-uri、authority、content-type、content-digest)
  • カバードコンポーネントの完全性と順序
  • algkid フィールドの存在と有効性
  • タイムスタンプウィンドウ(±60 s)と nonce の一意性
  • リプレイ検出(エージェントがアドバタイズする場合)
  • 否定ベクター拒否 — 各不正な形式のリクエストは期待されるエラーコードを生成しなければならない(MUST)
いつ使うか: get_adcp_capabilities で任意の操作を required_for に切り替える前。当事者が署名検証失敗をレポートするとき。鍵アルゴリズムをアップグレードするとき(Ed25519 → P-256 またはその逆)。

OAuth ハンドシェイク診断

エージェントの OAuth ディスカバリードキュメント(RFC 9728 protected-resource メタデータ、RFC 8414 authorization-server メタデータ)をプローブし、authorization code + PKCE フローを実行し、結果の JWT をデコードし、何が間違っているかについて仮説をランク付けします。
<alias> 形式は ~/.adcp/config.json の保存されたエイリアス(npx @adcp/sdk@latest --save-auth <alias> <url> 経由で設定)を使います。 プローブするもの:
  • /.well-known/oauth-protected-resource — 存在、authorization_servers リスト、HTTPS 強制
  • /.well-known/oauth-authorization-server — issuer 一致、token_endpointcode_challenge_methods_supported
  • トークンエンドポイントレスポンス — トークンタイプ、有効期限、scope カバレッジ
  • JWT クレーム — isssubaudexpiat の存在と有効性
  • クロスオリジン authorization_servers issuer ピン留め(リソースメタデータの AS URL が帯域外設定に一致しない場合フラグ)
出力: ランク付けされた仮説リスト、例: 1. token_endpoint not reachable (connection refused) — likely cause2. issuer mismatch — AS URL returned by protected-resource does not match adagents.json。各仮説は該当する仕様セクションにリンクします。 いつ使うか: bearer トークン設定の後 AUTH_REQUIRED エラーが持続するとき。動的クライアント登録が予期しないレスポンスを返すとき。新しいセラーの OAuth セットアップが黙って失敗するとき。

鍵生成

エージェントの jwks_uri での公開用にフォーマットされた Ed25519 または P-256 キーペアを生成します。
出力:
  • 秘密鍵ファイル(PEM、エージェントの署名設定用)
  • "kid""use": "sig""key_ops": ["verify"]"adcp_use": "request-signing""alg": "EdDSA"(または P-256 の "ES256")を持つ、JWKS エンドポイントに貼り付け可能な JWK
いつ使うか: 初期署名セットアップ。鍵ローテーション(新しいものを生成、古いものと並べて公開、飛行中のリクエストをドレイン、古いものを退役)。

ベクター検証者

完全なグレーダーを実行せずに単一の署名ベクターを検証します。実装中に特定の正準化ケースをデバッグするのに有用。
stdin からベクター(/compliance/latest/test-vectors/request-signing/ のテストベクタースキーマに一致する JSON)を読み、クライアントの署名ベースが期待される出力に一致するかをレポートします。 いつ使うか: 署名クライアントを実装しながら、エンドツーエンドでテストする前に各コンポーネントルールを分離して確認するとき。

関連