6 6
7> 了解如何通过 Microsoft Foundry 配置 Claude Code,包括设置、配置和故障排除。7> 了解如何通过 Microsoft Foundry 配置 Claude Code,包括设置、配置和故障排除。
8 8
9export const ContactSalesCard = ({surface}) => {9**Deploying Claude Code across your organization?** Talk to sales about enterprise plans, SSO, and centralized billing.
10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;10
11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">11View plans
12 <line x1="5" y1="12" x2="19" y2="12" />12Contact sales
13 <polyline points="12 5 19 12 12 19" />13
14 </svg>;14## 前置条件
15 const STYLES = `
16.cc-cs {
17 --cs-slate: #141413;
18 --cs-clay: #d97757;
19 --cs-clay-deep: #c6613f;
20 --cs-gray-000: #ffffff;
21 --cs-gray-700: #3d3d3a;
22 --cs-border-default: rgba(31, 30, 29, 0.15);
23 font-family: inherit;
24}
25.dark .cc-cs {
26 --cs-slate: #f0eee6;
27 --cs-gray-000: #262624;
28 --cs-gray-700: #bfbdb4;
29 --cs-border-default: rgba(240, 238, 230, 0.14);
30}
31.cc-cs-card {
32 display: flex; align-items: center; justify-content: space-between;
33 gap: 16px; padding: 14px 16px; margin: 0;
34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);
35 border-radius: 8px; flex-wrap: wrap;
36}
37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }
38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }
39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
40.cc-cs-btn-clay {
41 display: inline-flex; align-items: center; gap: 8px;
42 background: var(--cs-clay-deep); color: #fff; border: none;
43 border-radius: 8px; padding: 8px 14px;
44 font-size: 13px; font-weight: 500;
45 transition: background-color 0.15s; white-space: nowrap;
46}
47.cc-cs-btn-clay:hover { background: var(--cs-clay); }
48.cc-cs-btn-ghost {
49 display: inline-flex; align-items: center; gap: 8px;
50 background: transparent; color: var(--cs-gray-700);
51 border: 0.5px solid var(--cs-border-default);
52 border-radius: 8px; padding: 8px 14px;
53 font-size: 13px; font-weight: 500;
54}
55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }
56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }
57@media (max-width: 720px) {
58 .cc-cs-actions { width: 100%; }
59}
60`;
61 return <div className="cc-cs not-prose">
62 <style>{STYLES}</style>
63 <div className="cc-cs-card">
64 <div className="cc-cs-text">
65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.
66 </div>
67 <div className="cc-cs-actions">
68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">
69 View plans
70 </a>
71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">
72 Contact sales {iconArrowRight()}
73 </a>
74 </div>
75 </div>
76 </div>;
77};
78
79<ContactSalesCard surface="foundry" />
80
81<h2 id="prerequisites">
82 前置条件
83</h2>
84 15
85在使用 Microsoft Foundry 配置 Claude Code 之前,请确保您拥有:16在使用 Microsoft Foundry 配置 Claude Code 之前,请确保您拥有:
86 17
88* 创建 Microsoft Foundry 资源和部署的 RBAC 权限19* 创建 Microsoft Foundry 资源和部署的 RBAC 权限
89* 已安装并配置 Azure CLI(可选 - 仅在您没有其他获取凭证机制时需要)20* 已安装并配置 Azure CLI(可选 - 仅在您没有其他获取凭证机制时需要)
90 21
91<Note>22> [!NOTE]
92 如果您要将 Claude Code 部署给多个用户,请[固定您的模型版本](#4-pin-model-versions)以防止在 Anthropic 发布新模型时出现破损。23>
93</Note>24> 如果您要将 Claude Code 部署给多个用户,请[固定您的模型版本](#4-pin-model-versions)以防止在 Anthropic 发布新模型时出现破损。
94 25
95<h2 id="setup">26## 设置
96 设置
97</h2>
98 27
99<h3 id="1-provision-microsoft-foundry-resource">28### 配置 Microsoft Foundry 资源
100 1. 配置 Microsoft Foundry 资源
101</h3>
102 29
103首先,在 Azure 中创建 Claude 资源:30首先,在 Azure 中创建 Claude 资源:
104 31
112 39
113 配置部署时,您还需要选择其[托管选项](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options),这决定了推理是在 Azure 上运行还是在 Anthropic 基础设施上运行。40 配置部署时,您还需要选择其[托管选项](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options),这决定了推理是在 Azure 上运行还是在 Anthropic 基础设施上运行。
114 41
115<h3 id="2-configure-azure-credentials">42### 配置 Azure 凭据
116 2) 配置 Azure 凭据
117</h3>
118 43
119Claude Code 支持三种 Microsoft Foundry 身份验证方法。选择最适合您安全要求的方法:44Claude Code 支持三种 Microsoft Foundry 身份验证方法。选择最适合您安全要求的方法:
120 45
122* [Microsoft Entra ID](#use-microsoft-entra-id):Claude Code 通过 Azure SDK 默认凭据链获取令牌,例如从 `az login` 会话中获取,因此无需存储 API 密钥47* [Microsoft Entra ID](#use-microsoft-entra-id):Claude Code 通过 Azure SDK 默认凭据链获取令牌,例如从 `az login` 会话中获取,因此无需存储 API 密钥
123* [Bearer 令牌](#use-a-bearer-token):由另一个进程获取 Microsoft Entra ID 访问令牌,然后您通过 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 传入48* [Bearer 令牌](#use-a-bearer-token):由另一个进程获取 Microsoft Entra ID 访问令牌,然后您通过 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 传入
124 49
125<Note>50> [!NOTE]
126 使用 Microsoft Foundry 时,`/logout` 命令不可用,因为身份验证通过 Azure 凭据处理。51>
127</Note>52> 使用 Microsoft Foundry 时,`/logout` 命令不可用,因为身份验证通过 Azure 凭据处理。
128 53
129<h4 id="use-an-api-key">54#### 使用 API 密钥
130 使用 API 密钥
131</h4>
132 55
133从 Microsoft Foundry 门户复制密钥,然后将其设置为环境变量:56从 Microsoft Foundry 门户复制密钥,然后将其设置为环境变量:
134 57
141export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key64export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key
142```65```
143 66
144<h4 id="use-microsoft-entra-id">67#### 使用 Microsoft Entra ID
145 使用 Microsoft Entra ID
146</h4>
147 68
148不要设置 `ANTHROPIC_FOUNDRY_API_KEY` 和 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`。这样 Claude Code 就会使用 Azure SDK [默认凭据链](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview)。69不要设置 `ANTHROPIC_FOUNDRY_API_KEY` 和 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`。这样 Claude Code 就会使用 Azure SDK [默认凭据链](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview)。
149这支持多种方法来验证本地和远程工作负载。70这支持多种方法来验证本地和远程工作负载。
156 77
157有关您的身份所需的角色,请参阅 [Azure RBAC 配置](#azure-rbac-configuration)。78有关您的身份所需的角色,请参阅 [Azure RBAC 配置](#azure-rbac-configuration)。
158 79
159<h4 id="use-a-bearer-token">80#### 使用 Bearer 令牌
160 使用 Bearer 令牌
161</h4>
162 81
163Claude Code 在每个请求中将 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 的值作为 `Authorization: Bearer` 标头发送。当另一个进程(例如主机应用程序或登录脚本)已经为您获取了访问令牌时,请使用此选项。82Claude Code 在每个请求中将 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 的值作为 `Authorization: Bearer` 标头发送。当另一个进程(例如主机应用程序或登录脚本)已经为您获取了访问令牌时,请使用此选项。
164 83
170 89
171`ANTHROPIC_FOUNDRY_AUTH_TOKEN` 优先于 `ANTHROPIC_FOUNDRY_API_KEY` 和默认凭据链。90`ANTHROPIC_FOUNDRY_AUTH_TOKEN` 优先于 `ANTHROPIC_FOUNDRY_API_KEY` 和默认凭据链。
172 91
173<h3 id="3-configure-claude-code">92### 配置 Claude Code
174 3. 配置 Claude Code
175</h3>
176 93
177设置以下环境变量以启用 Microsoft Foundry:94设置以下环境变量以启用 Microsoft Foundry:
178 95
188 105
189将 `ANTHROPIC_FOUNDRY_RESOURCE` 仅设置为资源名称,例如 `my-resource`。如果设置为 URL 或主机名,Claude Code 会在您发送消息时[拒绝该值](/docs/zh-CN/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name)。106将 `ANTHROPIC_FOUNDRY_RESOURCE` 仅设置为资源名称,例如 `my-resource`。如果设置为 URL 或主机名,Claude Code 会在您发送消息时[拒绝该值](/docs/zh-CN/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name)。
190 107
191<h3 id="4-pin-model-versions">108### 固定模型版本
192 4. 固定模型版本
193</h3>
194 109
195<Warning>110> [!WARNING]
196 为每个部署固定特定的模型版本。如果不固定版本,模型别名(如 `sonnet` 和 `opus`)会解析为 Claude Code 为 Microsoft Foundry 内置的默认值,这可能滞后于最新版本,并且可能在您的账户中尚不可用。Microsoft Foundry 没有启动模型检查,因此当默认值不可用时请求会失败。创建 Azure 部署时,请选择特定的模型版本而不是"自动更新到最新版本"。111>
197</Warning>112> 为每个部署固定特定的模型版本。如果不固定版本,模型别名(如 `sonnet` 和 `opus`)会解析为 Claude Code 为 Microsoft Foundry 内置的默认值,这可能滞后于最新版本,并且可能在您的账户中尚不可用。Microsoft Foundry 没有启动模型检查,因此当默认值不可用时请求会失败。创建 Azure 部署时,请选择特定的模型版本而不是"自动更新到最新版本"。
198 113
199设置模型变量以匹配您在第 1 步中创建的部署名称。114设置模型变量以匹配您在第 1 步中创建的部署名称。
200 115
218 133
219要为您的主对话和 Claude Code 在其外部进行的请求设置不同的 TTL,请[自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。134要为您的主对话和 Claude Code 在其外部进行的请求设置不同的 TTL,请[自己选择 TTL](/docs/zh-CN/prompt-caching#choose-the-ttl-yourself)。
220 135
221<h3 id="5-run-claude-code">136### 运行 Claude Code
222 5. 运行 Claude Code
223</h3>
224 137
225设置环境变量后,从您的项目目录启动 Claude Code:138设置环境变量后,从您的项目目录启动 Claude Code:
226 139
232 145
233要验证您的设置,请在 Claude Code 中运行 `/status`。API 提供商行显示 `Microsoft Foundry`,以及您配置的资源名称或基础 URL。146要验证您的设置,请在 Claude Code 中运行 `/status`。API 提供商行显示 `Microsoft Foundry`,以及您配置的资源名称或基础 URL。
234 147
235<h2 id="azure-rbac-configuration">148## Azure RBAC 配置
236 Azure RBAC 配置
237</h2>
238 149
239`Azure AI User` 和 `Cognitive Services User` 默认角色包括调用 Claude 模型所需的所有权限。150`Azure AI User` 和 `Cognitive Services User` 默认角色包括调用 Claude 模型所需的所有权限。
240 151
254 165
255有关详情,请参阅 [Microsoft Foundry RBAC 文档](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry)。166有关详情,请参阅 [Microsoft Foundry RBAC 文档](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry)。
256 167
257<h2 id="1m-token-context-window">168## 1M token 上下文窗口
258 1M token 上下文窗口
259</h2>
260 169
261在 Microsoft Foundry 上,当 Claude Code 能够识别您的部署所服务的模型时,Fable 模型、Sonnet 5 及更高版本以及 Opus 4.7 及更高版本默认使用 [1M token 上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model),无需添加 `[1m]` 后缀。Claude Code 从模型变量中的部署名称读取模型。请使用模型 ID 命名每个部署,例如 `claude-opus-4-8`,或者使用 [`modelOverrides`](/docs/zh-CN/model-config#override-model-ids-per-version) 将模型映射到您的部署名称。对于无法匹配到模型的部署名称,Claude Code 会假定使用 200K 窗口,除非您[声明其他窗口大小](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。170在 Microsoft Foundry 上,当 Claude Code 能够识别您的部署所服务的模型时,Fable 模型、Sonnet 5 及更高版本以及 Opus 4.7 及更高版本默认使用 [1M token 上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model),无需添加 `[1m]` 后缀。Claude Code 从模型变量中的部署名称读取模型。请使用模型 ID 命名每个部署,例如 `claude-opus-4-8`,或者使用 [`modelOverrides`](/docs/zh-CN/model-config#override-model-ids-per-version) 将模型映射到您的部署名称。对于无法匹配到模型的部署名称,Claude Code 会假定使用 200K 窗口,除非您[声明其他窗口大小](/docs/zh-CN/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。
262 171
274 183
275当您在 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 中的部署名称后附加 `[1m]` 时,Opus 4.6 和 Sonnet 4.6 可使用 1M 窗口,如[为第三方部署固定模型](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)中所述。在 v2.1.287 之前,Fable 模型以及 Opus 4.7 及更高版本在 Microsoft Foundry 上同样需要该后缀,否则默认使用 200K 窗口。184当您在 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 中的部署名称后附加 `[1m]` 时,Opus 4.6 和 Sonnet 4.6 可使用 1M 窗口,如[为第三方部署固定模型](/docs/zh-CN/model-config#pin-models-for-third-party-deployments)中所述。在 v2.1.287 之前,Fable 模型以及 Opus 4.7 及更高版本在 Microsoft Foundry 上同样需要该后缀,否则默认使用 200K 窗口。
276 185
277<h2 id="troubleshooting">186## 故障排除
278 故障排除
279</h2>
280 187
281如果您收到错误"Failed to get token from azureADTokenProvider: ChainedTokenCredential authentication failed":188如果您收到错误"Failed to get token from azureADTokenProvider: ChainedTokenCredential authentication failed":
282 189
286 193
287* 检查 `ANTHROPIC_FOUNDRY_RESOURCE` 是否设置为您的实际资源名称,而不是占位符。Claude Code 从此值构建端点 URL,因此不正确的名称会指向不存在的主机。194* 检查 `ANTHROPIC_FOUNDRY_RESOURCE` 是否设置为您的实际资源名称,而不是占位符。Claude Code 从此值构建端点 URL,因此不正确的名称会指向不存在的主机。
288 195
289<h2 id="additional-resources">196## 其他资源
290 其他资源
291</h2>
292 197
293* [Microsoft Foundry 文档](https://learn.microsoft.com/en-us/azure/ai-foundry/what-is-azure-ai-foundry)198* [Microsoft Foundry 文档](https://learn.microsoft.com/en-us/azure/ai-foundry/what-is-azure-ai-foundry)
294* [Microsoft Foundry 模型](https://ai.azure.com/explore/models)199* [Microsoft Foundry 模型](https://ai.azure.com/explore/models)