用途:IAG 是独立服务,只保护一个下游——一个 A2A 智能体或一个 MCP 服务器,每个受保护下游各运行一个 IAG。对调用方它表现为 Target,对下游它表现为 Source。它不是通用反向代理:默认 protocol: a2a 时使用 A2A 协议并跟踪会话;protocol: mcp 时转发 MCP Streamable HTTP 流量(转发 Mcp-Session-Id 与 SSE 响应),仅转发 MCP 协议修订 2025-06-18、2025-11-25、2026-07-28。
主要能力:每个请求校验三项——调用者(在 IdP 做令牌内省)、工作流(经 AuthZEN/KBAC 做 subject CAN_TRIGGER 检查)、委托链(请求的 act 链与 IKG 中建模的链匹配)。携带 act 链的委托令牌由 IdP(RFC 8693 令牌交换)或可选 token_service 段配置的自托管 IndyKite Token Service(ITS)签发。使用 ITS 时,调用者自身访问令牌原样放在 Authorization,委托令牌放在 X-IK-Token;带 X-IK-Token 的请求是后续跳,其链会嵌套进下一个令牌,从而支持多跳工作流。
使用方式:需先在 IKG 建模 Workflow 与 Agent 节点及带 workflow_name 的 INVOKES 关系,建立 (:User)-[:CAN_TRIGGER]->(:Workflow) 边,构建返回 (workflow, agent_list) 的 ContX IQ 查询。配置可用 YAML(--config=/app/config.yaml)或 JARVIS_ 前缀环境变量,段包括 service、identity_provider、token_service(可选)、protected_agent、authzen、contx_iq、audit。用 protected_agent.protocol 选择下游协议。部署可用 Docker Compose 或 Kubernetes(独立 Pod 或 sidecar)。网关在 service.healthcheck_port(默认 9080)提供 /healthz、/readyz、/startupz。ITS 用 indykite/token-service 部署,需 https 的 service.base_url,并需在平台创建 Token Introspect 配置以信任其签发的令牌。
适用场景:A2A 工作流策略执行、MCP 服务器前置执行点、可追踪的用户到智能体委托与多跳链、Token Service 配置、IKG 工作流建模、审计记录解读、复现 iag-mcp-demo 或 iag-token-exchange 参考应用。
限制:不适用于通用 HTTP 反向代理或服务网格;不处理与智能体门控无关的 IndyKite 功能;不用于调试受保护智能体本身。MCP 模式拒绝 JSON-RPC 批次、编码体与超过 4 MiB 的请求体,且下游须支持三种修订之一。缺少 IndyKite 项目、OAuth2 IdP、每下游客户端凭据、ContX IQ 查询等前置条件时无法运行。具体字段默认值、命令与完整示例资料未全部提供。