私はRESTを介して公開しているAPIを持っており、当局の制限をどこに置くかについて検討しています。
サービスレイヤーは作業を行うものであり、どこに呼び出されるかわからないため、サービスレイヤーのセキュリティ保護に関するベストプラクティスがあることを読みましたが、WSに関するベストプラクティスはわかりません。層。
私が持っている考えの1つは、一方ではDRYの原則に違反することを最小限に抑えるために、サービス層に非常に細かい承認モデルを、WS層に非常に粗い承認モデルを用意する必要があるということです。多層防御。
例:
Users
リソースには、とUserWS
がありUserService
ます。管理者はユーザーを作成/更新/削除でき、ユーザーは他のユーザーについて読むことができます。がバインドされている
と仮定すると、そこに到達するにはユーザーである必要があるとだけ言っている権限を 持つそのURLのを定義しますが、サービスレイヤー自体が関連するメソッドの特定の権限を指定します。UserWS
%root%/users
intercept-url
ROLE_USER
その他のオプションは次のとおりです。
サービスとWS-Proの両方に同じ認証要件を設定し
ます-できるだけ早く侵入者を除外します(たとえば、spring mvcを使用している場合はパラメーターの変換を保存します)
構成の重複はメンテナンスです問題が発生し、エラーが発生しやすい=>セキュリティの問題
WS Con-から来る場合は、できるだけ早くWS-Pro-Filterにのみ許可要件を設定します
。サービスレイヤーは異なるコンテキストから使用される可能性があります。承認要件をサービスにのみプレートします
-Pro-重複なし
の問題-「率直に」不適切な要求がサービスレイヤーに到着することを許可するオーバーヘッド
オプションについてのフィードバックを本当にいただければ幸いです