Авторизуйте запросы от вашего внешнего CRM к B2COPY API с помощью администратора службы и подписанных токенов JWT (ES256). На этой странице описаны предварительные требования, генерация ключей, выпуск токенов и получение/обновление токенов B2COPY.
Предварительные условия
- Создайте администратора службы в панели администратора, от имени которого CRM выполняет запросы API (рекомендуется ограничить его конкретными адресами IP).
- Настройте CRM для создания подписанных JWT, утверждения которых включают
admin_id(идентификатор администратора службы),device_ip(запрос IP) иkey_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. Служба поддержки регистрирует вашу интеграцию и настраивает открытый ключ.
Получить доступ и обновить токены
POST [host]/api/admin/auth/v2/admin/adminservice/authexternalcrm| Имя | Тип | Требуется | Описание |
|---|---|---|---|
| external_token | строка | Да | Подписанный JWT, созданный вашим CRM. |
curl -X POST "[host]/api/admin/auth/v2/admin/adminservice/authexternalcrm" \
-d '{ "external_token": "<your-generated-jwt-token>" }'Ответ возвращает токены доступа и обновления для администратора службы; включите токен доступа в заголовок Authorization всех остальных запросов.
{
"accessToken": "<access-token>",
"refreshToken": "<refresh-token>"
}Обновить токен доступа
POST [host]/api/admin/auth/v2/admin/adminservice/refreshtokencurl -X POST "[host]/api/admin/auth/v2/admin/adminservice/refreshtoken" \
-H "Authorization: Bearer <refreshToken>"Возвращает новую пару токенов доступа/обновления.
