Claude for Microsoft 365をBedrock・Vertex・Foundryで使う設定
Claude for Microsoft 365のOfficeアドインを、Bedrock・Vertex AI・Foundry・LLMゲートウェイ経由で配る管理者向け手順です。Macでの開き方も載せています。
はじめに
Claude for Microsoft 365は、Excel・PowerPoint・Word・OutlookにClaudeを組み込むOfficeアドインです。既定の接続先はAnthropicのClaudeアカウントです。ただしAmazon Bedrock・Google Cloud Vertex AI・Azure AI Foundry・自社LLMゲートウェイのいずれかをすでに使っている組織は、ユーザー1人ずつにClaudeアカウントを発行せずにアドインを配布できます。プロンプトと応答は自社のインフラ内にとどまります。Bedrock directとFoundryのキーレス構成なら、Microsoft Entra IDでの職場アカウントサインインだけで動きます。Outlook単体での受信トレイ整理や返信作成の使い方はClaude for Outlookの使い方にまとめています。
これはCoworkのMicrosoft 365コネクタ(Outlook・OneDrive・SharePoint・Teamsを横断検索する機能)とは別物です。コネクタ側の連携手順はClaude Cowork×Microsoft 365連携にまとめています。本記事が扱うのは、Excel・PowerPoint・Word・Outlookの中で直接動くアドインを、どの推論基盤に接続するかという管理者向けの設定です。
Claude for Microsoft 365の基本: 入手先・Macでの開き方・Claude Codeとの関係
アドインを使うだけの人と、推論基盤を指定する管理者とでは、読むべき節が違います。次の表で自分の立場を確かめてください。
| 知りたいこと | 答え |
|---|---|
| Claude for Microsoft 365とは | 答えExcel・PowerPoint・Word・OutlookのタスクペインでClaudeを動かすOfficeアドイン |
| 入手先 | 答えMicrosoft AppSource、または管理者によるテナント配布 |
| Macでの開き方 | 答えExcel・PowerPoint・Wordでは「ツール」→「アドイン」。Windowsは「ホーム」→「アドイン」 |
| Outlookでの開き方 | 答え上のメニューではなく、メールを開いたときのリボンに表示される |
| Claude Codeとの関係 | 答え別製品。ただし配布ウィザードはClaude Codeのプラグインとして動く |
アドインを自分で入れて使うだけなら、AppSourceからインストールしてClaudeアカウントでサインインします。組織で推論基盤を指定したい管理者は、次の節から読み進めてください。
4つの接続経路
管理者はデプロイ時に接続経路を1つ選びます。エンドユーザーから見える画面はどの経路でも同じです。
| 経路 | 仕組み | 向く組織 |
|---|---|---|
| LLMゲートウェイ | 仕組みLiteLLM・Portkey・Kongなどの自社ゲートウェイ経由で任意のプロバイダーへ転送。Claude Codeと同じパターン | 向く組織複数プロバイダーを一元管理したい組織 |
| Bedrock direct | 仕組みMicrosoft Entra IDで認証し、仲介なしでAmazon Bedrockを直接呼ぶ | 向く組織すでにBedrockでClaudeモデルを有効化済みの組織 |
| Vertex AI direct | 仕組みGoogle OAuthで認証し、Vertex AIを直接呼ぶ | 向く組織Google Cloudを主基盤にしている組織 |
| Foundry direct | 仕組みAzure AI Foundryリソースを直接呼ぶ。ユーザーごとのEntra IDトークン(キーレス)またはリソースのAPIキーで認証 | 向く組織Azureの契約と請求にまとめたい組織 |
いずれの経路でも、pivot.claude.aiとclaude.ai/api/はアドインの画面表示・機能フラグ評価・運用テレメトリに使われ、プロンプトや応答は通りません。
自分の状況から経路を選ぶ
経路によって、使える機能とOutlookの可否が変わります。公式ページの機能差の表と、エンドユーザー向け手順の注記を突き合わせると、次の切り分けになります。
状況別の選び方
Outlookも配布したい
Bedrock directのサインイン手順にはExcel・PowerPoint・Wordのみと注記があり、Outlookは対象外です。Outlookを含めるなら、ゲートウェイ・Vertex AI direct・Foundry directから選びます。
Web検索やコード実行が要る
Web検索はVertex direct・Foundry direct・Foundry互換の上流に転送するゲートウェイで使えます。コード実行はFoundry directとFoundry互換のゲートウェイだけです。Bedrock directはどちらにも入っていません。
複数プロバイダーをまとめたい
ゲートウェイなら、アドイン側の設定を変えずに転送先だけを差し替えられます。その代わり、CORSや必須エンドポイントの要件をゲートウェイ側で満たす必要があります。
前提条件
全経路で共通して必要なもの:
- Microsoft AppSource経由、または管理者によるテナント配布でインストール済みのClaude for Excel・PowerPoint・Word・Outlook
- Entra IDが有効なMicrosoft 365テナント(admin consent(管理者による一括同意)とトークン発行に使う)
- Outlookを使う場合は
Mail.ReadWrite・Calendars.Read・User.Read・offline_accessに対するMicrosoft Graphのadmin consent
経路ごとに追加で必要なものは次のとおりです。
| 経路 | 追加要件 |
|---|---|
| LLMゲートウェイ | 追加要件IT部門が発行するゲートウェイURLとAPIトークン |
| Bedrock direct | 追加要件対象リージョンでClaudeモデルを有効化したAWSアカウント。Entra IDトークンを信頼するIAM OIDCアイデンティティプロバイダーとロール |
| Vertex AI direct | 追加要件Vertex AI APIとClaudeモデルアクセスを有効化したGoogle Cloudプロジェクト。アドインのリダイレクトURIを設定したGoogle OAuthクライアント |
| Foundry direct | 追加要件Claudeモデルを1つ以上デプロイ済みのAzure AI Foundryリソース(デプロイ名はclaude-opus-4-6のようなデフォルトモデルIDのみ、カスタム名は不可)。加えてキーレス認証用のEntraアプリ登録、またはAzure Portalのリソースキーのどちらか |
これらのリソースは組織のIT部門が管理する対象です。Anthropicが代わりに払い出したりリセットしたりすることはありません。Claude Code Bedrockセットアップで作るIAMロールとは別に、Officeアドイン用のロールが要ります。ウィザードが作るのは、Entra IDトークンを信頼するIAM OIDCアイデンティティプロバイダーです。あわせて、bedrock:InvokeModelとbedrock:InvokeModelWithResponseStreamを許可したロールも作ります。信頼ポリシーはアドインのアプリIDに限定されます。
ネットワーク許可リスト
アクセスを許可するドメインは、Anthropic API直結(1P)かサードパーティ経由(3P)かで変わります。どちらの構成でも、プロンプトと応答が届くのは選んだ推論プロバイダーだけで、pivot.claude.aiのようなAnthropic向けドメインはアドインの画面と運用テレメトリしか扱いません。
3P構成(Entra IDでサインインし、推論はゲートウェイ・Bedrock・Vertex AI・Foundryへ向かう)で許可が必要なドメインは次のとおりです。
| ドメイン | 必要な条件 | 用途 |
|---|---|---|
pivot.claude.ai | 必要な条件常時 | 用途タスクペインUIの表示、分析、テレメトリ |
claude.ai/api/ | 必要な条件常時 | 用途サインイン不要の機能フラグ評価 |
appsforoffice.microsoft.com | 必要な条件常時 | 用途Microsoft Office.jsランタイム |
login.microsoftonline.com | 必要な条件常時 | 用途Nested App Auth経由のEntra IDサインイン、管理設定の読み取り |
| 自社ゲートウェイURL | 必要な条件ゲートウェイ利用時 | 用途推論の転送先 |
sts.amazonaws.com | 必要な条件Bedrock direct利用時 | 用途Entra IDトークンを一時的なBedrock認証情報に交換 |
bedrock-runtime.<region>.amazonaws.com | 必要な条件Bedrock direct利用時 | 用途Bedrock推論エンドポイント |
accounts.google.com / oauth2.googleapis.com | 必要な条件Vertex AI direct利用時 | 用途Google OAuthの同意画面とトークン交換 |
<region>-aiplatform.googleapis.com | 必要な条件Vertex AI direct利用時 | 用途Vertex AIリージョナル推論エンドポイント |
<resource>.services.ai.azure.com | 必要な条件Foundry direct利用時 | 用途Azure AI Foundry推論エンドポイント |
graph.microsoft.com | 必要な条件Outlook利用時 | 用途メールボックス・カレンダーAPI |
o1158394.ingest.us.sentry.io | 必要な条件任意 | 用途クラッシュ・エラー報告。止めても診断情報が減るだけ |
表のほかに、見落としやすい条件が3つあります。
- Vertex AI directでは、グローバルの
aiplatform.googleapis.comも許可が要ります。リージョン別の<region>-aiplatform.googleapis.comだけでは足りません - Foundry directで
azure_base_urlに自社ゲートウェイを指定している間は、<resource>.services.ai.azure.comへ接続しません。許可するのはゲートウェイのドメインです - 後述の「組織提供設定」を使う場合は、
claude.aiとapi.anthropic.comも許可が必要です。メンバーがclaude.aiでサインインし、設定をapi.anthropic.comから読むためです。推論は設定に書かれたプロバイダーにだけ向かいます
管理者側のデプロイ手順
配布にはclaude-for-msft-365-installプラグインを使います。クラウドリソースのプロビジョニング、マニフェスト生成、admin consentの取得を1つのウィザードにまとめたものです。
claude plugin marketplace add anthropics/financial-services
claude plugin install claude-for-msft-365-install@claude-for-financial-servicesデプロイのたびにプラグインが最新か確認します。古ければ更新してからセットアップに進みます。
claude plugin update claude-for-msft-365-install@claude-for-financial-servicesインストール後、Claude内からセットアップウィザードを実行します。
/claude-for-msft-365-install:setupウィザードは選んだ経路に応じて次の作業をガイドします。ゲートウェイ・Bedrock・Vertex AIでは、最後にマニフェストの生成とAzure admin consentまで進みます。
- Bedrock direct: IAM OIDCアイデンティティプロバイダーとロールを作成します
- Vertex AI direct: Google OAuthクライアントの作成をガイドします
- Foundry direct: リソース名とAPIキーを取得します
- LLMゲートウェイ: リソース作成が不要で、URLとトークンの入力だけでマニフェストが生成されます
BedrockとVertex AIの経路はマニフェスト生成にNode.jsを使うため、未インストールならウィザードが導入を促します。
Foundry directのウィザードは、リソース名とAPIキーだけでマニフェストを作ります。キーレスのEntraサインインにしたいときは、生成されたマニフェストのURLに後述のパラメーターを自分で足します。
プラグインが提供するコマンドは次のとおりです。
| コマンド | 機能 |
|---|---|
/claude-for-msft-365-install:setup | 機能対話式ウィザード本体 |
/claude-for-msft-365-install:manifest | 機能アドインのマニフェストXMLを生成 |
/claude-for-msft-365-install:consent | 機能Azure admin consent用URLを生成 |
/claude-for-msft-365-install:update-user-attrs | 機能ユーザーごとの設定をMicrosoft Graph拡張属性に書き込む |
/claude-for-msft-365-install:bootstrap | 機能ユーザー別のMCPサーバー・スキル・動的設定を返すbootstrapエンドポイントを作る |
/claude-for-msft-365-install:debug | 機能接続失敗・サインインループ・古い設定などの診断 |
/claude-for-msft-365-install:export-data | 機能端末入れ替え前にチャット履歴・スキル・コネクタ登録を読み取り専用でコピー |
接続やサインインで想定外の挙動があれば、まず/claude-for-msft-365-install:debugを実行します。接続失敗画面の「Copy error details」を貼り付けると、症状から原因を切り分けてくれます。
ユーザー別設定の解決順と資格情報の置き場所
チームごとにゲートウェイトークンやAWSロールを変えたいときは、初期設定のあとにユーザー別の値を書き込みます。コマンドは/claude-for-msft-365-install:update-user-attrsです。アドインは起動時に、設定キーごとに次の順で値を探します。
設定値の解決順(先に見つかった値が優先)
- 1
bootstrapエンドポイント
bootstrap_urlが指すエンドポイントです。最優先で、ユーザーごとの値を動的に返せます。 - 2
Entra IDの拡張属性
Microsoft Graphの拡張属性に書いたユーザー別の値です。マニフェストの既定値を上書きします。
- 3
マニフェストのパラメーター
全員共通の既定値です。1つのマニフェストで、属性を持つチームと持たないチームの両方をまかなえます。
マニフェストのURLに資格情報を直接書く構成には注意点があります。次のキーをクエリ文字列に置くと、ブラウザが読み込みのたびにサーバーへ送ります。
gateway_token・azure_api_key・google_client_secret・otlp_headers・inference_headers・mcp_servers
URLのどこに値を置くか
? の後(クエリ文字列)
リクエストとしてpivot.claude.ai側に届き、リクエストログに記録されます。アドインは該当キーを検知するとコンソールに警告を出し、2026年10月19日以降はクエリ側の値を無視します。
# の後(フラグメント)
ブラウザの中にとどまり、サーバーには送られません。bootstrapエンドポイントか、gateway_auth_source=entraによるEntra IDサインインを使えば、そもそも資格情報をURLに書かずに済みます。
公式の変更例は次のとおりです。SourceLocationとTaskpane.Urlの両方に適用し、XML内では&を&と書き、Microsoft 365管理センターで再デプロイします。
before: https://pivot.claude.ai/?gateway_url=https://ai-gateway.example.com/v1&gateway_token=sk-gw-xxxxx&m=excel3p-1.0.0.1
after: https://pivot.claude.ai/?gateway_url=https://ai-gateway.example.com/v1&m=excel3p-1.0.0.1#gateway_token=sk-gw-xxxxxOutlookは別マニフェスト
メールアプリ向けのスキーマはMicrosoftが別に定めています。そのため、Excel・PowerPoint・Wordとは別のマニフェストファイル(manifest-outlook.xml)が生成されます。Microsoft 365管理センターへは、それぞれを別のカスタムアプリとしてアップロードします。OutlookのメールボックスアクセスはMicrosoft Graphを通るため、どの推論基盤を選んでもGlobal Administratorによる一度きりのGraph admin consentが必要です。サードパーティ基盤経由のOutlookは、Claude Opus 4.7以降とClaude Sonnet 5以降だけに対応します。それより前のモデル世代はOutlookでは使えません。Graphのトークンはユーザーの端末内にとどまり、ゲートウェイにもAnthropicにも送られません。
組織のポリシーでAnthropicが発行するマルチテナントアプリへの同意が認められない場合は、同じ委任権限を持つ自社のシングルテナントEntraアプリを登録し、そのクライアントIDをウィザードにgraph_client_idとして渡します。
Microsoft 365への配布
Microsoft 365管理センターでの配布
- 1
マニフェストをアップロード
「設定」→「統合されたアプリ」→「カスタムアプリのアップロード」で、アプリの種類に「Officeアドイン」を選び
manifest.xmlを上げます。Outlookも配るなら、manifest-outlook.xmlを2つ目のカスタムアプリとして追加します。 - 2
配布範囲を選ぶ
全員が同じ設定なら「組織全体」です。ユーザー別の属性を書いたなら「特定のユーザー/グループ」を選び、設定した対象とぴったり合わせます。外れたユーザーは設定のないアドインを開くことになります。
- 3
権限を承諾して完了
承諾後、反映まで最大24時間かかります。通常はもっと早く終わります。
配布後、Excel・PowerPoint・Wordでは、Windowsなら「ホーム」→「アドイン」、Macなら「ツール」→「アドイン」に並びます。Outlookはメールを開いたときのリボンに出ます。範囲は再デプロイなしで後から変えられるので、最初はパイロットグループに絞る進め方があります。
マニフェスト配布まわりでは、アドインが出ない・更新後も古い設定のまま・サインインやadmin consentがループする、といった問題が起きやすいと公式は説明しています。/claude-for-msft-365-install:debugは、本番へ上げる前にマニフェストをローカルでサイドロードして検証する用途にも使えます。
機能を個別に無効化する
disabled_featuresキーを使うと、ユーザーごと・組織全体で個別機能を止められます。
| スラグ | 効果 |
|---|---|
skills.authoring | 効果スキルの作成・編集・アップロードを禁止(管理者が用意したスキルの実行は可能) |
thumbs | 効果フィードバック(高評価・低評価)を無効化 |
addin.access | 効果アドイン自体を停止するキルスイッチ |
file.upload | 効果ファイル添付を禁止 |
web_search | 効果組み込みのWeb検索・Web取得ツールを削除(コード実行は対象外) |
web_searchを無効化しつつmcp_serversキーで自社の検索ツールを接続すれば、検索クエリを自社インフラ内に留められます。disabled_featuresは、マニフェストのパラメーター(カンマ区切り)でも、Entra IDの拡張属性(カンマ区切り)でも渡せます。bootstrapエンドポイントならJSON配列です。全社共通にもユーザー別にもできます。知らないスラグは無視されるため、新しいバージョンのスラグを古い配備に書いても害はありません。
文書単位で止めたいとき、たとえば特定の秘密度ラベルが付いたファイルだけ機能を切りたいときは、access_policiesキーを使います。リソースを指定しない文はdisabled_featuresと同じ動きになります。
組織提供設定(プレビュー)
マニフェストのパラメーター・拡張属性・bootstrapの代わりに、Anthropicが設定をClaude組織のメンバーへ直接配る方式もあります。メンバーは「Log in」でClaudeアカウントにサインインするだけで、ゲートウェイURLやAPI形式、使えるモデルが入力済みの接続画面が開きます。
この方式は、公式の記述ではプレビュー段階で、本番の組織にはまだ有効化されていません。使う場合の性質は次のとおりです。
- 提供された設定が唯一の設定元になり、マニフェストや拡張属性とはマージされません
- 提供設定が
bootstrap_urlを含んでいても無視され、メンバーのトークンはそこへ送られません - 設定の変更は再デプロイなしで反映されます。Claude組織の管理者とMicrosoft 365の管理者は別の人でかまいません
- サインイン用のトークンは推論には使えず、Office間で引き継がれません。別のOfficeアプリでは再ログインを求められることがあります
ゲートウェイ側の要件
ゲートウェイを選ぶ場合、アドインのタスクペインはhttps://pivot.claude.aiから読み込まれるため、ゲートウェイへの通信はすべてクロスオリジンになります。CORSヘッダーがない応答は、ブラウザが何も言わずに捨てます。
Access-Control-Allow-Origin: https://pivot.claude.ai(または*)を、すべての応答に付けます。GET・POST・OPTIONSとエラー応答を含み、プリフライトだけでは足りません- プリフライトでは
Access-Control-Allow-Headersに、アドインが送るヘッダーを列挙します。x-api-key, authorization, content-type, anthropic-versionなどです *のワイルドカードはFetch仕様上Authorizationを含まないので、gateway_auth_header: authorizationにするなら明示的に書きます
gateway_api_formatで、ゲートウェイが話すAPI形式を指定します。形式ごとに必須のエンドポイントが違います。
gateway_api_format | 必須エンドポイント | 補足 |
|---|---|---|
anthropic(既定) | 必須エンドポイントPOST /v1/messages、GET /v1/models | 補足anthropic-versionヘッダーを上流へ転送する |
bedrock | 必須エンドポイントPOST /model/{model-id}/invoke、.../invoke-with-response-stream | 補足gateway_urlはパススルーの接頭辞(例: https://litellm.example.com/bedrock)。anthropic_versionは本文に入るので保持する |
vertex | 必須エンドポイントPOST .../models/{model-id}:rawPredict、:streamRawPredict | 補足gateway_urlにAPIバージョンの区間を含める。gcp_project_idとgcp_regionも要る |
モデル一覧の取得も形式で変わります。anthropic形式ではログイン時にGET /v1/modelsで探し、無ければモデルIDの手入力を求めます。bedrockとvertexでは内蔵のモデル一覧を使い、各モデルにゲートウェイ越しの疎通確認をかけます。
LiteLLMを使う場合の設定例も公式にあります。Bedrockへ流す例は次のとおりです。
model_list:
- model_name: claude-opus-4-7
litellm_params:
model: bedrock/us.anthropic.claude-opus-4-7
aws_region_name: us-east-1
litellm_settings:
drop_params: true公式はあわせて、LiteLLMのPyPI版1.82.7と1.82.8に認証情報を盗むマルウェアが含まれていたと警告しています。該当版は入れず、入れてしまった場合はパッケージを削除し、影響を受けた環境の認証情報をすべてローテーションします。
Foundryでは、Azure API Managementのような自社ゲートウェイをazure_base_urlで指定できます。値はClaude CodeのANTHROPIC_FOUNDRY_BASE_URLと同じものを使い、HTTPSが必須です。このときアドインはanthropic-betaヘッダーを送ります。キーレスならauthorizationも送ります。プリフライトで両方を許可し、anthropic-betaをFoundryまで転送してください。
エンドユーザーの接続手順
LLMゲートウェイの場合は、アドインのサインイン画面で「Cloud provider or gateway」を選び、ゲートウェイのURLとAPIトークンを入力します。既定ではトークンをx-api-keyヘッダーで送りますが、管理者がマニフェストでgateway_auth_header: authorizationを指定していればAuthorization: Bearer形式になります。認証情報はブラウザのlocalStorage内(アドインのサンドボックス化されたiframe)に保存され、Anthropicのサーバーには同期されません。Claude Codeと違ってOSのキーチェーンは使えないため、入力するのはゲートウェイが発行したトークンに限ります。クラウドプロバイダーの生の認証情報は入力しません。
ゲートウェイトークンの期限切れや接続先URLの変更では、アカウントメニューから「Logout」して入れ直します。これはゲートウェイ・Bedrock・Vertex AI・Foundryのどのdirect接続でも同じです。
Bedrock・Vertex AI・Foundryのdirect接続では、経路ごとに接続の流れが異なります。
- Bedrock(Excel・PowerPoint・Wordのみ): ユーザーが自分のMicrosoft職場アカウントでサインインすると、Entra IDトークンでAWSロールを引き受けます
- Vertex AI: 管理者が作成したGoogle OAuthクライアント経由でGoogleアカウントサインインを行います
- Foundry: リソース名とAPIキーが事前設定されていれば自動接続します。キーレス設定なら職場アカウントのサインインだけで接続します
FoundryのAPIキーなし接続
共有のリソースキーの代わりに、ユーザーごとのMicrosoft Entra IDトークンで認証する構成も選べます。トークンはOffice内のNested App Authenticationで取得され、<resource>.services.ai.azure.comへAuthorization: Bearerとして送られます。期限が切れる前に自動更新され、端末にキーは保存されません。設定には、Entraアプリ登録へのuser_impersonation委任権限の付与と、対象ユーザーへのCognitive Services Userロール付与の両方が必要です。このアプリ登録は、Claude Desktopのアプリ内Foundryサインインが使うinferenceFoundryClientIdと同じもので、アドインのリダイレクトURIを追加して使います。
マニフェストURLには、azure_api_keyを入れずに次のパラメーターを置きます。
| パラメーター | 値 |
|---|---|
azure_resource_name | 値Foundryリソース名 |
entra_sso | 値1 |
graph_client_id | 値Entraアプリ登録のアプリケーション(クライアント)ID |
entra_scope | 値https://cognitiveservices.azure.com/.default |
gateway_auth_source | 値entra |
gateway_auth_source=entraのときは、渡されたazure_api_keyも無視されます。管理者がキーレスを選んだものとして扱われるためです。静かなサインインができない場合、ユーザーには初回だけMicrosoftのサインイン画面が出ます。
Claude Codeのゲートウェイ設定との違い
すでにClaude Codeをゲートウェイ経由で運用しているチームにとって、Officeアドインの設定は次の点が異なります。
| 観点 | Claude Code | Officeアドイン |
|---|---|---|
| 認証情報の保存先 | Claude CodeOSキーチェーンまたは環境変数 | OfficeアドインブラウザのlocalStorage(サンドボックス化されたiframe内) |
| 認証設定 | Claude Code環境変数・設定ファイル・ヘルパースクリプト | OfficeアドインアドインUIへの手入力(ゲートウェイ)、Entra ID・Google OAuth・Azure APIキー(direct接続) |
| トークン更新 | Claude Codeローテーション用ヘルパースクリプトに対応 | Officeアドインゲートウェイはbootstrapエンドポイント経由で自動。Bedrock・キーレスFoundryはEntra ID、Vertex AIはGoogle OAuthで自動。手入力したゲートウェイトークンはローテーション時にサインアウトして入れ直す |
| カスタムモデル名 | Claude Code環境変数で設定可能 | Officeアドイン現バージョンでは非対応 |
bootstrapエンドポイントを使う場合、アドインは応答に書かれた有効期限の約5分前にエンドポイントを呼び直し、返ってきたトークンを実行中のセッションに適用します。期限前にゲートウェイが認可エラーを返したときも、1回だけ呼び直して、トークンが変わっていれば再試行します。手入力したトークンにこの仕組みは働きません。
Claude CodeのVS Code拡張で同じ3経路を使う設定は、VS Code拡張でサードパーティプロバイダーを使う設定にあります。
Claudeアカウント接続との機能差
サードパーティ基盤経由では、一部の機能がまだ使えません。
| 機能 | Claudeアカウント | サードパーティ基盤 |
|---|---|---|
| スプレッドシート・スライド・ドキュメント・メールとのチャット | Claudeアカウント○ | サードパーティ基盤○ |
| セル・スライド・数式・文書テキストの読み取りと編集 | Claudeアカウント○ | サードパーティ基盤○ |
| メールボックス・カレンダーの読み取りと検索(Outlook) | Claudeアカウント○ | サードパーティ基盤○ |
| コネクタ(S&P、FactSet等) | Claudeアカウント○ | サードパーティ基盤対応予定 |
| アプリをまたいだ作業 | Claudeアカウント○ | サードパーティ基盤非対応 |
| 音声入力 | Claudeアカウント○ | サードパーティ基盤非対応 |
| スキル | Claudeアカウント○ | サードパーティ基盤対応予定 |
| ファイルアップロード | Claudeアカウント○ | サードパーティ基盤非対応 |
| Web検索 | Claudeアカウント○ | サードパーティ基盤Vertex direct・Foundry direct、Foundry互換の上流に転送するゲートウェイのみ |
| コード実行 | Claudeアカウント○ | サードパーティ基盤Foundry direct、Foundry互換の上流に転送するゲートウェイのみ |
公式は「Support is being added」と述べているので、「対応予定」の行は今後変わる可能性があります。Claudeアカウントで組織提供設定にサインインしたメンバーは、推論が組織のプロバイダーへ向かうため、この表ではサードパーティ基盤の列に入ります。
よくあるつまずき
「Connection refused」やネットワークエラー: ゲートウェイURLやクラウドエンドポイントにユーザーの端末から到達できていません。URLの正しさ、サービスの稼働、ファイアウォールやVPNの制限を確認し、ネットワーク許可リストのドメインが通っているか見直します。
401 Unauthorized・「Invalid token」: 認証トークンが無効または期限切れです。ゲートウェイならIT部門にトークンを確認します。direct接続ならEntra IDアカウントが対象グループに入っているか、OIDC信頼関係やOAuthクライアントの設定を確認します。FoundryのAPIキー構成ならAzure Portalでキーを再生成し、キーレス構成ならentra_scopeがhttps://cognitiveservices.azure.com/.defaultになっているか確認します。
403 Forbidden・「Access denied」: トークンは有効でも権限が足りません。Bedrockならbedrock:InvokeModel権限を確認します。Vertex AIならプロジェクトのVertex AI Userロールを確認します。Foundryならリソースのネットワーク設定やCognitive Services Userロールを確認します。
404 Not found: ゲートウェイのURL欄にベースURLだけを入れているか確認します。/v1/messagesのようなパスまで含めると失敗します。
「No models available」: gateway_api_format: anthropicのゲートウェイがGET /v1/modelsでモデル一覧を返していない可能性があります。BedrockやVertex direct接続なら、対象リージョン・プロジェクトでClaude Sonnet 4.5以降のモデルが有効か確認します。bedrock・vertex形式のゲートウェイなら転送先リージョン・プロジェクトでモデルが有効か、Foundryならリソースのモデルカタログに1つ以上デプロイされているかを確認します。
500などのサーバーエラー: ゲートウェイかクラウドプロバイダーの内部エラーです。LiteLLMならゲートウェイのログ(docker logs litellmなど)で上流のエラーを確認します。
ブラウザのコンソールにCORSエラーが出る・応答が空になる: ゲートウェイが一部の応答にだけCORSヘッダーを付けている可能性があります。前節のとおり、エラー応答を含む全応答に必要です。
ストリーミング応答が止まる・返らない: ゲートウェイがServer-Sent Eventsをそのまま通しているか確認します。プロキシ設定によってはSSE接続をバッファリングしてしまい、ストリーミングが届きません。
データの扱い
Bedrock経由の課金体系は直接APIと単価やリージョン加算の扱いが異なるため、コスト試算はBedrockのClaude料金は直接APIとどう違うかで先に押さえておくと、Officeアドインの利用量が増えたときの見積もりがしやすくなります。
推論を自社インフラ経由にしても、アドインは画面表示のためにpivot.claude.ai、機能フラグ評価のためにclaude.ai/api/と通信します。ここで送られるのは使われた機能・処理時間・エラー率といった運用テレメトリだけで、プロンプトや応答は含まれません。Anthropicは顧客のAWS・Google・Microsoftインスタンス(プロンプトや出力を含む)にアクセスしません。そこからモデルを学習させることもありません。一方でツールの使用状況やトークン数といったメタデータにはアクセスでき、分析と製品改善に使います。プロンプト・ツール入出力を含む完全な監査ログを自社インフラへ流したい場合は、カスタムOpenTelemetryコレクターの設定で対応します。
サインイン時にpivot.claude.aiへリダイレクトされる理由
ブラウザがhttps://pivot.claude.ai/auth/callbackへ戻される場面は3つあります。VertexのGoogleサインイン、Anthropicのサインイン、Microsoftのadmin consentです。セキュリティ審査では、アクセストークンがAnthropicのサーバーを通るのかが論点になります。公式の説明は次のとおりです。
- URLに入るのは、一度きりの認可コード(
code)と、アドインが生成したstateだけです。コードは単体ではトークンに交換できません - 交換にはアドイン側だけが持つ秘密が要ります。AnthropicサインインではPKCEの検証値、Vertexでは組織が作ったGoogle OAuthクライアントの
client_secretです - コールバックページは静的ページで、コードを表示してコピーさせ、Office内のアドインへ貼り戻させます。サーバー側でコードを保存・転送・交換する処理はありません
- ループバック(localhost)宛にできないのは、OfficeアドインがMicrosoft 365上のサンドボックス化されたフレームで動き、受け側のローカルWebサーバーがないためです
- Microsoftのadmin consentで戻るURLに入るのは、
admin_consentの真偽値とテナントIDだけです。Graphのトークンは、Nested App Authenticationでアドインが直接受け取ります
検証したいときは、テスト機でネットワークキャプチャを取ります。リダイレクトにaccess_tokenが現れないこと、コード交換のPOSTがpivot.claude.aiではなくoauth2.googleapis.comなどへ向かうことを確認できます。Anthropicのアプリ登録は、表示名が「Claude for Office」、発行元がAnthropic, PBC(確認済み発行元)です。アプリケーションIDはc2995f31-11e7-4882-b7a7-ef9def0a0266です。同意画面やテナント内のエンタープライズアプリが、この値と一致するかを見てください。
まとめ
設定の難所は、経路の選択と、ユーザー別設定の置き場所の2か所にあります。Outlookが要るならBedrock directは外れ、Web検索やコード実行が要るならFoundry系かVertex directに絞られます。資格情報はURLのクエリ文字列ではなく、bootstrapエンドポイントかEntra IDサインインに寄せておく構成が、2026年10月19日以降の仕様変更にも耐えます。