[解決済み] REST API / ウェブサービスを保護するためのベストプラクティス [終了しました]。
質問事項
REST APIやサービスを設計するとき、セキュリティ(認証、認可、アイデンティティ管理)に対処するための確立されたベストプラクティスはありますか?
SOAP APIを構築する場合、WS-Securityをガイドとして持っており、このトピックに関する多くの文献が存在します。RESTエンドポイントのセキュリティについては、あまり情報を見かけません。
RESTは意図的にWS-*に類似した仕様を持っていないことは理解していますが、ベストプラクティスや推奨パターンが出現していることを期待しています。
何か議論や関連文書へのリンクがあれば、非常にありがたいです。 もし重要であれば、私たちは.NET Frameworkのv3.5を使用して構築したREST API/サービスに対して、POX/JSONシリアライズメッセージでWCFを使用することになるでしょう。
解決方法は?
tweaktさんがおっしゃるように、Amazon S3は良いモデルだと思います。彼らのリクエストシグネチャは、偶発的および悪意のあるリクエストの再生から保護するのに役立ついくつかの機能(タイムスタンプを組み込むなど)を持っています。
HTTP Basicの良いところは、ほぼすべてのHTTPライブラリがサポートしていることです。もちろん、ネット上で平文のパスワードを送ることはほぼ例外なく悪いことなので、この場合はSSLを要求する必要があります。SSL を使う場合、ダイジェストよりもベーシックの方が望ましいです。 なぜなら、たとえ呼び出し側が認証が必要であることを知っていたとしても、 ダイジェストでは nonce 値を交換するために余計なラウンドトリップが必要になるからです。ベーシックでは、呼び出し側は単に初回に認証情報を送信するだけです。
クライアントのアイデンティティが確立されれば、認証は単なる実装上の問題に過ぎません。しかし、既存の認可モデルを持つ他のコンポーネントに認可を委ねることができます。Basic の良いところは、クライアントのパスワードのプレーンテキストコピーをサーバーに保存し、必要に応じてインフラ内の別のコンポーネントに渡すことができることです。
関連
-
[解決済み] (413) リクエストエンティティが大きすぎる|uploadReadAheadSize
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] REST API / ウェブサービスを保護するためのベストプラクティス [終了しました]。
-
[解決済み] WCFサービスのREST / SOAPエンドポイント
-
[解決済み] RESTのネストされたリソースのベストプラクティスは何ですか?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み】API paginationのベストプラクティス
-
[解決済み】REST API - ファイル(画像)処理 - ベストプラクティス
-
[解決済み】REST認証スキームの安全性
-
[解決済み] すべてのWCF呼び出しにカスタムHTTPヘッダを追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] デフォルトのエンドポイント要素が見つからない
-
[解決済み] (413) リクエストエンティティが大きすぎる|uploadReadAheadSize
-
[解決済み] Windows 7のsvcutil.exeはどこにあるのですか?
-
[解決済み] 受信メッセージの最大メッセージサイズ枠(65536)...枠を増やすには、MaxReceivedMessageSizeプロパティを使用します。
-
[解決済み] w3wp.exeとは何ですか?
-
[解決済み】WCFとASMXのWebサービスの違いは何ですか?
-
[解決済み】WCFサービスからきれいなJSONを返すにはどうすればいいですか?
-
[解決済み】REST認証スキームの安全性
-
[解決済み] すべてのWCF呼び出しにカスタムHTTPヘッダを追加するには?
-
[解決済み] WCFトレースをオンにするには?