Web アプリケーションはユーザーに対して何も隠すことができないため、API と通信するアプリケーションが自分のものであることを保証する方法はないと思います。
できることはすべて、あいまいさによるセキュリティであり、定義上、安全ではありません。
編集
私は解決策を持っていますが、まだ安全ではありませんが、それはアイデアです。
まず、2 つの認証システムを持つことです。
- 第三者認証(APIトークン)
- Webアプリ認証(APIトークン+Webトークン)
それならあなたの考えに少し似ています。HTTP セッションごとにトークンを生成します。違いは、Web アプリ(呼び出しはそのように認証されます) には下限があることです。(例: サード パーティの場合は 10k、Web アプリの場合は 1k)。承認された呼び出しの数を減らす必要がある理由は、1 つの HTTP セッション (背後に 1 人) が生成する API 呼び出しがサード パーティのアプリよりも少ないためです。それはあなたの場合ですか?
もちろん、サード パーティ アプリケーションは Web アプリとして簡単に認証できますが、その場合はセッションをより迅速に更新する必要があるため、IP ごとのセッション数を監視できます。大学や企業は、多くの場合、単一の IP に大きく遅れをとっていることに注意してください。