ASP.NET MVCまたはASP.NETプロジェクトの拡張なしのWeb API 2プロジェクトがあります。 APIは、サーバーとWindows 8、Windows Phone 8.1、iOSアプリケーション間の通信にのみ使用されます。 APIを使用するWebサイトはありません。 APIにより、ユーザーは倉庫内の製品を管理できます。ユーザーはデータベース内の製品を追加、削除、および確認できます。
public class User
{
public int Id { get; set; }
[Required]
public string UserName { get; set; }
[Required]
public string DisplayName{ get; set; }
[Required]
public bool IsEnabled {get; set;}
}
特別なことは何もありません-Entitiy Frameworkのモデルにすぎません。もちろん商品のモデルも存在します。これはデータのセキュリティにとって重要ではないため、ユーザーからのパスワードは必要ありません。 APIのユーザーはお互いのユーザー名を知ることはなく、お互いの表示名だけを知っています。
問題は、Web APIのセキュリティに関するものです。 APIを全世界に公開したくありません。アプリケーションだけです。だから私は多くの研究を行ってきました、そして私はシナリオから次のような研究をしています:
APIで高レベルのセキュリティを確保する最善の方法は、次のとおりです。
APIで高レベルのセキュリティを確保する最善の方法は、次のとおりです。
2つのシナリオからアイテムを追加/削除してください。また、より安全な新しいシナリオを追加してください。
何が起こっているのかを理解し、動作を制御する方が少し簡単だと思うので、私は賛成#1に投票します。私たちはこのアプローチを使用して、それほど大騒ぎすることなく、かなり大きな企業向けアプリを構築しました。また、必要に応じて簡単にカスタマイズできます(たとえば、ユーザーごとに1つのトークンで十分ですか?ユーザーが複数のデバイスから同時にログインする場合、複数のトークンが必要ですか?)。しかし、それは依存します-いつものように。どちらも完全に実行可能なアプローチです。基本的に、必要なすべての機能を備えていて、他の方法では不可能な場合でも、基本的にはより快適な方法です。
私たちのケース#1は実装が簡単で、すべてのニーズをカバーしていたので、あなたのケースは異なるかもしれません...