Skip to main content

OAuth と DCR を使用したリモート MCP

一部のリモート MCP サーバーは、静的 API トークンではなく OAuth 2.1 を使用してアクセスを承認します。 SecureAI は、PKCE動的クライアント登録 (DCR) などのこのエンドツーエンドをサポートしているため、OAuth アプリケーションを事前登録する必要はありません。参考例は Cloudflare 公式リモート MCP コネクタ (cloudflare-remote) です。

フローの仕組み

  1. 動的クライアント登録 (RFC 7591)。 コネクタが registrationUrl を宣言し、静的 clientId がない場合、SecureAI は自身をその URL でパブリック PKCE クライアントとして登録し、結果の client_id をキャッシュします。リダイレクト URI が変更されると、自動的に再登録されます。 (静的なクライアント ID を出荷するコネクタの場合、この手順はスキップされます。)
  2. 認可 + PKCE (S256)。 SecureAI は PKCE 検証者/チャレンジを生成し、code_challenge および code_challenge_method=S256 を使用して認可 URL を構築し、管理者/ユーザーをプロバイダーにリダイレクトしてアクセスを許可します。
  3. コールバック プロバイダーは GET /api/connectors/oauth/callback/:slug にリダイレクトします。このルートは、セッションではなく不透明な state パラメーター (有効期間が短い 10 分間の PKCE ストアと照合) によって保護されるため、認証ミドルウェアは必要ありません。
  4. トークンの交換と保管。 SecureAI はコードを (PKCE 検証ツールと) トークンと交換し、ユーザーごとに保管します。その後、アクセス トークンは、そのユーザーのツール呼び出しのために MCP トランスポート (BEARER_TOKEN など) に挿入されます。

OAuth MCP コネクタの接続

  1. [管理] → [統合] → [MCP] を選択し、OAuth コネクタ (例: Cloudflare 公式リモート MCP) を選択します。
  2. [承認] をクリックします。ポップアップでプロバイダーの同意画面が開きます。
  3. 要求されたスコープを承認します。
  4. 成功すると、リダイレクトされて戻り、コネクタが接続済みとして表示されます。

注意事項

  • ユーザーごとのトークン。 各ユーザーは個別に認証します。ツール呼び出しは、共有資格情報ではなく、そのユーザー独自の権限を使用して実行されます。
  • これらのコネクタ (pkceRequired: true) には PKCE が必要です。そのため、パブリック クライアントのクライアント シークレットは保存されません。
  • 静的クライアント コネクタ。 組織が OAuth クライアントを事前登録している場合、そのクライアント ID/シークレットを指定すると、SecureAI は DCR の代わりにそれを使用します。

関連