Agent SDK Секреты и HMAC подписи
Agent SDK Секреты и HMAC подписи
Защитите учетные данные API агента и поймите, как SDK генерирует временные метки, устойчивые к повтору HMAC—SHA256 запрос подписей.
Agent SDK запросы аутентифицируются у партнёра API секрете. Держите этот секрет внутри надёжного сервера и позволяйте SDK генерировать поля подписи, когда это возможно.
Два протокола подписания
Agent SDK подписание использует отсортированные поля запроса, временную метку на основе секунд и nonce. Прямой разработчик API запросов использует отдельный процесс, описанный в Request Signing. Не используйте один формат полезной нагрузки для другого.
Правило подписания
Для Agent SDK запросов:
- Исключить поле
sign. - Исключить поля с пустыми значениями.
- Отсортировать оставшиеся имена полей в ASCII порядке.
- Присоединяйтесь к полям как
k=v&k2=v2. - Вычислим HMAC-SHA256 шестнадцатеричную подпись с
apiSecret.
SDK должен строить это значение на основе тех же данных, которые он отправляет. Изменение подписанного поля после генерации подписи приводит к ошибке верификации.
SDK- управляемые поля
Секретное хранение
- Загружать
apiSecretиз серверного менеджера секретов или защищённой конфигурации во время выполнения. - Никогда не размещайте секрет в фронтенд-пакетах, мобильных приложениях, десктопных клиентах, скриншотах или заявках в поддержку.
- Держать учетные данные для разработки, стадирования и производства отдельно.
- Ограничить доступ к сервисам и операторам, которым он необходим.
- Редактировать подписи запросов, значения авторизации и секреты из логов.
- Аннулировать и заменять удостоверения при подозрении в воздействии.
Защита от часов и повторов
SDK включает timestamp и nonce для снижения риска повторного прохождения. Поддерживайте синхронизацию бэкенд-тактирования и не используйте вручную собранный nonce. Если проверка подписи не удаётся, перед повторной попыткой проверьте установленный секрет, серверное время, сериализированные поля и окружение.