
こんにちは。CData Software Japan リードエンジニアの杉本です。
以前、Gemini Enterprise と CData Connect AI の連携記事では、ADK で開発したGemini Enterprise のエージェントから CData Connect AI に Basic 認証で接続する方法をご紹介しました。
その後、Gemini Enterprise が OAuth PKCE をサポートするようになり、より安全な OAuth 認証で CData Connect AI に接続できるようになりました!(当時はうまく接続できなくて悔しかったので、めっちゃ嬉しい♪)

あわせて CData Connect AI 側でも「カスタムOAuth アプリ」機能がリリースされ、ユーザー自身がセルフサービスで OAuth アプリを作成できるようになっています。
独自のAI エージェントからConnect AI への認証・認可を可能にする「カスタムOAuth アプリ」作成機能の使い方
というわけで今回は、この2つの更新を組み合わせて、Gemini Enterprise から CData Connect AI に OAuth で接続する手順を詳しく解説します。
今回の構成イメージ
前回記事との最大の違いは認証方式です。
項目 | 前回(Basic 認証) | 今回(OAuth) |
|---|
認証方式 | メールアドレス + PAT をBase64 エンコード | OAuth 2.0 Authorization Code(PKCE) |
認証情報管理 | .env ファイルに直書き
| Gemini Enterprise がセッション単位で管理 |
ユーザー認可 | なし(サービスアカウント的な利用) | ユーザーごとにブラウザで認可 |
OAuth にすることで、アクセストークンをコードに埋め込む必要がなくなり、CData Connect AI 側の RBAC(ロールベースアクセス制御)とも組み合わせやすくなります。
認証フローの全体像は以下のとおりです。

必要なもの
今回必要になる環境は以下のとおりです。
前回記事と同様、Windows の場合ADK の開発は WSL(Windows Subsystem for Linux)上の Ubuntu で実施します。なお、今回は私はMac で実施しました。
CData Connect AI とは
CData Connect AI は、Salesforce、kintone、ServiceNow、各種データベースなど 350 種類以上のデータソースへのリアルタイム接続を、単一の MCP エンドポイントで提供するマネージドサービスです。
AI エージェントからは12種類のシンプルなツールを通じてデータにアクセスできるため、LLM のコンテキストを圧迫せずに業務データを活用できます。SOC 2 Type II および ISO/IEC 27001:2022 の認証を取得しており、エンタープライズ用途でも安心して利用できます。

カスタムOAuth アプリの作成
まず、CData Connect AI 側で Gemini Enterprise 向けの OAuth アプリを作成します。
詳しい手順は以下の記事をどうぞ。
https://jp.cdata.com/blog/cdata-connect-ai-custom-oauth-apps
作成するOAuth アプリの設定は以下のとおりです。
プロパティ | 値 | 備考 |
|---|
名前 | 任意(例:Gemini Enterprise) | 管理用の名前 |
Authorization Flow | User-based (Authorization Code) | |
Callback URL | https://vertexaisearch.cloud.google.com/oauth-redirect
| Gemini Enterprise 固定 |
保存すると Client Id と Client Secret が発行されます。この2つは後ほど Gemini Enterprise の設定で使用するので、メモしておいてください。
これだけで、CData Connect AI 側の OAuth アプリの準備は完了です。
各OAuth エンドポイント
Gemini Enterprise 側の設定で必要になる OAuth エンドポイントは以下のとおりです。
エンドポイント | URL |
|---|
Authorization Endpoint | https://cloud-login.cdata.com/authorize?response_type=code
|
Token Endpoint | https://cloud-login.cdata.com/oauth/token
|
ちなみに、これらのエンドポイント情報は以下の URL からも確認できます。
https://mcp.cloud.cdata.com/.well-known/oauth-authorization-server
ポイントは「Authorization Endpoint」に「?response_type=code」というクエリパラメータを付与しておくことです。通常であれば、OAuth のクライアント側が付与する内容ですが、現状Gemini Enterprise では付与されないみたいなので、ここで指定しておきます。
エージェントの開発(ADK)
次に、ADK を使って Vertex AI Agent Engine にデプロイするエージェントを実装します。
詳しい手順は前回の記事を参考にしてみてください。
前回からの変更点
前回の Basic 認証版では agent.py 内で Base64 エンコードした認証ヘッダーを直接組み立てていましたが、OAuth 版ではセッション状態からアクセストークンを取得する形に変わります。
フォルダ構成
agents/
└── connect_ai_oauth/
├── __init__.py
├── .env
└── agent.py
agent.py
import os
from google.adk.agents import Agent
from google.adk.agents.readonly_context import ReadonlyContext
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset, StreamableHTTPConnectionParams
AUTH_ID = os.getenv("CDATA_CONNECT_AI_AUTH_ID", "")
MCP_URL = "https://mcp.cloud.cdata.com/mcp"
def _get_auth_headers(context: ReadonlyContext) -> dict[str, str]:
"""セッション状態から OAuth トークンを取得して認証ヘッダーを返す。"""
access_token = context.state.get(AUTH_ID, "")
return {"Authorization": f"Bearer {access_token}"}
root_agent = Agent(
name="connect_ai_oauth",
model="gemini-2.5-flash",
description="CData Connect AI",
instruction="あなたは CData Connect AI MCPを活用するためのAIアシスタントです。",
tools=[
McpToolset(
connection_params=StreamableHTTPConnectionParams(url=MCP_URL),
header_provider=_get_auth_headers,
)
],
)
実装のポイント
前回との大きな違いは header_provider の部分です。Basic 認証版では固定の認証情報をヘッダーに埋め込んでいましたが、OAuth 版では ReadonlyContext を使ってセッション単位のアクセストークンを動的に取得します。Gemini Enterprise が OAuth フローを完了させると、そのトークンがセッション状態(context.state)に格納されるため、エージェント側ではそれを参照するだけで済みます。
AUTH_ID は Gemini Enterprise がトークンを格納する際のキーとなる識別子です。.env ファイルで管理します。
これはGemini Enterprise からデフォルトでは自動生成されますが、任意の値に変更することもできます。今回私はあらかじめ「cdata_connect_ai_oauth_20260414」といった文字列を指定しておきました。
.env
CDATA_CONNECT_AI_AUTH_ID=(Gemini Enterprise 側で確認できる値を指定)
init.py
from . import agent
Vertex AI Agent Engine へのデプロイ
実装が完了したら ADK コマンドでデプロイします。前回同様、完了まで5分程度かかります。
adk deploy agent_engine \
--project=PROJECT_ID \
--region=us-central1 \
--staging_bucket=STAGING_BUCKET \
connect_ai_oauth
デプロイが完了すると、以下のようにリソース名が出力されます。
Created agent engine: projects//locations/us-central1/reasoningEngines/XXXXXXXXXX
このリソース名は Gemini Enterprise へのエージェント登録で使用します。

Gemini Enterprise 側の設定
デプロイが完了したら、Gemini Enterprise にエージェントを追加します。
Gemini Enterprise を開いて「+エージェントを追加」をクリックし、「Agent Engine によるカスタムエージェント」を選択します。


今回は認可機能(OAuth)を追加するため、前回とは異なり認可の設定を行います。以下のように入力してください。認証IDは先程.envで指定したものと同じ値を入力します。デフォルトでは自動生成されますが編集することが可能です。
そして一番大事な要素である今回新しく追加された「PKCE 検証が有効」にチェックを入れておきましょう。
プロパティ | 値 |
|---|
認証名 | 例)CDataConnectAIOAuth |
認証ID | 例)cdata_connect_ai_oauth_20260414 |
クライアントID | カスタムOAuth アプリで発行した Client Id |
クライアントシークレット | カスタムOAuth アプリで発行した Client Secret |
トークンURI | https://cloud-login.cdata.com/oauth/token
|
認証URI | https://cloud-login.cdata.com/authorize?response_type=code
|
PKCE 検証が有効 | チェックを入れる |

次の画面でエージェント名・説明を入力し、「Agent Engine 推論エンジン」に先ほどデプロイした Vertex AI Agent Engine のリソース名を指定します。

これで Gemini Enterprise 側の設定は完了です。
動作確認
設定が完了したら、実際に Gemini Enterprise からエージェントを使ってみましょう。
初回アクセス時はAIのメッセージで承認ボタンが表示されます。この承認ボタンをクリックすることで、ブラウザ経由で CData Connect AI への認証・認可画面が表示されます。
ログインして承認することで、アクセストークンが発行され、エージェントが MCP を通じてデータにアクセスできるようになります。

認可が完了したら、接続されているデータソースに対して自然言語で問い合わせてみましょう。

以下のようにCData Connect AI へOAuth で認証・認可を行い、 MCP を通じたデータアクセスができていることが確認できました!
おわりに
このように、CData Connect AI のカスタムOAuth アプリ機能と Gemini Enterprise の OAuth PKCE 対応を組み合わせることで、より安全な認証方式でエージェントからデータにアクセスできるようになります。Basic 認証と比べてトークン管理の手間が減り、ユーザーごとのアクセス制御も実現しやすくなります。
ぜひ CData Connect AI のトライアルと合わせて試してみてください!
なにかわからないことがあれば、お気軽にサポートやお問い合わせからどうぞ。
https://jp.cdata.com/contact/