java - 前后端分离中后端提供的RESTFUL接口如何进行权限控制?
ringa_lee
ringa_lee 2017-04-18 10:09:00
0
7
645
ringa_lee
ringa_lee

ringa_lee

全員に返信(7)
阿神

ロールベースの権限制御は良い考えではありません。詳細については、次の記事を参照してください: https://stormpath.com/blog/ne...

私のプロジェクトでも hiro を使用していますが、これはロールに基づいているのではなく、権限に基づいています。簡単に言うとこんな感じです:

  1. 各 URL、メニュー、ボタンはリソースであり、このリソースには対応する権限があります

  2. キャラクターには許可が与えられています (複数)

  3. このキャラクターがリソースを取得できるかどうかを判断する方法は非常に簡単で、このキャラクターに対応するリソース権限があるかどうかを確認するだけです

  4. ここでは許可のみがハードコードされています

いいねを押す +0
Peter_Zhu

すべてのバックエンドリクエストは検証する必要があります。たとえば、ユーザー情報リストを取得するための ajax リクエストは、現在のリクエストにリストを取得する権限があるかどうかを確認し、要求された Cookie を取得し、セッションとの接続を確立します。サーバーに許可がある場合はデータを渡し、そうでない場合は 403 などを返します。

いいねを押す +0
巴扎黑

は通常、资源URL を統一的に管理し、管理プラットフォームのメンテナンス権限を提供し、interceptor/filter を使用してユーザーが対応する権限を持っているかどうかを確認します。

  1. データベースからロールを取得するのはなぜですか?権限が変わるから?この場合、リソースを維持する必要があります。そうしないと、動的なアクセス許可を実装できません。

  2. 権限は、Tomcat Manager のロールと同様に比較的単純なので、ハードコーディングを直接使用しても問題はありません。

最も重要なことは、要件がどのようなものであるべきかです。

いいねを押す +0
刘奇

質問が 2 つあると思います。

まず、他のユーザーによるインターフェイスの呼び出しを防止します。これは、トークンがない場合、またはトークンが間違っている場合、403 を返します。 token

残りは権限の問題です。hiro、spring securityなどを使用できます。セッションを使用して、異なる権限を持つユーザーを区別できます。

いいねを押す +0
阿神
  1. サーバーはトークンを生成し、クライアントにこのトークンを返します。バックエンドはフィルターを使用してそれを均一に処理します。

  2. 問題 3 が解決できれば、問題 2 は無意味になります。
  3. Shiro はコード レベルで権限を制御できることを思い出しました。ドキュメントを見てください。
いいねを押す +0
伊谢尔伦

権限には、アクション権限、データ権限、さまざまなステータス条件での権限など、複数の粒度があり、共通の RBAC と ACL は部分的な制御しか実現できず、これらを組み合わせる必要があります。それぞれの状況に応じて柔軟に応用できるため、すべての病気を治す特効薬はありません。

いいねを押す +0
洪涛

特定の操作については、Spring Security または Taro を使用して権限を管理することを検討できます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート