開発中の新製品に Web API を使用することを検討しています。最初のバージョンは Web アプリケーションで、その後にモバイル/タブレット アプリケーションが続くため、Web API ルートが適しているようです。
暗号化と SSL を使用して Web API を保護することについて多くのことを読みましたが、Web API をどこから呼び出すかについてはあまり明確ではありません。
プライベート暗号化を使用して認証トークンを作成している場合、HttpClient などを利用する ASP.NET を使用して HTTP 要求を作成するのが理にかなっているようです。Web サーバーにはプライベート暗号化キーがあるため、対応するプライベートを持つ Web APIキーは、リクエストが Web サイトからのものであることを認識します。
モバイル/テーブル アプリには個別のキーなどがあるため、これは今後理にかなっています。
ばかげているように聞こえますが、ブラウザ クライアントは暗号化を行うことができないように思われます。これは、秘密鍵が比較的簡単にユーザーに表示され、その鍵を取得して他の場所で使用できるためです (モバイル/タブレット クライアントは暗号化を行うことができます)。キーを埋め込むことができるので、暗号化します)。
十分に公平ですが、暗号化を行うためにWebサーバーに投稿する場合、基本的にリクエストの詳細を暗号化せずにサーバーに送信しているため、誰かがWebサーバーに送信されたリクエストを取得して変更できますサーバーは変更を暗号化して Web API に送信します。
キーを明らかにせずにクライアント (javascript) から暗号化された Web API リクエストを送信する方法はありますか? サーバーリクエストについては正しいですか?SSL はその問題を解決しますか?
私は、Web API の保護に関するすべての情報を少し混乱させていると思います。