← Назад до блогу

Обробка CSRF-токена в n8n: підготовка запису в тестовому середовищі SAP Gateway

Підготуйте процес із CSRF-токеном у n8n для тестового SAP Gateway: збережіть cookie сесії, перевірте запис і оцініть оновлення перед повтором.

Рожевий ключ і синя печатка наближаються до захищеного отвору для документів, а лупа досліджує документ.

Перевірено за наведеними джерелами .

Визначте мету роботи з CSRF-токеном у тестовому середовищі n8n

Мета цього посібника з CSRF-токенів у n8n — робочий процес із чіткими межами: отримати дані сесії, надіслати одну дозволену зміну, потім прочитати цільовий запис і порівняти його стан. У документації SAP щодо середовища Fiori ABAP зазначено, що захист CSRF поширюється на запити SAP Gateway OData, які змінюють дані.

Почніть із тестового сервісу, наданого адміністратором, схвалених облікових даних і запису, який можна видалити після вправи. Уточніть у власника сервісу точний продукт, спосіб розгортання, версію, дозволену операцію, тіло запиту, обов’язкові заголовки й очікуваний результат контрольного читання. Це рекомендовані передумови для цієї вправи.

Перш ніж виконувати запис із CSRF-токеном у n8n, звірте повний запит і характерні ознаки відмови сервісу через CSRF із документацією для вашого розгортання. Ця послідовність налаштування та перевірки не містить готового до виконання прикладу для тестового середовища. На нашу думку, така межа корисніша за запит для копіювання, складений із несумісних прикладів SAP.

Sources: Configuring ABAP Server Session Security | SAP Help Portal

1. Отримайте відповідь і збережіть сесію

У вузлі HTTP Request увімкніть Include Response Headers and Status, щоб переглядати тіло, заголовки та статус відповіді. Довідник вузла HTTP, який підтримує n8n, також описує передавання неуспішних відповідей у логіку робочого процесу через neverError; структура параметрів залежить від версії.

Наведене нижче налаштування поєднує цю офіційну можливість n8n з описаною спільнотою обробкою сесій SAP. Стаття SAP Community, датована червнем 2021 року, описує отримання токена через GET і X-CSRF-TOKEN: Fetch. У реалізації від спільноти за січень 2026 року, де n8n використовується з локальним SAP S/4HANA, зазначено передавання в запит на запис і токена, і cookie сесії.

Виконайте ці кроки налаштування в наведеному порядку, використовуючи параметри запиту, схвалені власником сервісу:

  1. Налаштуйте схвалену автентифікацію у вузлі HTTP Request для отримання токена й увімкніть повернення заголовків і статусу відповіді.
  2. Надішліть схвалений GET із заголовком X-CSRF-TOKEN зі значенням Fetch за схемою, описаною спільнотою.
  3. Перевірте відповідь і збережіть отриманий токен разом із cookie сесії.
  4. Сформуйте вихідний заголовок Cookie з отриманих пар name=value, виключивши атрибути Set-Cookie, як описано в реалізації від спільноти за січень 2026 року.
  5. Підготуйте вузол запису з тією самою схваленою автентифікацією та відповідними токеном і cookie. Перевіряйте фактичну відповідь, не припускаючи фіксованої кількості cookie.

Sources: HTTP Request | Nodes | n8n Docs, skills/skills/n8n-node-configuration-official/references/HTTP_NODES.md at main · n8n-io/skills · GitHub, How does CSRF token work? SAP Gateway - SAP Community, Building an Email-Based SAP Sales Order Automation... - SAP Community

2. Виконайте запис один раз, потім порівняйте стан цільового запису

На двох аркушах під оглядовою лінзою порожнє коло змінюється на зафарбоване рожеве коло.
Аркуші до й після зміни ілюструють порівняння очікуваної зміни поля після запису в тестовому середовищі.

Використовуйте лише операцію й тіло запиту, схвалені для вашого тестового сервісу. Для SAP Gateway Foundation на SAP NetWeaver AS ABAP 7.4 for Suite, SP16 документація SAP вказує, що оновлення й видалення BusinessPartner у GWSAMPLE_BASIC потребують If-Match з ETag, отриманим під час попереднього читання. Ця вимога стосується саме цієї сутності прикладу та версії; вона не надає повного тіла запиту для вашого сервісу.

У запропонованій схемі залиште автоматичні повтори запису вимкненими. Довідник вузла HTTP, який підтримує n8n, попереджає, що автоматичний повтор застосовується до всіх помилок. На нашу думку, вимкнення автоматичних повторів запису варте додаткового ручного розслідування, хоча це також означає відмову від автоматичного відновлення після тимчасових помилок.

Після запису виконайте GET цільового запису й порівняйте погоджене поле з очікуваним значенням. Експеримент SAP Community за серпень 2026 року з використанням n8n 2.x і позначкою SAP S/4HANA Cloud Private Edition демонструє цю схему для API_SERVICE_QUOTATION_SRV. Це приклад, про який повідомив автор, а не загальна гарантія сумісності.

Використайте вузол If для гілки порівняння; офіційна документація n8n описує розгалуження на основі порівнянь. Очікуваний результат — спостережуване значення поля відповідає схваленій зміні. Це спостереження не підтверджує всіх подальших наслідків для бізнес-процесів.

Sources: skills/skills/n8n-node-configuration-official/references/HTTP_NODES.md at main · n8n-io/skills · GitHub, Sample Service - Basic: Entity Types | SAP Help Portal, Email-driven SAP Service Quotation approval with n... - SAP Community, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.if.md at main · n8n-io/n8n-docs · GitHub

3. Відокремте оновлення сесії від розслідування збоїв

Щодо оновлення CSRF-токена в n8n стаття SAP Community, датована червнем 2021 року, радить отримувати новий токен під час оновлення сесії. Сприймайте це як рекомендацію спільноти й отримуйте нові токен і cookie разом. Не задавайте фіксований строк дії: надана офіційна документація рекомендує налаштувати завершення HTTP-сесії, але не встановлює універсальної тривалості.

Використовуйте наведену нижче схему розслідування як редакційну рекомендацію. Не спрямовуйте кожну відповідь із відмовою в доступі на оновлення токена; отримайте в адміністратора ознаки відмови, характерні для конкретного сервісу.

Рекомендовані напрями розслідування та межі їх документального підтвердження
ПроблемаРекомендована діяДжерело та межі підтвердження
Оновлення сесіїОтримайте нові дані сесіїРекомендація SAP Community
АвтентифікаціяПідтвердьте доступ із власником сервісуРедакційна рекомендація для розслідування
Відсутність повноваженьЗапитайте адміністратора про SU53 або ST01Документація Fiori для SAP S/4HANA 1809 Latest
Збій обробки ODataПеревірте журнали помилок хаба та бекендуДокументація Mobile Adapter 2025 FPS02

Sources: How does CSRF token work? SAP Gateway - SAP Community, Mobile Adapter Troubleshooting | SAP Help Portal, Troubleshooting SAP Fiori Apps | SAP Help Portal, Configuring ABAP Server Session Security | SAP Help Portal

4. Вирішіть, чи виправданий ще один запис

Для перевірки журналів помилок документація Mobile Adapter для локального SAP S/4HANA 2025 FPS02 називає /IWFND/ERROR_LOG для хаба Gateway і /IWBEP/ERROR_LOG для бекенду. Її контекст — Last Mile Distribution; загальні помилки, пов’язані з користувачами, які не пройшли належну автентифікацію, можуть бути відсутні.

Після неоднозначної відповіді ми рекомендуємо прочитати стан цільового запису й зупинитися для розслідування, якщо результат залишається невизначеним. Оновлення даних сесії не є дозволом повторно виконати запис.

Як редакційну перевірку завершення зафіксуйте отриману відповідь, результат порівняння після контрольного читання, рішення щодо оновлення сесії та відповідального за кожну невирішену проблему. Розглядайте ще один запис лише після того, як власник сервісу підтвердить, що це доречно для цієї операції.

Sources: Mobile Adapter Troubleshooting | SAP Help Portal

Спробуйте на практиці

Практичні завдання з n8n

Оберіть завдання й створіть робочий воркфлоу у власному середовищі n8n – до кожного завдання є п’ять поступових підказок.

Спробувати практичне завдання

Для вашої команди

Програми навчання n8n для однієї команди чи відділу – на вашому власному екземплярі n8n, з вашими інструментами й даними.

Навчання для вашої команди

Оцінка навичок n8n

Безкоштовний тест приблизно на 20 хвилин, англійською: 30 запитань у 10 напрямах і рівень від початківця до експерта. На AI Adoption Score – іншому проєкті автора цього сайту.

Дізнатися свій рівень n8n