REST API / Web サービスのセキュリティを確保するためのベスト プラクティス [closed] 質問する

REST API / Web サービスのセキュリティを確保するためのベスト プラクティス [closed] 質問する

REST API またはサービスを設計する際に、セキュリティ (認証、承認、ID 管理) に対処するための確立されたベスト プラクティスはありますか?

SOAP API を構築する場合、WS-Security をガイドとして使用し、このトピックに関する多くの文献が存在します。REST エンドポイントのセキュリティ保護に関する情報はあまり見つかりませんでした。

REST には意図的に WS-* に類似した仕様がないことは理解していますが、ベスト プラクティスや推奨パターンが登場することを期待しています。

関連するドキュメントへのディスカッションやリンクがあれば、ぜひお知らせください。重要であれば、.NET Framework の v3.5 を使用して構築された REST API/サービスに、POX/JSON シリアル化メッセージで WCF を使用する予定です。

ベストアンサー1

tweakt が言ったように、Amazon S3 は作業に適したモデルです。Amazon のリクエスト署名には、偶発的および悪意のあるリクエストの再生の両方を防ぐのに役立つ機能 (タイムスタンプの組み込みなど) がいくつかあります。

HTTP Basic の優れた点は、事実上すべての HTTP ライブラリがこれをサポートしていることです。もちろん、この場合は SSL が必要です。なぜなら、プレーンテキストのパスワードをネット経由で送信することは、ほぼ例外なく悪いことだからです。SSL を使用する場合は、呼び出し側が資格情報が必要であることを既に知っている場合でも、Digest では nonce 値を交換するために追加のラウンドトリップが必要になるため、Digest よりも Basic の方が適しています。Basic では、呼び出し側は最初に資格情報を送信するだけです。

クライアントの ID が確立されると、承認は実際には実装の問題になります。ただし、既存の承認モデルを使用して、承認を他のコンポーネントに委任することもできます。ここでも、Basic の優れた点は、サーバーがクライアントのパスワードのプレーンテキスト コピーを取得し、必要に応じてインフラストラクチャ内の別のコンポーネントに渡すことができることです。

おすすめ記事