AI Connect/Reference/セキュリティ
セキュリティ
@vinkius/connectのセキュリティモデル:サーバーサイドの1つのシークレット、書き込み専用の認証情報、アプリケーションにランタイムトークンを保持しない設計、マスキングされたオブザーバビリティ、脆弱性の開示ポリシー。
@vinkius/connect は、インテグレーターが管理する必要のあるシークレットの露出面を最小限に抑えるように設計されています。このページでは、モデル、保証、脆弱性開示ポリシーについて説明します。
シークレットは 1 つだけ
SDK は、公開アプリケーション ID(vk_app_*)と 1 つの秘密アプリケーションキー(vk_app_sk_*)で初期化します。シークレットは HTTPS 上の Authorization: Bearer ヘッダーとしてのみ送信されます。
- すべてのリクエストに識別情報を含める。 各呼び出しは
vk_app_*アプリ ID を運び、サーバー側でキーに対して検証されます。キーは自分のアプリケーションに代わってのみ動作できます。漏えいしたvk_app_sk_*は 1 つのアプリケーションに限定され、API はテナント間アクセスを404で拒否します。 - サーバー側に置く。 環境変数かシークレットマネージャーに保管します。ブラウザ、モバイルアプリ、ユーザーが管理するあらゆるクライアントに送ってはいけません。
ランタイムトークンは SDK に届かない
ツールの実行は Vinkius API がプロキシします。内部のデータプレーン用トークン(vk_live_*)は、作成、ローテーション、使用のすべてがサーバー側で完結します。アプリケーションが保存や漏えいを心配すべきランタイムシークレットは存在しません。ランタイムエンドポイント経由の呼び出しはすべて計測され、取り消し可能(キルスイッチ)です。
認証情報は書き込み専用
エンドユーザーの認証情報は API 経由で保存され、返されることはありません。SDK が報告できるのはどのキーが設定されているかだけで、値は決して分からず、モデルが生のシークレットを受け取ることもありません:
const state = await github.credentials.status();
// state.configured: Record<string, boolean> — flags, not valuesランタイム依存はゼロ
コアはサードパーティのランタイム依存なしで提供され、サプライチェーンの露出面を最小に保ちます。
デフォルトでマスキング
オブザーバビリティフックはマスキングされたヘッダーとボディを受け取ります。Authorization、トークン、認証情報に類するフィールドが、SDK を通じてロガーに届くことはありません。マスキングは、大文字小文字を区別しない正確なフィールド名(authorization、token、api_key、credentials、password、secret、client_secret など)の固定リストに対して、最大 6 段階の深さまで適用されます。完全なリストは API Reference を参照してください。
トランスポートの安全性
localhost 以外の http:// ベース URL はコンソール警告を出力します。本番環境では必ず https:// を使用してください。
脆弱性の報告
セキュリティの問題は security@vinkius.com へ非公開で報告してください。脆弱性について公開の issue を作成しないでください。報告は 3 営業日以内に確認応答され、トリアージ後に修正スケジュールが伝えられます。
サポート対象バージョン
1.0 未満のリリースは、最新のマイナーバージョンに対してセキュリティ修正を受け取ります。@vinkius/connect を最新に保ってください:
npm install @vinkius/connect@latest