Agent SDK Sekrety i podpisywanie HMAC

Chroń dane uwierzytelniające agenta API i zrozum, jak SDK generuje HMACz oznaczniami czasowymi, odpornymi na powtarzalność –SHA256 podpisy żądań.

Zobacz jako Markdown

Agent SDK żądania są uwierzytelniane przez partnera API tajne. Zachowaj tę tajemnicę w zaufanej usłudze backendowej i pozwól SDK generować pola podpisu, kiedy tylko to możliwe.

Dwa protokoły podpisowe

Agent SDK podpisywanie wykorzystuje posortowane pola żądań, znacznik czasu oparty na sekundach oraz nonce. Bezpośrednie żądania API dewelopera korzystają z osobnego procesu opisanego w Request Signing. Nie używaj jednego formatu payloadu dla drugiego.

Zasada podpisywania

Na Agent SDK prośby:

  1. Wyklucz pole sign .
  2. Pomijam pola o wartościach pustych.
  3. Uporządkuj pozostałe nazwy pól w ASCII kolejności.
  4. Połącz pola jako k=v&k2=v2.
  5. Oblicz podpis HMAC-SHA256 szesnastkowy z apiSecret.

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

PoleŹródłoOpis
agentCodeSDK konfiguracjaKod agenta partnera.
Znacznik czasuAktualny czas trwania serweraZnacznik czasu Unixa w sekundy.
NonceBezpieczna wartość losowaLosowy ciąg przed ochroną przed odtwarzaniem.
ZnakHMAC-SHA256Proszę o podpis.
WalutaDomyślna walutaUżywa się go przy przelewach/kontach API pomijania waluty.

Tajne przechowywanie

  • Ładowanie apiSecret z backendowego menedżera tajemnic lub chronionej konfiguracji wykonawczej.
  • Nigdy nie umieszczaj sekretu w pakietach frontendowych, aplikacjach mobilnych, klientach desktopowych, zrzutach ekranu ani zgłoszeniach wsparcia.
  • Utrzymywanie danych uwierzytelniających do rozwoju, etapowania i produkcji oddzielnie.
  • Ograniczenie dostępu do usług i operatorów, którzy tego wymagają.
  • Redact żądania podpisów, wartości autoryzacji i sekretów z logów.
  • Cofnięcie i wymiana uprawnień, gdy podejrzewa się narażenie.

Ochrona przed zegarem i powtórkami

SDK zawiera timestamp i nonce, aby zmniejszyć ryzyko powtórek. Utrzymuj synchronizację zegarów backendu i nie używaj ponownie ręcznie skonstruowanego nonce. Jeśli weryfikacja sygnatury się nie powiedzie, potwierdź skonfigurowany sekret, czas serwera, pola serializowane i środowisko przed ponowną próbą.

Lista kontrolna integracji

SprawdzoneOczekiwany wynik
Tajna lokalizacjaTajna pamięć tylko w backendzie.
ŚrodowiskoPodstawy URL i kwalifikacje należą do tego samego środowiska.
Prowadzenie w terenieSDK generuje timestamp, noncei sign.
WycinkowanieIdentyfikatory firmowe pozostają widoczne, podczas gdy poświadczenia są cenzurowane.
RotacjaProces posiadania uprawnień i wymiany są dokumentowane.