OAuthプロトコルを使用する場合は、委任先のサービスから取得した秘密の文字列が必要です。これをWebアプリで実行している場合、シークレットをデータベースまたはファイルシステムに格納できますが、モバイルアプリ(またはその点ではデスクトップアプリ)でシークレットを処理するための最良の方法は何ですか?
文字列をアプリに保存することは、誰かが簡単に見つけて悪用する可能性があるため、明らかに良いことではありません。
別のアプローチは、それをサーバーに保存し、アプリを実行するたびにフェッチし、電話に保存しないことです。アプリにURLを含める必要があるため、これはほぼ同じです。
私が思いつくことができる唯一の実行可能な解決策は、最初に通常どおりにアクセストークンを取得し(できればアプリ内のWebビューを使用して)、次にすべての通信をサーバー経由でルーティングすることです。これにより、要求データにシークレットが追加されて通信しますプロバイダーと。繰り返しになりますが、私はセキュリティの初心者なので、これについて知識のある人々の意見を本当に聞きたいです。ほとんどのアプリは、セキュリティを保証するためにこれらの長さにしようとしているようには見えません(たとえば、Facebook Connectは、アプリ内の文字列にシークレットを挿入すると想定しているようです)。
もう1つ、秘密が最初にアクセストークンを要求することに関係しているとは思わないので、それは私たち自身のサーバーを関与させることなく実行できます。私は正しいですか?