← Cloudflare One / cloudflare-one / tutorials
Создание пользовательских заголовков для источников, защищённых Cloudflare Access, с помощью Workers
В этом руководстве описано, как использовать Cloudflare Worker чтобы добавлять пользовательские заголовки HTTP к трафику, а также как отправлять эти пользовательские заголовки на ваши origin-сервисы, защищённые Cloudflare Access.
Некоторым приложениям и сетевым реализациям для передачи на источник требуются определенные пользовательские заголовки, что бывает сложно реализовать для трафика, проходящего через прокси Zero Trust. Вы можете настроить Worker для отправки заголовки авторизации пользователя требуется для Access.
Перед началом работы
- Защитите исходный сервер с помощью Cloudflare Access
Перед началом работы
-
В Панель управления Cloudflare ↗, перейдите в Workers & Pages страницу.
Перейдите в Workers & Pages ↗ -
Если это ваш первый Worker, выберите Создать Worker. В противном случае выберите Создать приложение, затем выберите Создать Worker.
-
Введите понятное имя для Worker, затем выберите Развернуть.
-
Выберите Изменить код.
-
Введите следующий Worker:
export default {
async fetch(request, env, ctx) {
const { headers } = request;
const cfaccessemail = headers.get("cf-access-authenticated-user-email");
const requestWithID = new Request(request);
requestWithID.headers.set("company-user-id", cfaccessemail);
return fetch(requestWithID);
},
};export default {
async fetch(request, env, ctx): Promise<Response> {
const { headers } = request;
const cfaccessemail = headers.get("cf-access-authenticated-user-email");
const requestWithID = new Request(request);
requestWithID.headers.set("company-user-id", cfaccessemail);
return fetch(requestWithID);
},
} satisfies ExportedHandler<Env>;- Выберите Сохранить и развернуть.
Ваш Worker теперь готов отправлять пользовательские заголовки на origin-сервисы, защищенные Access.
Примените Worker к своему имени хоста
- Выберите созданный Worker, затем перейдите к Триггеры.
- В Маршруты, выберите Добавить маршрут.
- Введите имя хоста и зону для источника, затем выберите Добавить маршрут.
Теперь Worker будет добавлять пользовательский заголовок в запросы, соответствующие заданному маршруту. Например:
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"Accept-Encoding": "gzip",
"Accept-Language": "en-US,en;q=0.9",
"Cf-Access-Authenticated-User-Email": "[email protected]",
"Company-User-Id": "[email protected]",
"Connection": "keep-alive"