基本原則
プラグインのツールは、ユーザーデータやサードパーティの API にアクセスし、書き込み操作を実行できます。すべての MCP サーバーと UI コンポーネントを本番環境で稼働するソフトウェアとして扱ってください。
- 最小権限: 要求するスコープ、ストレージへのアクセス権、ネットワーク権限は、必要なものに限定してください。
- ユーザーの明示的な同意: アカウントを連携するときや書き込み権限を付与するときは、ユーザー自身が何に同意するのかを理解できるようにしてください。破壊的な操作には、ホストの確認プロンプトを使用してください。
- 多層防御: プロンプトインジェクションや悪意のある入力がサーバーに届くことを前提にしてください。すべての入力を検証し、監査ログを残してください。
データの取り扱い
- 構造化コンテンツ: 現在のプロンプトに必要なデータだけを含めてください。コンポーネントの props にシークレットやトークンを埋め込むことは避けてください。
- ストレージ: ユーザーデータの保持期間を定め、保持ポリシーを公開してください。データの削除依頼に応じてください。
- ログ記録: ログに書き込む前に、個人を特定できる情報(PII)をマスキングしてください。デバッグ用に相関 ID を保存し、必要な場合を除いてプロンプトの原文の保存は避けてください。
プロンプトインジェクションと書き込み操作
カスタム MCP サーバーでは、書き込みツールを含む MCP のすべての機能を利用できます。リスクを軽減するため、次の対策を講じてください。
- ツールの説明を定期的に見直し、「レコードの削除には使用しないでください」などの注意書きで誤用を防いでください。
- モデルが提供した入力も含め、すべての入力をサーバー側で検証してください。
- 取り消せない操作には、人による確認を必須にしてください。
プロンプトインジェクションのテストに特に有効なプロンプトを QA チームと共有し、弱点を早い段階で検証できるようにしてください。
ネットワークアクセス
ウィジェットは、厳格なコンテンツセキュリティポリシー(CSP)が適用された隔離環境の iframe 内で動作します。window.alert、window.prompt、window.confirm、navigator.clipboard などの特権ブラウザ API にはアクセスできません。標準の fetch リクエストは CSP によって制御されます。ネストされたフレームはデフォルトでは使用できません。使用するには、_meta.ui.csp.frameDomains などのリソースの CSP メタデータで、必要なオリジンを個別に許可してください。プラグインには、その MCP サーバーと同じ登録可能ドメインにあるページを埋め込むことができます。既存のエディターや管理画面も対象です。ドメインの所有権、埋め込みが必要な理由の説明、レビュー要件については、iframe ポリシーを参照してください。
ウィジェットの CSP は、iframe に読み込めるページの URL を制限します。埋め込まれたページには、そのページ独自の CSP が適用されます。ウィジェットの connectDomains と resourceDomains の許可リストは、そのページ内から送信されるネットワークリクエストには適用されません。iframe に許可するオリジンは個別に指定し、埋め込んだページとその機能もセキュリティレビューの対象にしてください。
サーバー側のコードに適用されるネットワーク制限は、ホスティング環境が課すものだけです。外部へのリクエストでは、TLS 検証、リトライ、タイムアウトなど、一般的なベストプラクティスに従ってください。
認証と認可
- 外部アカウントを連携する際は、OAuth 2.1 の認可コードフローを使用してください。認可サーバーがクライアント ID メタデータドキュメント(CIMD)に対応し、プラグイン作成者が CIMD を選択した場合は、CIMD を優先してください。パブリッククライアントのトークン交換には
noneを使用し、認可サーバーがクライアント認証を要求する場合はprivate_key_jwtを使用してください。プラグイン作成者が DCR を選択した場合、または CIMD を利用できない場合は、DCR に対応してください。 - ツールを呼び出すたびにスコープを検証し、許可された範囲内でのみ操作を実行してください。トークンの有効期限が切れている場合や形式が正しくない場合は、
401レスポンスを返してください。 - 組み込みの ID 機能を利用する場合は、有効期間の長いシークレットの保存を避け、提供される認証コンテキストを使用してください。
運用準備
- リリース前にセキュリティレビューを実施してください。規制対象のデータを扱う場合は特に重要です。
- トラフィックに異常なパターンがないか監視し、エラーが繰り返されたときや認証に失敗したときにアラートが届くよう設定してください。
- サプライチェーンのリスクを軽減するため、サードパーティの依存関係、ライブラリ、ビルドツールには最新のパッチを適用してください。
セキュリティとプライバシーは、ユーザーの信頼の基盤です。対応を後回しにせず、計画、実装、デプロイの各工程に最初から組み込んでください。