INTEGRITY Документация

Аутентифицированный Gateway

AI Gateway требует действительный API-токен Cloudflare для каждого запроса. Это предотвращает несанкционированный доступ и защищает от недействительных запросов, которые могут увеличивать объём хранимых логов.

При использовании REST API, передайте токен API Cloudflare в стандартном Authorization заголовок. При использовании нативные эндпойнты провайдера по адресу gateway.ai.cloudflare.com, используйте cf-aig-authorization заголовок вместо этого.

Настройка аутентифицированного шлюза с помощью панели управления

  1. Перейдите в Settings того шлюза, для которого нужно включить аутентификацию.
  2. Выберите Создать токен аутентификации чтобы сгенерировать пользовательский токен с необходимыми Run разрешения. Обязательно сохраните этот токен в надёжном месте, так как повторно он не отображается.
  3. Включайте API-токен в каждый запрос:
    • Если используется REST API (/ai/run), включите ваш API-токен Cloudflare в стандартный Authorization заголовок.
    • При использовании нативные эндпойнты провайдера по адресу gateway.ai.cloudflare.com, используйте cf-aig-authorization заголовок.
  4. Вернитесь на страницу настроек и включите 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 Без заголовка Шлюз без аутентификации Запрос выполняется успешно