Посібник з налаштування автентифікації
Модуль BJET API синхронізації підтримує три методи автентифікації для захисту ваших API інтеграцій. Цей посібник містить детальні інструкції з налаштування для кожного типу автентифікації.
Огляд
Автентифікація гарантує, що тільки авторизовані системи можуть отримати доступ до ваших API ендпоінтів. Модуль підтримує:
- Без автентифікації - Для внутрішніх або довірених мереж
- Базова автентифікація - Автентифікація за ім'ям користувача та паролем
- Bearer Token - Токенна автентифікація для сучасних API
Методи автентифікації
1. Без автентифікації
Використовуйте цей метод тільки для:
- Внутрішніх API у довірених мережах
- Середовищ розробки та тестування
- Публічних API, які не потребують автентифікації
Конфігурація
- Перейдіть до Налаштування → Технічні → Конфігурації API синхронізації
- У розділі автентифікації виберіть "Жодної"
- Залиште поля автентифікації пустими
- Збережіть конфігурацію
Відсутність автентифікації слід використовувати тільки в безпечних, внутрішніх середовищах. Ніколи не використовуйте це для продуктивних API, доступних в інтернеті.
2. Базова автентифікація
Базова автентифікація надсилає облікові дані з кожним запитом, використовуючи HTTP заголовок Authorization.
Кроки конфігурації
-
Створення облікових даних
- Створіть спеціального API користувача у вашій зовнішній системі
- Створіть надійний пароль
- Зберігайте облікові дані безпечно
-
Налаштування в Odoo
# У конфігурації API синхронізації
Тип автентифікації: Базова
Ім'я користувача: api_user
Пароль: ******** -
Формат заголовка Модуль автоматично форматує заголовок як:
Authorization: Basic base64(username:password)
Найкращі практики безпеки
- Використовуйте HTTPS для шифрування облікових даних при передачі
- Регулярно змінюйте паролі
- Використовуйте надійні, унікальні паролі
- Відстежуйте логи автентифікації на предмет підозрілої активності
3. Автентифікація Bearer Token
Bearer токени забезпечують більш безпечний та гнучкий метод автентифікації.
Кроки конфігурації
-
Отримання токена
- Створіть токен від провайдера зовнішнього API
- Або створіть OAuth2 токен доступу
- Зберігайте токен безпечно
-
Налаштування в Odoo
# У конфігурації API синхронізації
Тип автентифікації: Bearer Token
Токен: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... -
Формат заголовка Модуль автоматич но додає:
Authorization: Bearer <token>
Управління токенами
- Закінчення терміну дії токена: Відстежуйте дати закінчення терміну дії токенів
- Оновлення токенів: Реалізуйте автоматичне оновлення токенів, якщо підтримується
- Ротація токенів: Регулярно змінюйте токени для безпеки
- Безпечне зберігання: Ніколи не фіксуйте токени у системі контролю версій
Динамічна автентифікація
Для складних сценаріїв використовуйте Python скрипти для створення динамічної автентифікації:
def compute_auth_header(sync_line):
"""Створення динамічної автентифікації на основі контексту"""
import hmac
import hashlib
import time
# Приклад: Створення токена на основі часу
timestamp = str(int(time.time()))
secret = sync_line.api_config_id.get_secret_key()
# Створення HMAC підпису
signature = hmac.new(
secret.encode(),
timestamp.encode(),
hashlib.sha256
).hexdigest()
return {
'X-Timestamp': timestamp,
'X-Signature': signature
}
Інтеграція OAuth 2.0
Для автентифікації OAuth 2.0:
Процес налаштування
-
Реєстрація додатку
- Зареєструйте ваш екземпляр Odoo у провайдера OAuth
- Отримайте Client ID та Client Secret
- Налаштуйте URL переадресації
-
Обмін токенами
import requests
def get_oauth_token(client_id, client_secret):
response = requests.post(
'https://oauth.provider.com/token',
data={
'grant_type': 'client_credentials',
'client_id': client_id,
'client_secret': client_secret
}
)
return response.json()['access_token'] -
Зберігання токенів
- Безпечно зберігайте токени в Odoo
- Реалізуйте автоматичне оновлення перед закінченням терміну дії
- Обробляйте відкликання токенів
Автентифікація API ключем
Деякі API використовують власну автентифікацію API ключем:
Конфігурація
-
API ключ на основі заголовка
# У скрипті трансформації
result['headers'] = {
'X-API-Key': 'your-api-key-here'
} -
API ключ як параметр запиту
# Додавання до URL
url = f"{base_url}?api_key={api_key}"
Тестування автентифікації
Кроки перевірки
-
Тест з'єднання
# Базова автентифікація
curl -u username:password https://api.example.com/test
# Bearer Token
curl -H "Authorization: Bearer token" https://api.example.com/test -
Моніторинг логів
- Перевірте логи Odoo на помилки автентифікації
- Переглядайте логи доступу зовнішнього API
- Перевірте коди відповіді (401 = Неавторизовано)
-
Усунення несправностей
- Переконайтеся, що облікові дані правильні
- Перевірте закінчення терміну дії токена
- Переконайтеся у правильному форматуванні заголовка
- Перевірте дозволи ендпоінту API
Рекомендації щодо безпеки
Найкращі практики
-
Завжди використовуйте HTTPS
- Шифруйте всі API комунікації
- Перевіряйте SSL сертифікати
- Використовуйте TLS 1.2 або вище
-
Управління обліковими даними
- Зберігайте облікові дані в змінних середовища
- Використовуйте вбудоване шифрування Odoo для чутливих даних
- Ніколи не логуйте деталі автентифікації
-
Контроль доступу
- Впровадьте білий список IP, де це можливо
- Використовуйте обмеження швидкості для запобігання зловживанням
- Відстежуйте підозрілі патерни автентифікації
-
Аудит та відповідність
- Логуйте всі спроби автентифікації
- Регулярні аудити безпеки
- Дотримуйтесь правил захисту даних