OAuth と DCR を使用したリモート MCP
一部のリモート MCP サーバーは、静的 API トークンではなく OAuth 2.1 を使用してアクセスを承認します。 SecureAI は、PKCE や 動的クライアント登録 (DCR) などのこのエンドツーエンドをサポートしているため、OAuth アプリケーションを事前登録する必要はありません。参考例は Cloudflare 公式リモート MCP コネクタ (cloudflare-remote) です。
フローの仕組み
- 動的クライアント登録 (RFC 7591)。 コネクタが
registrationUrlを宣言し、静的clientIdがない場合、SecureAI は自身をその URL でパブリック PKCE クライアントとして登録し、結果のclient_idをキャッシュします。リダイレクト URI が変更されると、自動的に再登録されます。 (静的なクライアント ID を出荷するコネクタの場合、この手順はスキップされます。) - 認可 + PKCE (S256)。 SecureAI は PKCE 検証者/チャレンジを生成し、
code_challengeおよびcode_challenge_method=S256を使用して認可 URL を構築し、管理者/ユーザーをプロバイダーにリダイレクトしてアクセスを許可します。 - コールバック プロバイダーは
GET /api/connectors/oauth/callback/:slugにリダイレクトします。このルートは、セッションではなく不透明なstateパラメーター (有効期間が短い 10 分間の PKCE ストアと照合) によって保護されるため、認証ミドルウェアは必要ありません。 - トークンの交換と保管。 SecureAI はコードを (PKCE 検証ツールと) トークンと交換し、ユーザーごとに保管します。その後、アクセス トークンは、そのユーザーのツール呼び出しのために MCP トランスポート (
BEARER_TOKENなど) に挿入されます。
OAuth MCP コネクタの接続
- [管理] → [統合] → [MCP] を選択し、OAuth コネクタ (例: Cloudflare 公式リモート MCP) を選択します。
- [承認] をクリックします。ポップアップでプロバイダーの同意画面が開きます。
- 要求されたスコープを承認します。
- 成功すると、リダイレクトされて戻り、コネクタが接続済みとして表示されます。
注意事項
- ユーザーごとのトークン。 各ユーザーは個別に認証します。ツール呼び出しは、共有資格情報ではなく、そのユーザー独自の権限を使用して実行されます。
- これらのコネクタ (
pkceRequired: true) には PKCE が必要です。そのため、パブリック クライアントのクライアント シークレットは保存されません。 - 静的クライアント コネクタ。 組織が OAuth クライアントを事前登録している場合、そのクライアント ID/シークレットを指定すると、SecureAI は DCR の代わりにそれを使用します。

