Transport Authorizationは接続・Token・Scopeを守るがDomain Permissionの代わりではない
Transport Authorizationは、外部protocolを通じてApplicationへ到達してよいかを制御する認可である。HTTPならbearer token、audience、OAuth scope、gateway policyなど、MCPならそのHTTP-based authorization flowが該当する。
MCP 2026-07-28仕様はauthorizationを明確に transport level の機能として説明している。HTTP transportではOAuth 2.1系の仕組みを使い、MCP serverをresource serverとして扱う。WWW-Authenticate にoperationに必要なscopeを示し、insufficient scopeでは403とstep-up authorizationを行える。一方stdio transportではこのHTTP authorization specificationを使わず、credentialをenvironmentから得ることを推奨している。
この差は、Transport AuthorizationとDomain Authorizationを分ける理由になる。例えばMCP tokenが documents:write scopeを持っていても、そのPrincipalが document:123 を編集できるとは限らない。scopeは「この種類のOperationへ到達可能」という粗いcapability、Domain Permissionは「この具体Resourceに対して実行可能」という判定として二段にできる。
Transport auth: token / audience / scope
↓
Domain auth: Principal × Action × Resource × Context
ただし常に二回authorizerを呼ぶ必要があるわけではない。単純なservice-to-service APIではscopeだけで十分な場合もあるし、逆にTransport scopeを極端に細粒度化するとDomain permission modelをOAuthへ重複実装することになる。
Domain AuthorizationはOperationが具体Resourceへ作用してよいかを判定する と PARCは認可問い合わせをPrincipal / Action / Resource / Contextへ分解する が内側の判定を扱う。