※この記事は、Stan Tanev による “Connect Claude to your Oracle Integration tools” を翻訳したものです。

原文公開日: 2026年9月23日


ClaudeをOracle Integrationのツールに接続する、のタイトル画像

Oracle Integrationでは、プロジェクトをModel Context Protocol(MCP)サーバーとして公開できます。MCPは、AIクライアントがツールを検出して呼び出すために使用するオープン標準です。そのため、プロジェクトでMCPを有効にすると、MCP対応クライアントは、ツールとして登録された統合を検出し、そのクライアントを使用しているユーザー本人のアイデンティティで呼び出すことができます。Claudeは、そのようなクライアントの中でも広く利用されているものの1つであり、Oracle Integrationとの接続方法について多くの質問が寄せられています。本記事では、設定する3つの要素(OCI IAM、Oracle Integration、Claude)を整理し、OAuth認可コード・フローがそれらをどのように結び付けるのか、さらにClaudeのどの認証オプションを選択すべきか、その理由とあわせて説明します。

説明を具体的にするため、この記事では、都市の天気予報を取得するシンプルなGetWeather統合を例として使用します。これは、すでに運用していて、ユーザーがチャット・ウィンドウから利用できるようにしたい既存の統合を代表する例です。設定方法はどの統合でも同じで、変更するのはツールに指定する説明だけです。この記事を読み終えるころには、組織のユーザーがClaudeを開いて自然言語で質問し、Claudeが公開した統合を呼び出して、その結果をもとに回答できるようになります。

ユーザーがClaudeのチャット・ウィンドウから自然言語で質問し、OICのGetWeather統合を呼び出し、その結果をもとに回答しているスクリーンショット画像

始める前に必要なもの

  • 公開したいアクティブな統合が少なくとも1つ含まれるプロジェクトを持つOracle Integration 3インスタンス。この統合では、OAuth認証を使用し、JSONペイロードを扱うRESTトリガーが必要です。この記事のサンプル・プロジェクトはMCP_APP_GET_WEATHERで、GetWeather統合を使用します。以降の手順では、ご自身のプロジェクト名と統合名に置き換えてください。
  • Oracle Integrationインスタンスを保護しているOCIアイデンティティ・ドメインに対するアイデンティティ・ドメイン管理者権限。
  • Claude Desktop、またはブラウザ版のclaude.ai。以下のスクリーンショットはデスクトップ・アプリケーションのものですが、Webでの手順も同じです。どちらで追加したコネクタも、ClaudeモバイルおよびClaude Codeで利用できます。

事前準備については、ドキュメントの次の2ページを参照してください。MCP側については統合をMCPサーバーのツールとして使用、IAM側についてはアイデンティティ・ドメイン環境でのOAuth 2.0付与の使用です。後者では、この記事で使用する認可コード・グラントを含め、Oracle Integrationで利用できるすべてのグラント・タイプについて説明しています。この記事のOracle側の設定に、Claude固有のものはありません。Claudeをクライアントとして使用する標準的なOCI IAM OAuthであり、事前登録済みOAuthクライアントをサポートする他のMCPクライアントにも同じ手順を適用できます。

この記事ではClaudeを取り上げます。パート1とパート2で説明するIAMおよびOracle Integrationの設定は、どのMCPクライアントでも共通で、異なるのはクライアント側の手順だけです。今後、ChatGPTを皮切りに、他の主要なクライアントについても個別の記事を公開する予定です。

パート1: OCI IAMの設定

まず、OAuthにおける各役割を確認しておくと分かりやすいです。ユーザーはリソース所有者です。OCI IAM(アイデンティティ・ドメイン)は認可サーバーで、ユーザーを認証し、同意を記録して、トークンを発行します。Oracle Integrationはリソース・サーバーです。ユーザーの資格証明を直接扱うことはなく、受信したベアラー・トークンのみを検証します。Claudeはクライアントです。そのため、IAM側で必要なのはClaude用のクライアント登録だけです。Oracle Integrationインスタンスを保護しているアイデンティティ・ドメインに、Claude用のConfidential Applicationを登録します。

Confidential ApplicationとOracle Integrationインスタンス・アプリケーション、2つのアプリケーションの役割を説明する図

ここでは2つのアプリケーションが関係するため、それぞれの役割を区別しておくと分かりやすいです。作成するConfidential ApplicationはClaudeを表し、グラント・タイプ、リダイレクトURL、資格証明を保持します。もう1つはすでに存在している、Oracle Cloud Services配下のOracle Integrationインスタンス・アプリケーションです。こちらには、リソース・スコープと各種アプリケーション・ロールが定義されています。以下の手順では、必要なIAM設定を行います:

  1. Oracle Cloud Consoleで、Identity & Security → Domainsに移動し、対象のドメインを選択します。次に、Integrated applications → Add application → Confidential Applicationを選択します。名前を指定し(この例ではmcp_app)、Submitをクリックします。
  2. OAuth configurationタブを開き、Edit OAuth configurationをクリックして、Configure this application as a client nowを選択します。
  3. Allowed grant typesで、次を有効にします。
    • Authorization code:Claudeが使用するグラントです。このフローについては後ほど説明します。
    • Refresh token:Claudeがユーザーに再度認証を求めることなく、アクセス・トークンを更新できるようにします。
    • このアプリケーションではClient credentialsを有効にしないでください。Oracle Integrationはクライアント資格証明グラントで発行されたトークンを受け入れますが、Claudeはこのグラントを使用せず、常にサインインしたユーザーの代理として動作します。
  4. Redirect URLにhttps://claude.ai/api/mcp/auth_callbackを設定します。これは、Web、デスクトップ、モバイルのすべてのカスタム・コネクタでAnthropicが使用する固定のコールバックURLです。他のMCPクライアントのコールバックURLをあわせて登録することもできます。Anthropicは、将来的にコールバックURLがhttps://claude.com/api/mcp/auth_callbackへ移行する可能性があるとしているため、両方を登録しておくことをおすすめします。
  5. Client typeをConfidentialに設定します。
  6. Add resourcesを有効にし、Add scopeをクリックします。対象インスタンスのOracle Integrationアプリケーションを展開し、urn:opc:resource:consumer::allで終わるスコープを選択します。これはClaudeが要求するスコープであり、ユーザーの同意画面にも表示されます。
  7. Submitをクリックし、ActionsメニューからアプリケーションをActivateします。
  8. Client IDをコピーします。さらに、クライアント・シークレットのActionsメニューからClient secretをコピーします。これら2つは、パート3でClaudeに入力します。
  9. Claudeから接続するユーザーにOracle Integrationのロールを付与します。Oracle cloud servicesに移動し、対象のOracle Integrationインスタンスのアプリケーションを開きます。Application rolesをクリックし、ServiceInvokerを展開して、対象のユーザーまたはグループを割り当てます。認可コード・グラントでは、ロールのチェックはクライアント・アプリケーションではなく、サインインしたユーザーに対して行われます。そのため、クライアント・アプリケーション自体にロールを付与する必要はありません。ユーザーにServiceInvokerロールがない場合、IAMはトークンを発行しますが、Oracle Integrationはその呼出しを403エラーで拒否します。
Confidential Applicationの作成画面。Redirect URLにはClaudeのコールバックURLが設定されている

この画面には、補足しておきたい設定がいくつかあります。

  • Bypass consentは無効のままにします。これは意図的な設定です。Claudeがトークンを受け取る前に、各ユーザーにはOracle Integrationリソースが表示された同意画面が提示されます。セキュリティ・チームがユーザー操作なしの認可を許容できる場合にのみ、有効にしてください。
  • Client IP addressはRestrict by network perimeterに設定します。Claudeによるトークン交換は、ユーザーのラップトップではなくAnthropicのインフラストラクチャから行われるため、ネットワーク・ペリメータにはAnthropicの送信元IPアドレス範囲を含めるか、すべてを許可するように設定する必要があります。
  • Resource server configurationは無効のままにします。このアプリケーションはOracle Integrationリソースのクライアントであり、それ自体がリソース・サーバーになるわけではありません。

パート2: Oracle Integrationの設定

考え方はシンプルです。プロジェクトがMCPサーバーであり、プロジェクト内のすべてのエージェント型AIツールがそのMCPサーバーを通じて公開されます。統合は、ツールとして登録するまではツールとして公開されません。Oracle Integration側の設定は3つのステップです。統合が要件を満たしていることを確認し、ツールとして登録して、プロジェクトでMCPを有効にします。各プロジェクトには固有のサーバーURLが割り当てられます。

2.1 統合の確認

統合は、プロジェクトに含まれていてActiveであり、最初の接続がOAuth認証とJSONペイロードを使用するRESTトリガーである場合、ツールとして登録できます。REST AdapterがサポートするHTTPメソッドであれば、どれでも使用できるため、ほとんどのリクエスト/レスポンス統合はすでにこの要件を満たしています。

2.2 統合をエージェント型AIツールとして登録

MCPサーバーが公開するのは統合ではなく、ツールです。統合をエージェント型AIツールとして登録すると、その統合がプロジェクトのツール・リストに追加されます。アクティブな統合であっても、ツールとして登録されていなければMCPクライアントからは見えません。これは意図的な設計です。AIクライアントにどの統合を公開するか、また、どのような説明やパラメータで公開するかを明示的に決めることができます。

  1. プロジェクトを開き、Integrationsリストで対象の統合を見つけます。Actions(⋯)をクリックし、Create agentic AI toolを選択します。
  2. ツールの情報を入力します。
    • Nameは人が識別するための名前で、モデルには送信されません。
    • Identifierは、モデルがツール名として認識する値です。
    • Descriptionはモデルに送信され、Claudeがそのツールをいつ使用するかを判断するために使用されます。新しい同僚に説明するつもりで、そのツールが何をするのか、どのような場合に使用するのかを記述してください。
  3. ツールの詳細ページでは、必要に応じてGuidelinesを追加し、Parametersを構成します。Guidelinesには、「過去90日以内に行われたオーダーにのみ使用する」といった制約を指定できます。この例であれば、「スイスの都市にのみ使用する」といった制約を指定できます。
  4. 保存します。
統合をエージェント型AIツールとして登録する画面のスクリーンショット

2.3 プロジェクトでMCPを有効にし、URLをコピーする

  1. プロジェクト・ページで、Edit detailsをクリックします。
  2. Enable MCP serverを選択し、保存します。
  3. The MCP server runs atの下に表示されるURLをコピーします。URLは次の形式です。
https://<instance>.integration.<region>.ocp.oraclecloud.com/mcp-server/v1/projects/<project-identifier>/mcp

パスでは、表示名ではなくプロジェクトの識別子が使用されることに注意してください。Oracle Integrationは、プロジェクトを最初に作成したときに指定した名前から識別子を生成します。トランスポートにはStreamable HTTPが使用されます。これはClaudeが想定しているトランスポートです。

MCP Serverを有効化し、URLをコピーする画面のスクリーンショット

プロジェクトのMCPエンドポイントは、Oracle Integrationインスタンスと同じアイデンティティ・ドメインによって保護されます。このエンドポイント専用の認証構成はありません。Oracle Integrationのリソース・スコープに対する有効なトークンを持ち、ServiceInvokerロールが付与されているコール元であれば、このエンドポイントを呼び出すことができます。

2.4 ClaudeがIAMを自動的に検出する仕組み:保護されたリソース・メタデータ

サーバーを保護しているアイデンティティ・ドメインをClaudeに明示的に指定する必要はありません。Claudeは、MCPが有効化された各プロジェクト向けにOracle Integrationが公開する検出ドキュメントから、その情報を特定します。この検出ドキュメントは、MCP認可仕様で必須とされているRFC 9728, OAuth 2.0 Protected Resource Metadata(PRM)に準拠しています。

インスタンス・ホストの/.well-known/oauth-protected-resourceにMCPパスを追加すると、このメタデータを取得できます。

GET https://<instance>.integration.<region>.ocp.oraclecloud.com/.well-known/oauth-protected-resource/mcp-server/v1/projects/<project-identifier>/mcp
{
  "resource": "https://<instance>.integration.<region>.ocp.oraclecloud.com/mcp-server/v1/projects/<project-identifier>/mcp",
  "authorization_servers": [
    "https://idcs-<domain-id>.identity.oraclecloud.com:443"
  ],
  "scopes_supported": [
    "https://<oic-audience>.integration.<region>.ocp.oraclecloud.com:443urn:opc:resource:consumer::all"
  ],
  "bearer_methods_supported": ["header"]
}

このドキュメントに含まれる3つの情報が、以降の処理を決定します。authorization_serversはOCIアイデンティティ・ドメインを示すため、Claudeはユーザーをどの認可サーバーに誘導すればよいかを把握できます。scopes_supportedはOracle Integrationの正確なスコープを示すため、Claudeは何を要求すればよいかを把握でき、ユーザーがそのスコープをどこかに手入力する必要はありません。bearer_methods_supportedは、Authorizationヘッダーでトークンを送信するようClaudeに指示します。

その後、Claudeは/.well-known/oauth-authorization-serverからアイデンティティ・ドメインのメタデータを取得します。IAMは、/.well-known/openid-configurationで同等のOpenID Connectメタデータも提供します。このメタデータには、/oauth2/v1/authorizeおよび/oauth2/v1/tokenエンドポイントのほか、サポートされているグラント・タイプやPKCEメソッドが含まれています。この2つのドキュメントを組み合わせることで、ClaudeはサーバーURLとクライアントID以外を追加で設定することなく、認可に必要な情報をすべて把握できます。

Postmanから/.well-known/oauth-authorization-serverを実行した際のスクリーンショット

これは、Claudeのコネクタ・ダイアログにDetectedラベルが表示される理由でもあります。Claudeは、認証設定を事前入力する前にPRMレスポンスを読み取ります。

パート3: Claudeのセットアップ

次に、Claudeにサーバーの場所とサインイン方法を設定します。TeamおよびEnterpriseプランでは、組織のオーナーがOrganization settings → Connectorsでコネクタを追加し、その後メンバーがコネクタに接続します。個人向けプランでは、Settings → Connectorsでコネクタの追加と接続の両方を自分で行います。表示されるダイアログは同じです。

  1. Claude Desktopで、Settings → Connectorsを開き、Add、Add custom connectorの順にクリックします。
Claude DesktopでAdd Custom Connectorをクリックした時のスクリーンショット
  1. 名前を入力し、パート2でコピーしたMCPサーバーURLを貼り付けます。Continueをクリックします。
Add Custom ConnectorでMCPサーバーのURLを貼り付けた画面のスクリーンショット
  1. Claudeはサーバーを確認し、検出した設定をDetectedと表示して事前入力します。Oracle Integration MCPサーバーの場合、AuthenticationにはSign in now、OAuth clientにはUse your own OAuth clientが表示されるはずです。どちらもそのままにします。
Add custom connectorsでMCPサーバーを検出した際の画面のスクリーンショット
  1. パート1でコピーしたClient IDとClient secretを貼り付け、Addをクリックします。認証設定は後から編集できません。変更する必要がある場合は、コネクタを削除して再度追加してください。
MCPサーバーの認証設定で、Client IDとClient Secretを入力した画面のスクリーンショット
  1. これでコネクタがリストに表示されますが、まだ接続されていません。Connectをクリックして、サインインを開始します。
コネクタがリストに表示され、Connect ボタンをクリックする画面のスクリーンショット
  1. ブラウザでclaude.aiが開き、Claude Desktopからこの操作を開始したことを確認するよう求められます。これはフィッシング対策の確認です。リンクを開いただけでは、アカウントに何かが接続されることはありません。Continue connectingをクリックします。
ブラウザでClaude.aiが表示され、Continue connectingをクリックする画面のスクリーンショット
  1. OCIアイデンティティ・ドメインにリダイレクトされてサインインした後、アプリケーション名とOracle Integrationのリソース・スコープが表示された同意画面が表示されます。Allowをクリックします。
OCI IAM Identity Domainでアプリケーション mcp_appとOracle Integrationのリソース・スコープが表示された同意画面のスクリーンショット
  1. claude.aiで接続が確認され、その後デスクトップ・アプリケーションに戻ります。
Claude.aiで接続が確認された画面のスクリーンショット
  1. Settings → Connectorsに戻り、コネクタを開いてツールを確認します。各ツールには、Allow automatically、Ask every time、Blockのいずれかの権限設定があります。サンプルの天気ツールのような読取り専用の参照ツールは、Allow automaticallyのままで問題ありません。データを作成または変更するツールでは、Ask every timeをデフォルトにするのが適切です。
Settings → Connectorsでツールを確認する画面のスクリーンショット

新しいチャットを開始し、コネクタが + メニューで有効になっていることを確認して、ツールで回答できる質問をします。Claudeは、セクション2.2で記述した説明に基づいてツールを選択し、ユーザーのトークンを使用してOracle Integrationを呼び出し、その結果をもとに回答します。この例では、「Zermattの天気は?」と質問します。実際の統合では、ユーザーが自然に尋ねる内容に応じた質問になります。

認可コード・フローの仕組み

ここまでのすべての設定は、標準的な1つのOAuth 2.0フロー、つまりOCI IAMに対する認可コード・グラントを機能させるためのものです。これは、Oracle Integrationの任意のサードパーティ・クライアント向けにドキュメント化されているものと同じです。MCPが追加するのは、最初の検出ステップ(ステップ1と2)だけです。Oracle Integrationは、RFC 9728に準拠した保護されたリソース・メタデータを公開します。これによりClaudeは、ユーザーが明示的に指定しなくても、IAMが認可サーバーであることと、どのスコープを要求すべきかを把握できます。IAMが認証と同意を処理し、Oracle Integrationは各呼出しで、その結果として発行されたベアラー・トークンを検証するだけです。

認可コード・フローのシーケンス図

ステップごとに見ていきます。

  1. Connectをクリックすると、ClaudeはOracle IntegrationのMCPエンドポイントに未認証のリクエストを送信します。
  2. Oracle Integrationは401 Unauthorizedを返します。このレスポンスにはWWW-Authenticateヘッダーが含まれ、そのresource_metadataパラメータは、プロジェクトの保護されたリソース・メタデータ・ドキュメント(セクション2.4)を指します。Claudeはこのドキュメントを取得し、authorization_serversを読み取ってOCIアイデンティティ・ドメインを特定します。続いて、そのドメインの認可サーバー・メタデータを取得し、認可エンドポイントとトークン・エンドポイントを把握します。これが検出ステップであり、Claudeが各オプションにDetectedと表示できる理由です。
  3. Claudeは、登録したクライアントID、https://claude.ai/api/mcp/auth_callbackのリダイレクトURL、Oracle Integrationのスコープ、ランダムなstate、PKCEコード・チャレンジを指定して、ドメインの/oauth2/v1/authorizeエンドポイントをブラウザで開きます。
  4. ドメインで適用されているMFAを使用してIAMにサインインし、同意画面で許可します。
  5. IAMは、有効期間の短い認可コードを付けて、ブラウザをclaude.aiのコールバックURLにリダイレクトします。
  6. ブラウザは、その認可コードをClaudeのバックエンドに渡します。
  7. Claudeは、認可コード、クライアント・シークレット、PKCEベリファイアを使用して、ドメインの/oauth2/v1/tokenエンドポイントを呼び出します。これはサーバー間通信で行われるため、ブラウザやデスクトップ・アプリケーションにクライアント・シークレットが渡ることはありません。
  8. IAMは、アクセス・トークンとリフレッシュ・トークンを返します。
  9. これ以降、ClaudeはAuthorization: Bearer <token>ヘッダーを使用してMCPエンドポイント(tools/list、tools/call)を呼び出します。
  10. リソース・サーバーとして動作するOracle Integrationは、アイデンティティ・ドメインを基にトークンの署名、有効期限、オーディエンスを検証し、さらにユーザーにServiceInvokerロールが付与されていることを確認してから統合を実行します。Oracle Integrationがユーザーのパスワードやクライアント・シークレットを受け取ることはありません。
  11. 統合のレスポンスがツールの結果として返され、Claudeはその結果を使用して質問に回答します。

アクセス・トークンの有効期限が切れると(IAMではデフォルトで1時間)、Claudeはリフレッシュ・トークンを使用して、ユーザーを関与させることなく新しいアクセス・トークンを取得します。IAMがリフレッシュ・トークンを発行するのは、要求されたスコープにoffline_accessが含まれている場合のみです。ユーザーが1時間ごとに再認証を求められる場合は、まずここを確認してください。トークンのリフレッシュ時に同意画面が表示されることはありません。ただし、同じIAMアプリケーションを使用して新しいMCPサーバーに接続するたびに、同意画面は再度表示されます。これは、各コネクタがそのリソースに対する新しい認可リクエストとして扱われるためです。

Claudeのモデルでは、Oracle Integrationへのすべての呼出しに、Claudeを使用しているユーザー本人のアイデンティティが含まれます。アクセス権はIAMでユーザーごとに付与され、ユーザーごとに取り消すことができ、Oracle Integrationのアクティビティ・ストリームにもそのユーザーとして記録されます。共有サービス・アイデンティティが必要な場合は、Claudeコネクタではなく、別のクライアントと別のグラントを使用する必要があります。

Claudeの認証オプションと、事前登録済みOAuthクライアントが適切な選択である理由

アイデンティティに関する補足。 Oracle Integration MCPサーバーは、アイデンティティ・ドメインがそのインスタンス向けに発行した有効なベアラー・トークンを受け入れます。そのため、サービス資格証明(クライアント資格証明グラントまたはJWTユーザー・アサーション)と、サインインしたユーザーに発行されたトークンのどちらでも使用できます。Claudeのコネクタ・モデルがサポートするのは後者だけです。Claudeは常にOAuthを介してユーザーをサインインさせ、そのユーザーのトークンを使用してツールを呼び出します。そのため、この記事では認可コード・フローを使用します。副次的な利点として、すべての呼出しがOracle Integrationのアクティビティ・ストリームとIAMに実際のユーザー本人として記録され、アクセス権もユーザーごとに付与および取り消すことができます。Claudeではなくヘッドレス・エージェント・フレームワークを接続する場合は、代わりにドキュメントで説明しているクライアント資格証明の手順を使用します。

カスタム・コネクタを追加すると、Claudeは2つの異なる点について確認します。ユーザーがいつサインインするか、そしてClaudeが認可サーバーに対してどのOAuthクライアントとしてアクセスするかです。

ユーザーはいつサインインすべきか

オプション動作Oracle Integrationに対応
Sign in nowツールを使用できるようになる前に、すべてのユーザーがOAuthフローを完了します。はい。
Sign in when neededClaudeは資格証明なしで接続し、サーバーが401を返した時点でユーザーにサインインを求めます。利用できますが、最初の呼出しが一度失敗します。パブリック・ツールとプライベート・ツールが混在するサーバー向けです。
No sign-inオープンなサーバー、またはAPIキーをリクエスト・ヘッダーで受け取るサーバー向けです。いいえ。

ClaudeはどのOAuthクライアントを使用すべきか

ここがOCIでは重要なポイントです。

※日本オラクル追記:英語原文の公開後、OCI IAMのIdentity DomainではClient ID Metadata Document(CIMD)がサポートされるようになりました(OAuthクライアントのクライアントIDメタデータ・ドキュメント・サポート)。そのため、以下のCIMDに関する記述の一部は、現在のOCI IAMの仕様とは異なります。以下の表および説明は英語原文に沿って掲載しており、本記事では事前登録済みOAuthクライアントを使用する構成について説明します。

オプション仕組みOCI IAMでサポートされているか
Use Claude’s published identity (CIMD)認可サーバーが、AnthropicがホストするURLからClient ID Metadata Documentを取得し、ClaudeのリダイレクトURLとアイデンティティを確認します。事前登録は不要です。いいえ。
アイデンティティ・ドメインはCIMDを実装していません。
Register automatically (DCR)Claudeがサーバーの動的クライアント登録エンドポイントを呼び出し、接続するユーザーごとに、その場でクライアントを作成します。いいえ。
アイデンティティ・ドメインはDCRエンドポイントを公開していません。
Use your own OAuth clientアイデンティティ・プロバイダにクライアントを登録し、そのClient IDとClient secretをClaudeに設定します。はい。
パート1で作成したConfidential Applicationがこれに該当します。

厳密に言えば、選択肢は自ずと決まります。OCI IAMが受け入れるのは、事前登録済みのクライアントだけだからです。ただし、仮に3つの選択肢すべてが利用できたとしても、ほとんどのエンタープライズ・アイデンティティ・チームはこの方式を選ぶでしょう。

  • アプリケーションはアイデンティティ・ドメインに表示され、所有者、割り当てられたユーザーとグループの明示的なリスト、および明示的なスコープを持ちます。
  • 同意、MFA、ネットワーク・ペリメータ、サインオン・ポリシーは、他のIntegrated Applicationと同様にすべて適用されます。
  • コンソールでアプリケーションを無効にすると、すべてのClaudeユーザーからのアクセスを一括で遮断できます。ServiceInvokerロールから特定のユーザーを削除すれば、そのユーザーだけのアクセスを遮断できます。
  • 動的に何かが作成されることはないため、後から監査しなければならない匿名のクライアント登録が蓄積することもありません。

クライアント・シークレットはClaudeのバックエンドに保持され、フローのステップ7でのみ使用されます。アプリケーションはConfidential Applicationとして構成され、さらにPKCEも組み合わせて使用するため、認可コードを傍受されても、クライアント・シークレットとPKCEベリファイアの両方がなければ利用できません。

1つ知っておくべき制限があります。Anthropicは、1つのコネクタを使用するすべてのユーザーに対して同じOAuthクライアントを使用します。テナントごとに個別のクライアントが用意されるわけではありません。そのため、TeamまたはEnterpriseプランでは、組織のオーナーがIAMに1つのアプリケーションを登録し、すべてのメンバーがそのアプリケーションを介して接続します。それでも、アクセスは各ユーザー自身のIAMログインとOracle Integrationロールに基づいて、ユーザーごとに制御されます。

トラブルシューティング

現象考えられる原因修正
サインイン中にIAMでinvalid redirect URIと表示されるConfidential ApplicationにリダイレクトURLが設定されていないか、入力が間違っています。https://claude.ai/api/mcp/auth_callbackを正確に設定します(あわせてclaude.comのURLも追加します)。
同意画面は表示されるが、ツールから403エラーが返されるユーザーはトークンを取得していますが、Oracle Integrationのロールが付与されていません。Oracle cloud services → Application rolesでServiceInvokerをユーザーに割り当てます。
Claudeは接続できるが、ツールが表示されない統合はActiveですが、エージェント型AIツールとして登録されていないか、プロジェクトでMCPが有効になっていません。統合のActionsメニューからツールを作成し、プロジェクトでEnable MCP serverを選択します。
サインインには成功するが、authorization with the MCP server failedと表示されるトークン交換がブロックされています。多くの場合、Client IP addressのネットワーク・ペリメータが原因です。Anthropicの送信元IPアドレス範囲を許可するか、すべてのIPアドレスを許可するようクライアントを設定します。
ClaudeでDetectedにUse your own OAuth client以外が表示されるURLが間違ったエンドポイントを指しています。URLの末尾が/mcpで、プロジェクトの識別子が使用されていることを確認します。
Client IDまたはClient secretを変更する必要がある認証設定は、コネクタの追加後には変更できません。コネクタを削除して再度追加し、メンバーに再接続してもらいます。

まとめ

IAMにConfidential Applicationを1つ作成し、Oracle Integrationプロジェクトでチェックボックスを1つ有効にし、Claudeにカスタム・コネクタを1つ追加するだけで、公開対象として選択した統合を、ユーザーが自分自身のアイデンティティでClaudeから呼び出せるツールとして利用できるようになります。IAMアプリケーションはClaude固有のものではありません。別のクライアントのコールバックURLを追加すれば、同じプロジェクトのMCPサーバーをChatGPT、Claude Code、または独自のエージェント・フレームワークから利用できます。

どのようなものを接続したか、ぜひお聞かせください。この記事で取り上げていない問題が発生した場合は、Oracle Integrationコミュニティ・フォーラムで質問するか、Oracleの担当チームにお問い合わせください。その回答をドキュメントにも反映していきます。

リソース