Agent SDK Секрети та HMAC Підпис
Захистіть облікові дані агента API і зрозумійте, як SDK генерує підписи запитів HMAC-SHA256 із міткою часу, стійкі до повторного відтворення.
Agent SDK запити автентифікуються за допомогою партнерського секрету API. Зберігайте цю таємницю в надійній серверній службі та дозволяйте SDK генерувати поля підпису, коли це можливо.
Два протоколи підписання
Підписання Agent SDK використовує відсортовані поля запиту, мітку часу на основі секунд і одноразовий номер. Прямі Developer API запити використовують окремий процес, описаний у Підписання запиту. Не використовуйте повторно один формат корисного навантаження для іншого.
Правило підписання
Для Agent SDK запитів:
- Виключіть поле
sign. - Пропустити поля з порожніми значеннями.
- Відсортуйте назви решти полів у порядку ASCII.
- Об’єднайте поля як
k=v&k2=v2. - Обчисліть HMAC-SHA256 шістнадцятковий підпис за допомогою
apiSecret.
Значення масиву серіалізуються як компактний JSON перед приєднанням до корисного навантаження підпису. Наприклад, platformUserIds підписується як ["1188041528"], надаючи platformUserIds=["1188041528"] у корисному навантаженні k=v. Зберігати порядок елементів масиву, подвійні лапки та ідентифікатори рядків; не вставляйте пробіли форматування та не використовуйте Java List.toString() (наприклад, [1188041528]). SDK обробляє цю серіалізацію автоматично.
SDK має створити це значення з тих самих даних, які він надсилає. Зміна підписаного поля після створення підпису спричиняє помилку підтвердження.
SDK-керовані поля
Таємне сховище
- Завантажте
apiSecretіз серверного секретного менеджера або захищеної конфігурації середовища виконання. - Ніколи не розміщуйте секрет у пакетах інтерфейсу, мобільних програмах, настільних клієнтах, знімках екрана чи заявках у службу підтримки.
- Зберігайте окремо облікові дані для розробки, постановки та виробництва.
- Обмежте доступ до послуг і операторів, яким це потрібно.
- Видаліть із журналів підписи запитів, значення авторизації та секрети.
- Відкликайте та замінюйте облікові дані, якщо є підозра на зараження.
Захист годинника та відтворення
SDK містить timestamp і nonce для зменшення ризику повторного відтворення. Підтримуйте синхронізацію внутрішніх годинників і не використовуйте повторно створений вручну nonce. Якщо перевірка підпису не вдалася, підтвердьте налаштований секрет, час сервера, серіалізовані поля та середовище перед повторною спробою.