Agent SDK 秘密と HMAC 署名
Agent SDK 秘密と HMAC 署名
エージェント API 認証情報を保護し、 SDK がどのようにタイムスタンプ付きで再生耐性のある HMACを生成するかを理解しましょう。SHA256 リクエスト署名を取得できます。
リクエストAgent SDK パートナーAPI 秘密で認証されます。その秘密は信頼できるバックエンドサービス内に保管し、可能な限りSDK が署名フィールドを生成できるようにします。
2つの署名プロトコル
Agent SDK 署名はソートされたリクエストフィールド、秒単位のタイムスタンプ、そしてノンスを使用します。ダイレクト開発者 API リクエストは、以下で説明されている別のプロセスを用います。 リクエスト署名.一方のペイロードフォーマットをもう一方に使い回さないでください。
署名ルール
Agent SDK リクエストについて:
sign場を除外する。- 空の値を使ったフィールドを省略する。
- 残りのフィールド名を ASCII 順に並べ替えます。
- 畑に加わる
k=v&k2=v2 - HMAC-SHA256 十六進署名を
apiSecretで計算します。
SDK は送信する同じデータからこの値を構築すべきです。署名生成後に署名付きフィールドを変更すると、検証が失敗します。
SDK-管理フィールド
秘密の保管
- バックエンドのシークレットマネージャまたは保護されたランタイム構成から
apiSecretをロードする。 - 秘密をフロントエンドバンドル、モバイルアプリ、デスクトップクライアント、スクリーンショット、サポートチケットに絶対に置かないでください。
- 開発、ステージング、制作の資格を分けて管理すること。
- それを必要とするサービスやオペレーターへのアクセスを制限すること。
- ログからの要求署名、認可値、秘密情報の編集。
- 露出が疑われた場合、資格情報を取り消し、再発行する。
時計と再生保護
SDK にはリプレイリスクを減らすためのtimestampとnonceが含まれています。バックエンドのクロックは同期させ、手動で構築したnonceの再利用は避けてください。シグネチャ検証が失敗した場合は、設定されたシークレット、サーバー時間、シリアライズ済みフィールド、環境を確認してから再挑戦してください。