Авторизуйте запросы из внешней CRM к API B2COPY с помощью service admin и подписанных JWT-токенов (ES256). На этой странице — предварительные условия, генерация ключей, выдача токенов и получение/обновление токенов B2COPY.
Предварительные условия
- Создайте service admin в Admin panel, от имени которого CRM выполняет API-запросы (рекомендуется ограничить доступ по IP-адресам).
- Настройте CRM на генерацию подписанных JWT с claims
admin_id(id service admin),device_ip(IP запроса) иkey_id(id приватного ключа).
Сгенерируйте ключи
Сгенерируйте пару EC-ключей (P-256) для подписи и проверки токенов:
# Private key
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 \
-out ec_private_pkcs8.pem
# Public key
openssl pkey -in ec_private_pkcs8.pem -pubout -out ec_public.pemБезопасность
Храните приватный ключ в секрете и никому не передавайте. Команде поддержки B2COPY предоставляйте только публичный ключ — он используется для проверки ваших подписанных JWT.
Обратитесь в поддержку B2COPY
Чтобы завершить интеграцию, отправьте в поддержку публичный ключ (ec_public.pem), уникальный идентификатор ключа и IP-адреса, с которых будут выполняться API-вызовы. Support зарегистрирует интеграцию и настроит публичный ключ.
Получите access и refresh tokens
POST [host]/api/admin/auth/v2/admin/adminservice/authexternalcrm| Имя | Тип | Обязательно | Описание |
|---|---|---|---|
| external_token | string | Да | Подписанный JWT, сгенерированный вашей CRM. |
curl -X POST "[host]/api/admin/auth/v2/admin/adminservice/authexternalcrm" \
-d '{ "external_token": "<your-generated-jwt-token>" }'Ответ возвращает access и refresh tokens для service admin; передавайте access token в заголовке Authorization всех остальных запросов.
{
"accessToken": "<access-token>",
"refreshToken": "<refresh-token>"
}Обновите access token
POST [host]/api/admin/auth/v2/admin/adminservice/refreshtokencurl -X POST "[host]/api/admin/auth/v2/admin/adminservice/refreshtoken" \
-H "Authorization: Bearer <refreshToken>"Возвращает новую пару access/refresh tokens.
