Vercel Connect、エージェント向けランタイム認証

540文字
3分
編集

Vercel Connect は、エージェントやアプリが Slack・GitHub・Linear など外部 API に触れる際、環境変数に置く長期プロバイダトークンの代わりに、タスクごとに短命でスコープ限定の認証情報を取得する仕組みである。Public Beta として提供が始まり、コネクタを一度登録すればプロジェクトと環境ごとに再利用できる。

  • コネクタはダッシュボードまたは vercel connect create で作成し、チームとプロバイダ間の接続を一つの管理対象にまとめる。プロジェクト単位のアクセス制御で、開発・プレビュー・本番に別コネクタを割り当てられる。
  • @vercel/connectgetToken が実行時にプロバイダ向けトークンを返す。トークンは短命で、プロバイダごとに有効期間が異なり、SDK が自動更新する。アプリ側にプロバイダシークレットを置かない。
  • デプロイごとの OIDC アイデンティティが Vercel Connect へ提示され、プロジェクトと環境がコネクタ利用を許可されているか検証されたうえで認証情報が返る。ローカルは vercel linkvercel env pull、Vercel 外は Vercel アクセストークンでも同様に動作する。
  • リクエストごとにプロバイダスコープ、インストール ID、リソース制限、プロバイダ固有の authorization details を指定できる。GitHub では特定リポジトリと read-only 権限などに絞れる。subjectuser にすると、そのユーザーに代わって動作するトークンを取得し、初回は startAuthorization で同意フローを走らせる。
  • vercel connect revoke-tokens でコネクタのトークンを失効できる。プロバイダが失効 API を持たない場合は新規発行を止め、既発行分はプロバイダ側の有効期限まで残る。
  • トリガー転送(ベータ)は Slack・GitHub・Linear に対応する。プロバイダの Webhook を Vercel Connect が検証し、OIDC で再証明してアプリへ転送する。Slack コネクタは最大 3 プロジェクトへ転送できる。
  • 対応コネクタは汎用 OAuth・API キーに加え Slack、GitHub、Linear、Discord、Notion、Salesforce、Figma、Snowflake など。Resend、Workday、Microsoft Teams などは今後追加予定。Better Auth、Auth.js、AI SDK、MCP、オープンソースの eve 向けアダプタが用意されている。
  • 課金はトークンリクエスト数ベースである。Hobby は月 5,000 リクエストまで無料、Pro と Enterprise は 10,000 リクエストあたり 3 ドル。
typescript
import { getToken } from '@vercel/connect';
const token = await getToken('github/mybot', {
  subject: { type: 'app' },
  authorizationDetails: [
    {
      type: 'github_app_installation',
      repositories: ['myorg/repo1'],
      permissions: ['contents:read'],
    },
  ],
});

#参考文献