Agent SDK Sekrety i HMAC Podpisywanie
Chroń dane uwierzytelniające agenta API i poznaj, w jaki sposób SDK generuje podpisy żądań HMAC-SHA256 ze znacznikami czasu i odpornymi na powtarzanie.
Żądania Agent SDK są uwierzytelniane przy użyciu sekretu partnera API. Zachowaj ten sekret w zaufanej usłudze zaplecza i pozwól SDK wygenerować pola do podpisu, jeśli to możliwe.
Dwa protokoły podpisywania
Podpisywanie Agent SDK wykorzystuje posortowane pola żądań, znacznik czasu oparty na sekundach i wartość jednorazową. Bezpośrednie żądania Developer API korzystają z osobnego procesu opisanego w Poproś o podpisanie. Nie używaj ponownie jednego formatu ładunku dla drugiego.
Zasada podpisywania
W przypadku żądań Agent SDK:
- Wyklucz pole
sign. - Pomiń pola z pustymi wartościami.
- Posortuj pozostałe nazwy pól w kolejności ASCII.
- Połącz pola jako
k=v&k2=v2. - Oblicz HMAC-SHA256 podpis szesnastkowy za pomocą
apiSecret.
Wartości tablicy są serializowane jako kompaktowe JSON przed dołączeniem do ładunku podpisującego. Na przykład platformUserIds znakuje jako ["1188041528"], podając platformUserIds=["1188041528"] w ładunku k=v. Zachowaj kolejność elementów tablicy, podwójne cudzysłowy i identyfikatory ciągów; nie wstawiaj spacji formatujących ani nie używaj Java List.toString() (np. [1188041528]). SDK automatycznie obsługuje tę serializację.
SDK powinien zbudować tę wartość na podstawie tych samych danych, które wysyła. Zmiana podpisanego pola po wygenerowaniu podpisu powoduje niepowodzenie weryfikacji.
SDK-zarządzane pola
Tajne przechowywanie
- Załaduj
apiSecretz menedżera tajnych danych zaplecza lub konfiguracji chronionego środowiska wykonawczego. - Nigdy nie umieszczaj sekretu w pakietach frontendowych, aplikacjach mobilnych, klientach stacjonarnych, zrzutach ekranu lub zgłoszeniach pomocy technicznej.
- Trzymaj oddzielnie dane uwierzytelniające do programowania, testowania i produkcji.
- Ogranicz dostęp do usług i operatorów, którzy tego wymagają.
- Redaguj podpisy żądań, wartości autoryzacji i wpisy tajne z dzienników.
- Jeśli istnieje podejrzenie narażenia, unieważnij i zastąp dane uwierzytelniające.
Ochrona zegara i odtwarzania
SDK obejmuje timestamp i nonce, aby zmniejszyć ryzyko powtórki. Synchronizuj zegary zaplecza i nie używaj ponownie ręcznie skonstruowanej wartości jednorazowej. Jeśli weryfikacja podpisu nie powiedzie się, przed ponowną próbą potwierdź skonfigurowany klucz tajny, czas serwera, pola serializowane i środowisko.