### Route requests through a gateway
The whole hunk
from line 24, old and new numbered
/
lines
from line 24
2424
2525<Steps>
2626 <Step title="Create a Microsoft Foundry resource">
27 In the Azure portal, create a Microsoft Foundry resource in your subscription. Record the **resource name**; the app constructs the endpoint as `<resource-name>.services.ai.azure.com`.
27 In the Azure portal, create a Microsoft Foundry resource in your subscription. Record the **resource name**; the app constructs the endpoint as `<resource-name>.services.ai.azure.com`. If the app should reach Microsoft Foundry through a gateway or proxy you operate instead, see [Route requests through a gateway](#route-requests-through-a-gateway). The resource name is still required in that case.
2828 </Step>
2929
3030 <Step title="Deploy the Claude models">
from line 82
8282
8383#### Allow network egress
8484
85The sign-in flow reaches `login.microsoftonline.com` in addition to your Microsoft Foundry endpoint. Both hosts are included automatically in the **Egress** section of the in-app configuration window when these keys are set.
85The sign-in flow reaches `login.microsoftonline.com` in addition to your Microsoft Foundry endpoint. Both hosts are included automatically in the **Egress** section of the in-app configuration window when these keys are set. When you [route requests through a gateway](#route-requests-through-a-gateway), the gateway's host replaces the resource host there.
8686
87### Route requests through a gateway
88
89To send Microsoft Foundry traffic through a gateway or proxy you operate, such as Azure API Management in front of the resource, set `inferenceFoundryBaseUrl` (**Azure AI Foundry base URL**) to the gateway's base URL including any path, for example `https://llm-gateway.example.com/foundry`. It replaces the default `https://<resource-name>.services.ai.azure.com/anthropic` endpoint in Chat, Cowork, and Code, and it takes the same value as Claude Code's `ANTHROPIC_FOUNDRY_BASE_URL`, so one value serves both. `inferenceFoundryResource` is still required. The value must use `https`; from an MDM profile or the local configuration file it may instead be `http` for a proxy listening on the device's own loopback address (a bootstrap server response cannot deliver a loopback value).
90
91The app sends the gateway the same credential it would send Microsoft Foundry: the API key, the credential helper's output, or with in-app sign-in each user's Entra ID token issued for the Azure Cognitive Services audience. A gateway that validates tokens must therefore accept that audience. If you want users to sign in against your own API's app registration instead, for example to map app roles to gateway policy, use the [gateway provider](/docs/third-party/claude-desktop/gateway) with its Entra ID sign-in rather than the Microsoft Foundry provider.
92
93This key works from an MDM profile, the local configuration file, and a [bootstrap server](/docs/third-party/claude-desktop/bootstrap), where it is one of the [keys that require user consent](/docs/third-party/claude-desktop/bootstrap#keys-that-require-user-consent). The Claude add-in for Microsoft 365 does not apply it yet and keeps calling the resource endpoint directly; if the add-in must also go through your gateway, configure the add-in's own gateway mode.
94
8795## Configure the app
8896
8997Open the [in-app configuration window](/docs/third-party/claude-desktop/in-app-configuration#open-the-configuration-window) (**Developer → Configure Third-Party Inference…**). In the **Connection** section, set **Inference provider** to **Foundry**, then fill in the **Foundry credentials** card with the values for whichever authentication approach you chose:
9098
91| Field | API key | In-app Entra ID sign-in |
92| ------------------------------ | ----------------------- | ---------------------------------------------------------------------- |
93| Azure AI Foundry resource name | `your-foundry-resource` | `your-foundry-resource` |
94| Azure AI Foundry API key | your resource key | *leave empty* |
95| Entra ID tenant ID | *leave empty* | `00000000-0000-0000-0000-000000000000` |
96| Entra ID client ID | *leave empty* | `11111111-1111-1111-1111-111111111111` |
97| Entra ID sign-in flow | *leave empty* | `browser` or `broker`, or leave empty for the default device-code flow |
99| Field | API key | In-app Entra ID sign-in |
100| ------------------------------ | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
101| Azure AI Foundry resource name | `your-foundry-resource` | `your-foundry-resource` |
102| Azure AI Foundry API key | your resource key | *leave empty* |
103| Entra ID tenant ID | *leave empty* | `00000000-0000-0000-0000-000000000000` |
104| Entra ID client ID | *leave empty* | `11111111-1111-1111-1111-111111111111` |
105| Entra ID sign-in flow | *leave empty* | `browser` or `broker`, or leave empty for the default device-code flow |
106| Azure AI Foundry base URL | *optional*, see [Route requests through a gateway](#route-requests-through-a-gateway) | *optional* |
98107
99108Under **Models**, add at least one **Model list** entry using the Microsoft Foundry deployment name.
100109