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ń.
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:
- Wyklucz pole
sign. - Pomijam pola o wartościach pustych.
- Uporządkuj pozostałe nazwy pól w ASCII kolejności.
- Połącz pola jako
k=v&k2=v2. - 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
Tajne przechowywanie
- Ładowanie
apiSecretz 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ą.