すべてのクライアント側テクノロジー(HTML、CSS、JavaScript / AngularJSなど)になるこのWebアプリケーションがあります。このWebアプリケーションは、データにアクセスして変更するためにREST APIと対話します。現時点では、REST APIが使用する認証システムの種類については未定です。
私の理解では、あらゆる種類のAPI認証システム(APIキー、OAuth 1/2など)には特定のデータが含まれる必要があり、そうしないとアクセスが危険にさらされる可能性があります。APIキーの場合、キー自体は秘密である必要があり、OAuth 2の場合、クライアントのシークレット/アクセストークン/リフレッシュトークンを秘密にする必要があります。OAuth1に含まれる4つのキーのいくつかは秘密にする必要があります。 OAuthの経験が多すぎる1)。サーバーサイドに中間層を配置せずに、純粋なクライアントサイドのWebアプリケーションにこの秘密のものを保存する方法があるかどうか考えていました。
私はこれについて考えようとしてきましたが、それを行う場所は考えられません。誰でもソースを表示したり、コンソールを開いてデータを取得したりできるため、JavaScriptに保存することはできません。localStorageの安全性と、ユーザーがそのデータにアクセス/変更できるかどうかは100%わかりません。ローカルストレージが安全であったとしても、そこにデータを取り込む2つの方法は考えられません。一つの方法は、私が考えることができる最も安全でないものであるjavascriptソースコードにデータを保存することです。残りのapi自体がトークンを提供するOAuth 2のようなものを使用している場合、トークンはプレーンテキストとして返されるため、これらのトークンは(最初のオプションよりも)安全ではありません。コンピューターが行っているリクエストは見ることができます。
クライアント側で完全に実行されているアプリケーションに、サーバー側の中間層を使用せずに、機密データを安全に保存できる方法はありますか?