{
  "schema": "varexis-index-free-publication-preview/1",
  "catalogue_version": "pub-9-tranche-59-v1",
  "route_id": "agentic_reviewed_dpop_authorization_code_key_binding",
  "record_id": "VXI-EXT-PROCUREMENT-DPOP-AUTHORIZATION-CODE-KEY-BINDING-01-v1",
  "question": "What establishes that a DPoP token exchange used the proof key bound to its authorization code?",
  "answer": "RFC 9449 defines optional dpop_jkt to bind an authorization request and its code to a proof-key thumbprint. At token exchange the authorization server must reject a proof whose key does not match that original value. The parameter can be combined with PKCE; similar injection protection requires a unique DPoP key per authorization request and is not a universal PKCE replacement.",
  "records": [
    {
      "record_id": "VXI-EXT-PROCUREMENT-DPOP-AUTHORIZATION-CODE-KEY-BINDING-01-v1",
      "url": "/varexis-index/records/dpop-authorization-code-key-binding.json",
      "content_sha256": "04ca7c62b8116fa8d2ef053a4ce72fb375fbe1fd7a41c4b21588cf2bc8b160c7",
      "evidence": {
        "schema": "varexis-public-evidence-record/0.3",
        "generated_at_utc": "2026-10-25T20:55:19.974986+00:00",
        "record_id": "VXI-EXT-PROCUREMENT-DPOP-AUTHORIZATION-CODE-KEY-BINDING-01-v1",
        "record_kind": "external_reference",
        "title": "DPoP authorization-code proof-key binding",
        "system": "IETF RFC 9449",
        "evidence_family": "vendor_evidence_review",
        "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
        "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
        "canonical_question": "What establishes that a DPoP token exchange used the proof key bound to its authorization code?",
        "near_questions": [
          "What does dpop_jkt bind during OAuth authorization?",
          "Must token exchange reject a different DPoP proof key?",
          "Can dpop_jkt be used with PKCE?",
          "Does reusing one DPoP key provide every code-injection protection?"
        ],
        "supported_claims": [
          {
            "claim": "RFC 9449 defines optional dpop_jkt to bind an authorization request and its code to a proof-key thumbprint. At token exchange the authorization server must reject a proof whose key does not match that original value. The parameter can be combined with PKCE; similar injection protection requires a unique DPoP key per authorization request and is not a universal PKCE replacement.",
            "reliance": "DOCUMENTED_CAPABILITY_ONLY"
          }
        ],
        "not_demonstrated_claims": [
          "The proof-key thumbprint must match the original request binding; use is optional and is not a blanket replacement for PKCE.",
          "Buyer implementation, live runtime enforcement, settled payment, physical outcome, certification or permission to act are not established.",
          "No expanded capabilities or licences for existing INDEX executables."
        ],
        "public_summary": "RFC 9449 defines optional dpop_jkt to bind an authorization request and its code to a proof-key thumbprint. At token exchange the authorization server must reject a proof whose key does not match that original value. The parameter can be combined with PKCE; similar injection protection requires a unique DPoP key per authorization request and is not a universal PKCE replacement.",
        "related_record_ids": [],
        "source_review": {
          "source_type": "official_external_documentation",
          "source_title": "IETF RFC 9449",
          "source_url": "https://www.rfc-editor.org/rfc/rfc9449.txt",
          "checked_on": "2026-10-25",
          "candidate_record_id": "VXI-EXT-PROCUREMENT-DPOP-AUTHORIZATION-CODE-KEY-BINDING-01-v1",
          "candidate_record_sha256": "221234e1df74622a1b6ef8f5f5bfdbd911edf3768823b29a023446e04feddefd",
          "method": "Primary documentation reviewed for the published bounded statement.",
          "deployment_tested_by_varexis": false,
          "revalidation": "The delivered snapshot preserves the review date shown. Recheck current primary documentation and deployment context before relying on present applicability; payment does not trigger fresh research."
        },
        "answer_policy": {
          "classification": "DOCUMENTED_WITH_DEPLOYMENT_BOUNDARY",
          "bounded_answer": "RFC 9449 defines optional dpop_jkt to bind an authorization request and its code to a proof-key thumbprint. At token exchange the authorization server must reject a proof whose key does not match that original value. The parameter can be combined with PKCE; similar injection protection requires a unique DPoP key per authorization request and is not a universal PKCE replacement.",
          "required_buyer_context": "Original dpop_jkt; Token-request proof public key; PKCE and key-per-request policy. Buyer deployment not inspected.",
          "missing_evidence": "A broader claim needs evidence matching the intended use. Payment does not upgrade the evidence state."
        },
        "private_boundary": "Raw logs, thresholds, private paths, source code, protected mechanisms and reconstruction-level details are excluded from public and paid delivery.",
        "decision_profile": {
          "schema": "varexis-vendor-evidence-review/1",
          "review_status": "documentation_review_only",
          "checked_on": "2026-10-25",
          "claim_to_check": "What establishes that a DPoP token exchange used the proof key bound to its authorization code?",
          "documented_statement": {
            "status": "documented",
            "statement": "RFC 9449 defines optional dpop_jkt to bind an authorization request and its code to a proof-key thumbprint. At token exchange the authorization server must reject a proof whose key does not match that original value. The parameter can be combined with PKCE; similar injection protection requires a unique DPoP key per authorization request and is not a universal PKCE replacement.",
            "source_ids": [
              "rfc9449"
            ]
          },
          "review_inference": {
            "status": "review_inference",
            "statement": "Check the optional dpop_jkt authorization-code binding at token exchange. This is a documentation-review judgment, not an observed deployment outcome.",
            "source_ids": [
              "rfc9449"
            ]
          },
          "buyer_evidence_required": [
            "Original dpop_jkt",
            "Token-request proof public key",
            "PKCE and key-per-request policy"
          ],
          "review_condition": {
            "status": "varexis_review_policy",
            "statement": "Refuse buyer-specific assurance from documentation alone. The proof-key thumbprint must match the original request binding; use is optional and is not a blanket replacement for PKCE."
          },
          "unknowns": "The buyer implementation, effective configuration, complete evidence inventory and actual business outcome were not inspected.",
          "unknown_finding": {
            "status": "unknown",
            "statement": "The buyer implementation, effective configuration, complete evidence inventory and actual business outcome were not inspected."
          },
          "evidence_sources": [
            {
              "source_id": "rfc9449",
              "url": "https://www.rfc-editor.org/rfc/rfc9449.txt",
              "final_url": "https://www.rfc-editor.org/rfc/rfc9449.txt",
              "status": 200,
              "captured_at_utc": "2026-10-25T20:26:12.745Z",
              "sha256": "3842c58e1f6043389416023b9bb8d765048266024982fbbd90640e05943f4e13",
              "bytes": 92478,
              "title": "IETF RFC 9449",
              "hash_basis": "SHA-256 of unmodified HTTP response body bytes",
              "rights_review": "Original factual paraphrase of the cited IETF RFC; IETF Trust and contributor rights remain applicable. No RFC text, code component or modified standard is redistributed.",
              "checked_on": "2026-10-25",
              "capture_status": 200,
              "claim_review_completed": true,
              "reviewed_sections": [
                "11.11",
                "4.3",
                "11.7",
                "5",
                "8",
                "9",
                "11.1",
                "10",
                "7.2"
              ],
              "version_context": "Fixed IETF RFC 9449 publication; later applicable updates and actual implementation conformance require separate review."
            }
          ],
          "observed_deployment": false,
          "commercial_reliance_boundary": "Documentation review only; the buyer must establish applicability and actual outcomes. INDEX does not inspect or control the deployment.",
          "paid_value": {
            "decision_context": "Check the optional dpop_jkt authorization-code binding at token exchange.",
            "free": "Complete review, practical questions, sources and limitations; may be saved locally.",
            "single_request": "Existing server-saved version-bound route snapshot for later authenticated retrieval.",
            "evidence_receipt": "The same snapshot plus the existing unsigned delivery receipt.",
            "excluded": [
              "Fresh vendor research",
              "Continuous monitoring or change alerts",
              "Testing the buyer configuration",
              "Private evidence or vendor certification"
            ],
            "integrity": "Hashes identify content versions; they do not prove truth or provide a signature."
          },
          "revalidation": {
            "trigger": "A saved purchase does not recheck the source or buyer configuration.",
            "specific_watch": "Recheck 10 in IETF RFC 9449 when the source, applicable version, configuration or intended reliance changes. A detected change creates a review candidate, not automatic approval."
          },
          "buyer_relevance": "Check the optional dpop_jkt authorization-code binding at token exchange.",
          "refusal_conditions": [
            "Refuse buyer-specific assurance from documentation alone. The proof-key thumbprint must match the original request binding; use is optional and is not a blanket replacement for PKCE."
          ]
        },
        "niche": {
          "niche_id": "agent-authority-action-evidence",
          "label": "Agent Authority & Action Evidence",
          "classification_id": "governance",
          "classification_label": "Agent Governance & Policy Boundaries",
          "topic_id": "governance",
          "buyer_intent": "Check the optional dpop_jkt authorization-code binding at token exchange.",
          "comparison_role": "supplementary_discovery"
        },
        "paid_access_note": "The full published answer and boundaries are free. Paid access saves the selected route and source versions, with an unsigned receipt when purchased. Preview coverage before paying. Fresh research, bespoke assessment and protected evidence are excluded.",
        "service_route": {
          "request_guide": "/varexis-index/request.html",
          "request_workflow": "/varexis-index/request-workflow.json",
          "service_id": "single_request",
          "service_routes_url": "/varexis-index/service-routes.json",
          "payment_required": true,
          "availability_endpoint": "/api/index/capabilities",
          "operational_status": "AUTOMATIC_SERVICE_CAPABILITIES_GATED",
          "checkout_url": "/index-access"
        },
        "authority_boundary": "VAREXIS-INDEX informs evidence reliance. It does not provide advice, certification, deployment authority, security assurance, production approval, or guarantee.",
        "human_page": "/varexis-index/catalog.html#dpop-authorization-code-key-binding",
        "machine_readable_record": "/varexis-index/records/dpop-authorization-code-key-binding.json"
      }
    }
  ],
  "access": {
    "mode": "exact_http_only",
    "payment_required": false,
    "purchase_url": null,
    "mcp_preview_available": false,
    "paid_saved_retrieval_available": false,
    "natural_language_search_qualified": false
  },
  "boundary": "Catalogue additions are available free through the exact HTTP JSON links below. Enhanced natural-language discovery is not yet qualified for these records. They are outside MCP search, MCP preview and paid saved retrieval. No search qualification, executable capability or entitlement is added.",
  "content_sha256": "1e4aa7b141eba9145621c80c69dade57ba57266fb55a376bb72637aadaf6cca5"
}
