1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# Claude Code sur Microsoft Foundry
6
7> Découvrez comment configurer Claude Code via Microsoft Foundry, y compris la configuration, les paramètres et la résolution des problèmes.
8
9export const ContactSalesCard = ({surface}) => {
10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;
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">
12 <line x1="5" y1="12" x2="19" y2="12" />
13 <polyline points="12 5 19 12 12 19" />
14 </svg>;
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
79export const Experiment = ({flag, treatment, children}) => {
80 const VID_KEY = 'exp_vid';
81 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);
82 const fnv1a = s => {
83 let h = 0x811c9dc5;
84 for (let i = 0; i < s.length; i++) {
85 h ^= s.charCodeAt(i);
86 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);
87 }
88 return h >>> 0;
89 };
90 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';
91 const [decision] = useState(() => {
92 const params = new URLSearchParams(location.search);
93 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];
94 const force = params.get('gb-force');
95 if (force) {
96 for (const p of force.split(',')) {
97 const [k, v] = p.split(':');
98 if (k === flag) return {
99 variant: v || 'treatment',
100 track: false
101 };
102 }
103 }
104 if (navigator.globalPrivacyControl) {
105 return {
106 variant: 'control',
107 track: false
108 };
109 }
110 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);
111 if (prefsMatch) {
112 try {
113 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {
114 return {
115 variant: 'control',
116 track: false
117 };
118 }
119 } catch {
120 return {
121 variant: 'control',
122 track: false
123 };
124 }
125 } else {
126 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];
127 if (!country || CONSENT_COUNTRIES.has(country)) {
128 return {
129 variant: 'control',
130 track: false
131 };
132 }
133 }
134 let vid;
135 try {
136 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);
137 if (ajsMatch) {
138 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');
139 } else {
140 vid = localStorage.getItem(VID_KEY);
141 if (!vid) {
142 vid = crypto.randomUUID();
143 }
144 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;
145 }
146 try {
147 localStorage.setItem(VID_KEY, vid);
148 } catch {}
149 } catch {
150 return {
151 variant: 'control',
152 track: false
153 };
154 }
155 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);
156 return {
157 variant,
158 track: true,
159 vid
160 };
161 });
162 useEffect(() => {
163 if (!decision.track) return;
164 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {
165 method: 'POST',
166 headers: {
167 'Content-Type': 'application/json',
168 'x-service-name': 'claude_code_docs'
169 },
170 body: JSON.stringify({
171 events: [{
172 event_type: 'GrowthbookExperimentEvent',
173 event_data: {
174 device_id: decision.vid,
175 anonymous_id: decision.vid,
176 timestamp: new Date().toISOString(),
177 experiment_id: flag,
178 variation_id: decision.variant === 'treatment' ? 1 : 0,
179 environment: 'production'
180 }
181 }]
182 }),
183 keepalive: true
184 }).catch(() => {});
185 }, []);
186 return decision.variant === 'treatment' ? treatment : children;
187};
188
189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="foundry" />} />
190
191## Conditions préalables
192
193Avant de configurer Claude Code avec Microsoft Foundry, assurez-vous que vous disposez de :
194
195* Un abonnement Azure avec accès à Microsoft Foundry
196* Des autorisations RBAC pour créer des ressources et des déploiements Microsoft Foundry
197* Azure CLI installé et configuré (facultatif - nécessaire uniquement si vous n'avez pas d'autre mécanisme pour obtenir les identifiants)
198
199<Note>
200 Si vous déployez Claude Code pour plusieurs utilisateurs, [épinglez vos versions de modèle](#4-pin-model-versions) pour éviter les ruptures lorsqu'Anthropic publie de nouveaux modèles.
201</Note>
202
203## Configuration
204
205### 1. Provisionner la ressource Microsoft Foundry
206
207Tout d'abord, créez une ressource Claude dans Azure :
208
2091. Accédez au [portail Microsoft Foundry](https://ai.azure.com/)
2102. Créez une nouvelle ressource, en notant le nom de votre ressource
2113. Créez des déploiements pour les modèles Claude :
212 * Claude Opus
213 * Claude Sonnet
214 * Claude Haiku
215
216### 2. Configurer les identifiants Azure
217
218Claude Code prend en charge deux méthodes d'authentification pour Microsoft Foundry. Choisissez la méthode qui correspond le mieux à vos exigences de sécurité.
219
220**Option A : Authentification par clé API**
221
2221. Accédez à votre ressource dans le portail Microsoft Foundry
2232. Allez à la section **Points de terminaison et clés**
2243. Copiez la **Clé API**
2254. Définissez la variable d'environnement :
226
227```bash theme={null}
228export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key
229```
230
231**Option B : Authentification Microsoft Entra ID**
232
233Lorsque `ANTHROPIC_FOUNDRY_API_KEY` n'est pas défini, Claude Code utilise automatiquement la [chaîne d'identifiants par défaut](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview) du SDK Azure.
234Cela prend en charge une variété de méthodes pour authentifier les charges de travail locales et distantes.
235
236Dans les environnements locaux, vous pouvez généralement utiliser Azure CLI :
237
238```bash theme={null}
239az login
240```
241
242<Note>
243 Lors de l'utilisation de Microsoft Foundry, les commandes `/login` et `/logout` sont désactivées car l'authentification est gérée via les identifiants Azure.
244</Note>
245
246### 3. Configurer Claude Code
247
248Définissez les variables d'environnement suivantes pour activer Microsoft Foundry :
249
250```bash theme={null}
251# Activer l'intégration Microsoft Foundry
252export CLAUDE_CODE_USE_FOUNDRY=1
253
254# Nom de la ressource Azure (remplacez {resource} par le nom de votre ressource)
255export ANTHROPIC_FOUNDRY_RESOURCE={resource}
256# Ou fournissez l'URL de base complète :
257# export ANTHROPIC_FOUNDRY_BASE_URL=https://{resource}.services.ai.azure.com/anthropic
258```
259
260### 4. Épingler les versions de modèle
261
262<Warning>
263 Épinglez des versions de modèle spécifiques pour chaque déploiement. Si vous utilisez des alias de modèle (`sonnet`, `opus`, `haiku`) sans épingler, Claude Code peut tenter d'utiliser une version de modèle plus récente qui n'est pas disponible dans votre compte Foundry, ce qui casse les utilisateurs existants lorsqu'Anthropic publie des mises à jour. Lorsque vous créez des déploiements Azure, sélectionnez une version de modèle spécifique plutôt que « mise à jour automatique vers la dernière version ».
264</Warning>
265
266Définissez les variables de modèle pour correspondre aux noms de déploiement que vous avez créés à l'étape 1.
267
268Sans `ANTHROPIC_DEFAULT_OPUS_MODEL`, l'alias `opus` sur Foundry se résout en Opus 4.6. Définissez-le sur l'ID Opus 4.7 pour utiliser le modèle le plus récent :
269
270```bash theme={null}
271export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-7'
272export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'
273export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'
274```
275
276Pour les ID de modèle actuels et hérités, consultez [Aperçu des modèles](https://platform.claude.com/docs/en/about-claude/models/overview). Consultez [Configuration des modèles](/fr/model-config#pin-models-for-third-party-deployments) pour la liste complète des variables d'environnement.
277
278[Le cache des invites](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) est activé automatiquement. Pour demander un TTL de cache d'une heure au lieu de la valeur par défaut de 5 minutes, définissez la variable suivante ; les écritures de cache avec un TTL d'une heure sont facturées à un taux plus élevé :
279
280```bash theme={null}
281export ENABLE_PROMPT_CACHING_1H=1
282```
283
284## Configuration Azure RBAC
285
286Les rôles par défaut `Azure AI User` et `Cognitive Services User` incluent toutes les autorisations requises pour invoquer les modèles Claude.
287
288Pour des autorisations plus restrictives, créez un rôle personnalisé avec les éléments suivants :
289
290```json theme={null}
291{
292 "permissions": [
293 {
294 "dataActions": [
295 "Microsoft.CognitiveServices/accounts/providers/*"
296 ]
297 }
298 ]
299}
300```
301
302Pour plus de détails, consultez la [documentation RBAC de Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry).
303
304## Résolution des problèmes
305
306Si vous recevez une erreur « Failed to get token from azureADTokenProvider: ChainedTokenCredential authentication failed » :
307
308* Configurez Entra ID sur l'environnement, ou définissez `ANTHROPIC_FOUNDRY_API_KEY`.
309
310## Ressources supplémentaires
311
312* [Documentation Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/what-is-azure-ai-foundry)
313* [Modèles Microsoft Foundry](https://ai.azure.com/explore/models)
314* [Tarification Microsoft Foundry](https://azure.microsoft.com/en-us/pricing/details/ai-foundry/)