← Cloudflare AI Gateway / ai-gateway / configuration
Аутентифицированный Gateway
AI Gateway требует действительный API-токен Cloudflare для каждого запроса. Это предотвращает несанкционированный доступ и защищает от недействительных запросов, которые могут увеличивать объём хранимых логов.
При использовании REST API, передайте токен API Cloudflare в стандартном Authorization заголовок. При использовании нативные эндпойнты провайдера по адресу gateway.ai.cloudflare.com, используйте cf-aig-authorization заголовок вместо этого.
Настройка аутентифицированного шлюза с помощью панели управления
- Перейдите в Settings того шлюза, для которого нужно включить аутентификацию.
- Выберите Создать токен аутентификации чтобы сгенерировать пользовательский токен с необходимыми
Runразрешения. Обязательно сохраните этот токен в надёжном месте, так как повторно он не отображается. - Включайте API-токен в каждый запрос:
- Если используется REST API (
/ai/run), включите ваш API-токен Cloudflare в стандартныйAuthorizationзаголовок. - При использовании нативные эндпойнты провайдера по адресу
gateway.ai.cloudflare.com, используйтеcf-aig-authorizationзаголовок.
- Если используется REST API (
- Вернитесь на страницу настроек и включите Authenticated Gateway.
Примеры запросов
# Run `wrangler whoami` to get your account ID to replace $CLOUDFLARE_ACCOUNT_ID,
# and `wrangler auth token` to get an auth token to replace $CLOUDFLARE_API_TOKEN.
curl -X POST "https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/v1/chat/completions" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{"model": "openai/gpt-4.1-mini", "messages": [{"role": "user", "content": "What is Cloudflare?"}]}'Использование OpenAI SDK:
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: CLOUDFLARE_API_TOKEN,
baseURL: `https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/ai/v1`,
});
const response = await openai.chat.completions.create({
model: "openai/gpt-4.1-mini",
messages: [{ role: "user", content: "What is Cloudflare?" }],
});Использование Vercel AI SDK:
import { createOpenAI } from "@ai-sdk/openai";
const openai = createOpenAI({
apiKey: CLOUDFLARE_API_TOKEN,
baseURL: `https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/ai/v1`,
});Ожидаемое поведение
В следующей таблице описано поведение шлюза в зависимости от настроек аутентификации и статуса заголовка:
| Настройка аутентификации | Информация о заголовке | Состояние шлюза | Ответ |
|---|---|---|---|
| Включено | Заголовок присутствует | Аутентифицированный шлюз | Запрос выполняется успешно |
| Включено | Без заголовка | Ошибка | Запрос завершается ошибкой из-за отсутствия авторизации |
| Off | Заголовок присутствует | Шлюз без аутентификации | Запрос выполняется успешно |
| Off | Без заголовка | Шлюз без аутентификации | Запрос выполняется успешно |