状況
Web ページが AJAX 呼び出しを行う予定のプロジェクトがあります。外部クライアントにも REST API が提供されます。ASP.NET MVC 4 と Web API を使用して、このプロジェクトを実装します。
[Authorize]
人々がセキュリティのために属性を使用するさまざまな例をオンラインで見てきました。これは、Web ページで AJAX を介して Web API が呼び出されるたびに起こると思います。
API キーが各リクエストと共に (クエリ文字列またはヘッダーを介して) 渡されるさまざまな例も見てきました。これは、Web API が外部システムから呼び出されるたびに発生すると思います。
質問
すぐに頭に浮かぶ質問は次のとおりです。
- 内部クライアントと外部クライアント用に別のコントローラーを作成する必要がありますか?
- または、Web ページで同じ外部認証モデルを使用するように強制する必要がありますか?
- または、外部クライアントが Authorize 属性を使用できる方法はありますか?
- または、フォームまたは認証の両方を同時にサポートする必要がありますか?
補足事項
同僚は、Web アプリがホストされている場所とはまったく異なる URL に API をデプロイしたいかもしれないと指摘しました。同様に、彼は、外部 API をより粗くするか、個別に進化させる必要があるかもしれないと指摘しました。
ここで車輪を再発明したくありません。これは、そもそも Web API を AJAX 呼び出しの内部 API として使用する必要があるのか、それとも[HttpPost]
属性を使用した古い学校の MVC アクションに固執する必要があるのか 疑問に思います。