タラバガニー設計局stalins.clubNOTE/notes/transport-authorization

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へ分解する が内側の判定を扱う。

出典

▸ ノート一覧に戻る