既知のコンシューマーのみが REST API にアクセスできるようにするために、クライアント アプリケーションは、シークレットを使用して各 HTTP リクエストに署名し、結果の署名をAPI キーと共にサーバーに送信します。
JavaScript クライアントの場合、API キーとシークレットはスクリプト自体にハードコーディングされています...では、このメカニズムは、リクエストを送信するクライアントが実際に本来あるべきクライアントであることをどのように保証するのでしょうか? シークレットが JavaScript にハードコードされていると、誰もがそれを見て、シークレットを盗み、他のアプリケーションで使用できるため、私が質問しています。
API を消費者に公開するより安全な方法はありますか? このトピックをカバーする Stackoverflow に他の投稿があることは知っています...しかし、消費者認証とユーザー認証の両方を処理する方法がわかりません。私の場合、コンシューマー認証はサード パーティが API にアクセスできるかどうかを決定し、ビジネス ロジックとは何の関係もありませんが、ユーザー認証はアプリケーション レベルで行われます (つまり、コンシューマーが識別および認証された後)。