前置条件
在使用 Microsoft Foundry 配置 Claude Code 之前,请确保您拥有:- 具有 Microsoft Foundry 访问权限的 Azure 订阅
- 创建 Microsoft Foundry 资源和部署的 RBAC 权限
- 已安装并配置 Azure CLI(可选 - 仅在您没有其他获取凭证机制时需要)
如果您要将 Claude Code 部署给多个用户,请固定您的模型版本以防止在 Anthropic 发布新模型时出现破损。
设置
- 配置 Microsoft Foundry 资源
首先,在 Azure 中创建 Claude 资源:
- 导航到 Microsoft Foundry 门户
- 创建新资源,记下您的资源名称
- 为 Claude 模型创建部署,记下您为每个模型指定的部署名称;您将在第 4 步中将这些名称设置为模型变量:
- Claude Opus
- Claude Sonnet
- Claude Haiku
- 配置 Azure 凭证
Claude Code 支持三种 Microsoft Foundry 身份验证方法。选择最适合您安全要求的方法。
选项 A:API 密钥身份验证
- 在 Microsoft Foundry 门户中导航到您的资源
- 转到端点和密钥部分
- 复制 API 密钥
- 设置环境变量,将
your-azure-api-key替换为您复制的密钥:
ANTHROPIC_FOUNDRY_API_KEY 和 ANTHROPIC_FOUNDRY_AUTH_TOKEN 时,Claude Code 会自动使用 Azure SDK 默认凭证链。
这支持多种方法来验证本地和远程工作负载。
在本地环境中,您通常可以使用 Azure CLI:
ANTHROPIC_FOUNDRY_AUTH_TOKEN 的值作为 Authorization: Bearer 标头发送。当另一个进程(例如主机应用程序或登录脚本)已经为您获取了访问令牌时,请使用此选项。需要 Claude Code v2.1.203 或更高版本。
将变量设置为 Microsoft Entra ID 为您的资源颁发的 Bearer 令牌:
ANTHROPIC_FOUNDRY_AUTH_TOKEN 优先于 ANTHROPIC_FOUNDRY_API_KEY 和默认凭证链。
使用 Microsoft Foundry 时,
/logout 命令不可用,因为身份验证通过 Azure 凭证处理。
- 配置 Claude Code
设置以下环境变量以启用 Microsoft Foundry:
- 固定模型版本
设置模型变量以匹配您在第 1 步中创建的部署名称。
如果没有 ANTHROPIC_DEFAULT_OPUS_MODEL,Microsoft Foundry 上的 opus 别名会解析为 Opus 4.6。将其设置为 Opus 4.8 ID 以使用最新模型:
ANTHROPIC_DEFAULT_HAIKU_MODEL 设置为您账户中可用的 Haiku 部署,如上所示。
有关当前和旧版模型 ID,请参阅模型概览。有关完整的环境变量列表,请参阅模型配置。
Prompt caching 会自动启用。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置以下变量;具有 1 小时 TTL 的缓存写入按更高的费率计费:
- 运行 Claude Code
设置环境变量后,从您的项目目录启动 Claude Code:
CLAUDE_CODE_USE_FOUNDRY 和其他 Microsoft Foundry 变量,并在第一个提示时连接到您的 Azure 资源。与 Amazon Bedrock 和 Google Cloud 的 Agent Platform 不同,Microsoft Foundry 没有交互式设置向导,因此第 3 和第 4 步中的环境变量是唯一的配置路径。
要验证您的设置,请在 Claude Code 中运行 /status。API 提供商行显示 Microsoft Foundry,以及您配置的资源名称或基础 URL。
Azure RBAC 配置
Azure AI User 和 Cognitive Services User 默认角色包括调用 Claude 模型所需的所有权限。
对于更严格的权限,请创建具有以下内容的自定义角色:
故障排除
如果您收到错误”Failed to get token from azureADTokenProvider: ChainedTokenCredential authentication failed”:- 在环境中配置 Entra ID,或设置
ANTHROPIC_FOUNDRY_API_KEY。
- 检查
ANTHROPIC_FOUNDRY_RESOURCE是否设置为您的实际资源名称,而不是占位符。Claude Code 从此值构建端点 URL,因此不正确的名称会指向不存在的主机。