Claude Media
ClaudeをMicrosoft Foundryで使う — 直接APIとの違いとSDK認証

ClaudeをMicrosoft Foundryで使う — 直接APIとの違いとSDK認証

Microsoft Foundry経由でClaudeを呼び出すときの認証方式・対応モデル・使えない機能を、直接APIとの違いとしてまとめます。

Microsoft Foundryは、Azureのサブスクリプションと請求の中でClaudeを呼び出せる提供経路です。モデルの中身は直接APIと同じですが、認証方式・課金単位・使える機能の範囲はFoundry側の枠組みに従います。Claude Opus 5・Sonnet 5・Haiku 4.5をはじめとする複数モデルがGlobal StandardとUS Data Zone Standardのデプロイタイプで公開されており、Python・TypeScript・C#・Java・PHPの各SDKに加え、cURLやREST APIからも呼び出せます。直接APIとの違いの所在と、Foundryリソースを作ってから最初のリクエストを送るまでの手順を確認します。

Microsoft Foundryとは何か

Microsoft Foundryは、AzureサブスクリプションからClaudeを含む複数ベンダーの基盤モデルをデプロイ・運用するプラットフォームです。Claudeの推論はAnthropicが運用しますが、ホスティング先を「Azureインフラ上」と「Anthropicインフラ上」の2種類から選べる点が、Amazon Bedrockや直接APIには無いFoundry固有の設計です。

Foundryの構造は2階層です。リソースがセキュリティと課金の設定単位で、その中にデプロイ(実際にAPIから呼び出すモデルのインスタンス)を作成します。1つのリソースに複数のデプロイを持たせ、レート制限やモデルバージョンを別々に管理することもできます。

Claude Codeを使っている場合は本記事の対象外です。Claude CodeをMicrosoft Foundry経由で動かす環境変数の設定はClaude Code Microsoft Foundry設定ガイドにあります。本記事が扱うのは、SDKやREST APIから直接Claudeを呼び出してアプリケーションを構築する開発者向けの手順です。

なぜFoundry経由でClaudeを使うのか

企業がFoundry経由を選ぶ主な理由は3つです。1つ目はAzureの請求に統合できること。ClaudeはMicrosoft Azure Consumption Commitment(MACC)の対象になり、既存のAzure契約や請求フローの中で使えます。2つ目はAzureのガバナンス機構(Entra ID・RBAC・Virtual Network)をそのまま適用できること。3つ目はAzure MonitorやLog Analyticsといった既存の監視基盤で利用状況を追跡できることです。

直接APIとの違い — ホスティングオプションで変わる範囲

Foundry上のClaudeには「Hosted on Azure」と「Hosted on Anthropic」の2つのホスティングオプションがあり、デプロイ作成時にどちらかを選びます。

項目Hosted on AzureHosted on Anthropic
推論の実行場所Hosted on AzureAzureインフラ上のAnthropic運用サービスHosted on AnthropicAnthropicインフラ上のAnthropic運用サービス
対応モデルHosted on AzureOpus・Sonnet・Haikuの最新モデルのみHosted on AnthropicFoundryで提供される全モデル
デプロイタイプHosted on AzureGlobal Standard / US Data Zone StandardHosted on AnthropicGlobal Standardのみ
向いている用途Hosted on AzureほとんどのワークロードHosted on AnthropicAzure未対応の機能・モデルへのアクセス

Hosted on Azureのデプロイでは、code execution・web search(web_search_20250305より新しいバージョン)・web fetch(web_fetch_20250910より新しいバージョン)・Agent Skills・プログラマティックツール呼び出し・Files APIが使えません。これらの機能を使うリクエストはAzureホストのデプロイに対して400 Bad Requestを返します。Claude CodeはAzureホストのデプロイを自動検知して機能セットを調整しますが、自前のSDK実装ではこの分岐を自分のコードに組み込む必要があります。

ホスティングに関わらずFoundry全体で使えない機能もあります。Admin API・Advisor tool・Claude Managed Agents・Compliance API・Models API・Message Batches API・サーバーサイドフォールバック(fallbacksパラメータ)・Computer use / browser useの新しいツールセットです。サーバーサイドフォールバックの代わりには、クライアント側でのフォールバック実装が必要になります。

Claude Fable 5.1・Fable 5・Opus 5・Opus 4.8・Opus 4.7・Opus 4.6・Sonnet 5・Sonnet 4.6は1Mトークンのコンテキストウィンドウに対応しますが、Sonnet 4.5を含む一部モデルは200kトークンのままです。Bedrock経由の制約はAmazon BedrockでClaudeを使う、Claude Code側の対応状況の一覧はBedrock/Vertex/FoundryでClaude Codeが使えない機能一覧で個別に確認できます。

利用できるモデルとデプロイ名

モデルデフォルトのデプロイ名
Claude Opus 5デフォルトのデプロイ名claude-opus-5
Claude Opus 4.8デフォルトのデプロイ名claude-opus-4-8
Claude Sonnet 5デフォルトのデプロイ名claude-sonnet-5
Claude Haiku 4.5デフォルトのデプロイ名claude-haiku-4-5
Claude Opus 4.7 / 4.6 / 4.5デフォルトのデプロイ名claude-opus-4-7等
Claude Sonnet 4.6 / 4.5デフォルトのデプロイ名claude-sonnet-4-6等
Claude Fable 5.1 / 5デフォルトのデプロイ名claude-fable-5-1等

Hosted on Azureで対象になるのは、公式ドキュメントの表現では「Opus・Sonnet・Haikuファミリーの最新モデル」のみです。それ以外のモデルはHosted on Anthropicでのみ利用できます(前掲の「直接APIとの違い」表を参照)。デフォルトのデプロイ名はモデルIDと一致しますが、Foundryポータルでカスタム名のデプロイを複数作り、レート制限やバージョンを別々に管理することもできます。APIリクエストのmodelパラメータには、モデルIDではなく実際に作成したデプロイ名を渡します。

Foundryリソースを作りモデルをデプロイする

az login
az account get-access-token --resource https://ai.azure.com --query accessToken -o tsv

Foundryポータル(ai.azure.com)からの操作手順は次のとおりです。

  1. Foundryポータルにサインインし、新規または既存のFoundryリソースを開く
  2. 右上の「Discover」→左ペインの「Models」でモデルカタログを開き、Claudeモデル(例: claude-opus-5)を検索する
  3. モデルカードで「Deploy」→「Custom settings」を選ぶ。「Default settings」を選ぶとHosted on Azureで自動設定される
  4. 初回デプロイ時はAzure Marketplaceの利用規約に同意し、業種を選択する
  5. デプロイ名・リージョンスコープ(Global / Data Zone)・モデルバージョン(ホスティングオプションごとに別バージョンとして表示)を設定する
  6. 「Deploy」を選び、プロビジョニング完了を待つ
  7. 完了後、「Build」→「Models」で対象デプロイを開き、「Details」タブでTarget URI(エンドポイントURL)とKey(APIキー)を確認する

Data Zoneを選んだ場合、推論は米国内に限定されます。これはClaude APIのinference_geo: "us"設定と同等の挙動です。

SDKをインストールして認証する

FoundryはC#・Java・PHP・Python・TypeScriptの各SDKに対応しています。GoとRubyのSDKはFoundryをネイティブにサポートしていないため、標準SDKにベースURLとAPIキーを直接渡す回避策が必要です。

pip install -U "anthropic"
pip install azure-identity   # Entra ID認証を使う場合のみ

APIキー認証はFoundryポータルの「Details」タブからキーを取得し、api-keyまたはx-api-keyヘッダーで渡します。

import os
from anthropic import AnthropicFoundry
 
client = AnthropicFoundry(
    api_key=os.environ.get("ANTHROPIC_FOUNDRY_API_KEY"),
    resource="example-resource",
)
 
message = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content)

Microsoft Entra ID認証を使うと、APIキーを扱わずAzure RBACでアクセスを管理できます。

from anthropic import AnthropicFoundry
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
 
token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://ai.azure.com/.default"
)
 
client = AnthropicFoundry(
    resource="example-resource",
    azure_ad_token_provider=token_provider,
)

SDKはANTHROPIC_FOUNDRY_API_KEYANTHROPIC_FOUNDRY_RESOURCEANTHROPIC_FOUNDRY_BASE_URLの環境変数を自動で読み込みます。resourcebase_urlは同時指定できません(どちらか一方を渡します)。Claude Mythos 5.1・Mythos 5・Mythos PreviewはEntra ID認証のみに対応し、APIキー認証は使えません。

REST APIから直接叩く場合は次の形式です。

curl https://{resource}.services.ai.azure.com/anthropic/v1/messages \
  -H "content-type: application/json" \
  -H "api-key: YOUR_AZURE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

課金の仕組み — Claude Consumption Units

FoundryのClaude利用はAzure Marketplace経由で課金され、Claude Consumption Units(CCU)という単位で時間ごとに計測し、月次でAzureの請求にまとめて計上されます。CCUは前払いクレジットではなく、残高やコミットメントの概念もありません。直接APIやサブスクプランとの費用感の比較はClaude APIとサブスクの料金比較、料金プラン全体の整理はClaude料金プラン完全ガイドで扱っています。

つまずきやすいポイント

401 Unauthorized / 403 Forbidden

APIキーの誤りかEntra IDトークンの期限切れ(通常1時間)が原因です。403の場合はAzureサブスクリプション側のRBACロール(Foundry UserまたはCognitive Services User)が付与されているか確認します。

429 Too Many Requests

Foundryはレート制限をAnthropicの標準ヘッダー(anthropic-ratelimit-*)では返しません。Azureの監視ツール側でレート制限状況を確認し、指数バックオフで再試行します。

Data retention required エラー

利用モデルがCovered Modelに該当し、データ保持が必須なのにサブスクリプション側でゼロデータ保持(ZDR)が有効なときに発生します。この設定はAzure側のサブスクリプション単位で決まり、Microsoft側では変更できません。Anthropicと直接調整するか、データ保持がデフォルト有効な新規サブスクリプションでデプロイし直します。

サブスクリプションの種類にも制約があります。韓国のEnterprise Accounts・Cloud Solution Provider契約・従量課金の支払い方法を持たないサブスクリプション(学生・無料トライアル・スタートアップクレジット型)・Azureクレジットのみのスポンサー契約は非対応です。クレジットカード登録済みのアカウントでは、Azureクレジットではなくカードへの課金に切り替わる点にも注意します。

よくある質問

GoやRubyのSDKからFoundryを使えますか

ネイティブ対応はしていません。標準のAnthropic SDKにWithoutEnvironmentDefaults(Go)などでベースURLとAPIキーを明示的に渡す回避策で動作しますが、Foundryが対応しない機能はクライアント側ではなくサーバー側でエラーになります。

まとめ

Microsoft Foundry経由のClaudeは、モデル自体は直接APIと同じでも、認証・課金・機能の可用性がAzureの枠組みに従う点で別物として扱う必要があります。まず自社の用途がHosted on AzureとHosted on Anthropicのどちらに向くかを、必要な機能(code execution・Agent Skillsなど)の有無で判断し、SDKのバージョンとサブスクリプションの対応状況を確認してからリソースを作成するのが安全です。

この記事を共有:XはてブLinkedIn