メインコンテンツまでスキップ

リモート認証の設計

remote-hosted modeでは、MCP serverを複数userで共有できるようAPI key認証を入口に置きます。設定手順はリモートServerのAPI Key認証へ集約し、このページでは設計上の境界だけを扱います。

認証責務

MCP serverはAPI key databaseを持たず、外部validation endpointへ検証を委譲します。

POST <validation-url>
Content-Type: application/json

{
"api_key": "<key>"
}

valid responseは安定したuser_idを返します。

{
"valid": true,
"user_id": "user-abc-123"
}

user_idはremote session isolationのkeyとして使います。

認証する経路

remote-hosted modeでは少なくとも次の入口で同じidentity contractを使います。

  • MCP HTTP /mcp
  • Unity plugin WebSocket /hub/plugin

MCP clientとUnity pluginが同じAPI keyから同じuser_idへ解決されることで、自分のUnity instanceだけを参照できます。

fail closed

validation serviceへ到達できない、keyが無い、keyがinvalidな場合は認証成功として扱いません。remote serviceで「認証serviceが落ちたから全員通す」というfallbackは行いません。

session isolation

remote-hostedではuser Aのinstanceをuser Bのmcpforunity://instancesへ混ぜません。set_active_instanceも同じuser scope内だけで解決します。

local modeとの分離

local HTTPやstdioへremote authの複雑さを持ち込まないため、API key enforcementはremote-hosted HTTPでのみ有効にします。

unauthenticated endpoint

health checkやAPI key取得導線など、認証前に必要なendpointは明示的に限定します。command実行やinstance列挙のような操作surfaceをanonymous REST routeとして残しません。

service-to-service認証

validation endpoint自体を保護する必要がある場合、MCP serverからauth serviceへservice token headerを付与できます。user API keyとserver credentialを同じ値にしません。

cache

valid keyは短時間cacheできますが、revoke反映とのtrade-offがあります。transient network failureはvalid resultとしてcacheしません。

正確なCLI option、environment variable、close codeは設定guideと現在の実装を正本として確認してください。