Claude Code を Microsoft Foundry で使う: 認証と環境変数の設定

Claude Code エンジニアリング 6分で読めます

Claude Code は Anthropic の API だけでなく、Microsoft Foundry(Azure)にデプロイした Claude モデル経由でも動かせます。利用料は Azure Marketplace を通じて Azure の請求にまとまり、認証も Azure の API キーや Microsoft Entra ID で管理できます。この記事では、公式ドキュメント「Claude Code on Microsoft Foundry」に沿って、リソースの準備から環境変数の設定、モデルの固定、つまずきやすい点までを順に説明します。

前提条件とリソースの準備

公式が挙げる前提条件は次の3つです。

複数のユーザーに Claude Code を配布する場合は、展開する前に後述の「モデルのバージョンを固定する」を済ませておくよう公式は注意しています。

リソースとデプロイを作る

Foundry は2階層の構成で、リソースがセキュリティと請求の設定を持ち、その中のデプロイが API から呼び出すモデルの実体です。

  1. Microsoft Foundry ポータルを開く
  2. 新しいリソースを作成し、リソース名を控える
  3. Claude Opus・Claude Sonnet・Claude Haiku のデプロイを作成し、それぞれに付けたデプロイ名を控える(後でモデル用の環境変数に設定します)

デプロイを構成するときはホスティングオプションも選びます。推論を Azure のインフラで動かす「Hosted on Azure」と、Anthropic のインフラで動かす「Hosted on Anthropic」があり、Azure 側でホストする場合はコード実行や Files API など一部の API 機能が使えません。Claude Code は Azure ホストのデプロイを検出して、使う機能を自動で調整すると API 側の公式ドキュメントは説明しています。

Azure の認証情報を設定する

Claude Code は Microsoft Foundry 向けに3つの認証方法をサポートしています。セキュリティ要件に合うものを1つ選びます。

方法設定するもの向いている場面
API キーANTHROPIC_FOUNDRY_API_KEYポータルでキーを発行して使う
Microsoft Entra ID何も設定しない(Azure SDK の既定の資格情報チェーンを使う)az login などでキーを保存したくない
ベアラートークンANTHROPIC_FOUNDRY_AUTH_TOKEN別のプロセスがアクセストークンを取得済み

Foundry を使っているあいだは認証を Azure の資格情報で行うため、/logout コマンドは使えません。

API キーを使う

ポータルでリソースを開き、Endpoints and keys から API Key をコピーして環境変数に設定します。

export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key

キーは誰でもリソース経由で Claude を呼び出せる資格情報なので、バージョン管理にコミットしたり公開したりしないでください。

Microsoft Entra ID を使う

ANTHROPIC_FOUNDRY_API_KEY と ANTHROPIC_FOUNDRY_AUTH_TOKEN をどちらも設定しないでおくと、Claude Code は Azure SDK の既定の資格情報チェーン(DefaultAzureCredential)でトークンを取得します。ローカルマシンでは Azure CLI でサインインしておくだけです。

az login

その ID に必要なロールは、後述の「RBAC とトラブルシューティング」を参照してください。

ベアラートークンを使う

ホストアプリケーションやサインイン用スクリプトなどがすでに Entra ID のアクセストークンを取得している場合は、それを ANTHROPIC_FOUNDRY_AUTH_TOKEN に渡します。Claude Code はこの値をすべてのリクエストで Authorization: Bearer ヘッダーとして送ります。この方法は Claude Code v2.1.203 以降が必要です。

export ANTHROPIC_FOUNDRY_AUTH_TOKEN=your-entra-access-token

ANTHROPIC_FOUNDRY_AUTH_TOKEN は ANTHROPIC_FOUNDRY_API_KEY と既定の資格情報チェーンのどちらよりも優先されます。

Claude Code を Foundry に向ける

次の環境変数で Foundry 連携を有効にし、接続先のリソースを指定します。

# Microsoft Foundry 連携を有効にする
export CLAUDE_CODE_USE_FOUNDRY=1

# Azure のリソース名({resource} を自分のリソース名に置き換える)
export ANTHROPIC_FOUNDRY_RESOURCE={resource}
# またはベース URL を丸ごと指定する
# export ANTHROPIC_FOUNDRY_BASE_URL=https://{resource}.services.ai.azure.com/anthropic

ANTHROPIC_FOUNDRY_RESOURCE には my-resource のようなリソース名だけを入れます。URL やホスト名を入れると、メッセージを送った時点で Claude Code が拒否します。URL を指定したい場合は ANTHROPIC_FOUNDRY_BASE_URL の方を使います。

起動して確認する

変数を設定したら、プロジェクトのディレクトリで claude を起動します。Claude Code は最初のプロンプトの時点で Azure のリソースへ接続します。Amazon Bedrock や Google Cloud と違って Foundry には対話式のセットアップウィザードがないため、環境変数が唯一の設定経路です。

接続先を確かめるには、Claude Code の中で /status を実行します。API provider の行に Microsoft Foundry と、設定したリソース名またはベース URL が表示されれば設定は効いています。常に Foundry を使いたい場合は、設定ファイルの env ブロックに同じ変数を書いておく方法もあります。

モデルのバージョンを固定する

公式はすべてのデプロイでモデルのバージョンを固定するよう強く勧めています。固定しないと、sonnet や opus といったエイリアスは Claude Code に組み込まれた Foundry 向けの既定値に解決されます。この既定値は最新リリースより遅れていることがあり、自分のアカウントでまだ使えない場合もあります。Foundry には起動時のモデル確認がないため、既定のモデルが使えないとリクエストが失敗します。Azure でデプロイを作るときも「最新に自動更新」ではなく特定のモデルバージョンを選びます。

モデル用の変数には、手順1で作成したデプロイ名を設定します。

export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'
export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-5'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'

公式によると、ANTHROPIC_DEFAULT_OPUS_MODEL を設定しない場合、Foundry 上の opus エイリアスは Opus 4.6 に解決されます。上の値は公式の例で、実際には自分のデプロイ名に置き換えてください。

バックグラウンド処理のモデル

セッションタイトルの生成などのバックグラウンド処理には、通常 Haiku クラスの小型・高速モデルが使われます。ただし Foundry ではすべてのアカウントに Haiku のデプロイがあるとは限らないため、既定ではメインのモデルが使われます。バックグラウンド処理に Haiku を使いたい場合は、アカウントで使える Haiku のデプロイを ANTHROPIC_DEFAULT_HAIKU_MODEL に設定します。モデル関連の変数の全体はモデル設定の記事も参考になります。

プロンプトキャッシュ

プロンプトキャッシュは自動で有効になります。既定の5分ではなく1時間の TTL にしたい場合は ENABLE_PROMPT_CACHING_1H=1 を設定します。1時間 TTL のキャッシュ書き込みは割高な料金で課金される点に注意してください。

RBAC とトラブルシューティング

必要な Azure ロール

既定のロールのうち Azure AI User と Cognitive Services User には、Claude モデルの呼び出しに必要な権限がすべて含まれています(API 側の公式ドキュメントでは Azure AI User は Foundry User に名称変更されたと記載されています)。権限をさらに絞りたい場合は、次の dataActions を持つカスタムロールを作成します。

{
  "permissions": [
    {
      "dataActions": [
        "Microsoft.CognitiveServices/accounts/providers/*"
      ]
    }
  ]
}

よくあるエラーと直し方

症状原因直し方
Failed to get token from azureADTokenProvider: ChainedTokenCredential authentication failedAPI キーが無く、Entra ID の資格情報も取得できない環境で Entra ID を構成する(az login など)か、ANTHROPIC_FOUNDRY_API_KEY を設定する
最初のプロンプトで接続エラーが繰り返されるANTHROPIC_FOUNDRY_RESOURCE がプレースホルダーのままなどで、存在しないホストを指している実際のリソース名を設定し直す(エンドポイント URL はこの値から組み立てられる)
リソース名に関するエラーでメッセージが送れないANTHROPIC_FOUNDRY_RESOURCE に URL やホスト名を入れたリソース名だけにするか、URL は ANTHROPIC_FOUNDRY_BASE_URL に移す
エイリアスで呼んだモデルが見つからずリクエストが失敗するモデルを固定しておらず、既定のモデルがアカウントで使えないANTHROPIC_DEFAULT_*_MODEL に自分のデプロイ名を設定する

API 側の公式ドキュメントでは、403 Forbidden は RBAC ロールの不足、401 は API キーの誤りや Entra ID トークンの失効(通常1時間で失効)が原因として挙げられています。Amazon Bedrock や Google Vertex AI でつなぐ手順はAmazon Bedrock の記事とGoogle Vertex AI の記事、社内ゲートウェイを挟む場合はLLM ゲートウェイの記事を参照してください。

本記事は Anthropic 公式ドキュメント「Claude Code on Microsoft Foundry」と「Claude in Microsoft Foundry」に基づく非公式の日本語解説です(確認日 2026-10-08)。仕様やバージョン要件は更新される場合があるため、利用前にClaude Code on Microsoft FoundryとClaude in Microsoft Foundryをご確認ください。