Web アプリケーションでのみ使用したい一連の REST サービスがあります。ユーザーが自分の資格情報を使用したり、サービスをサード パーティのアプリケーションに使用させたりしたくありません (データは有料であるため)。私の JavaScript だけが、スプーフィングできないブラウザーからサービスを呼び出すことができるようにする方法があります (たとえば、要求ヘッダーとユーザー エージェントの検出は機能しません)。
これはおそらく、よりクリエイティブな問題です。
署名されたクライアント証明書とHTTPS。
RESTAPIも提供しています。常に静的であり、なりすましの可能性があるAPIキーを組み合わせて使用しています。次は、クリネット側で生成され、リクエストごとにサーバー側で証明される署名です。署名は、すべてのパラメーターと秘密のパスワードの組み合わせによって作成されます。これにより、中間者が、たとえば別のパラメータを使用して同じ呼び出しを実行するのを防ぐことができます。
唯一の悪い点は、なりすましのリクエストを再度送信できることです。私はそれを防ぐ方法をすでに知りません。