Посібник з налаштування автентифікації
Модуль 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 ключ на основі заголовка
- Перейдіть на вкладку Заголовки у конфігурації API
- Додайте новий рядок у таблицю заголовків
- Встановіть поле Ключ як
X-API-Key - Встановіть поле Значення як
your-api-key-here