問題タブ [role-base-authorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
329 参照

mysql - Rails での動的にカスタマイズ可能なグループベースの承認

現在、私のアプリでは、訪問者が持つことができる役割は 3 つだけです。

  • adminすべての特権を持つ
  • userシステム内で自分自身に関するいくつかのアクションを実行できる
  • guestバグレポートを見て送信できる

次のように、すべてがプリミティブに実装されています。DB では、各ユーザーには自分の存在admin(フィールドでの略2) またはuser( 1) が示されるフィールドがあり、application_controller.rbそれは単にチェックif logged_in? && current_user.DB_FIELD == 2(または> 0) され、必要なコントローラーでは発生します。小切手before_filterなど

ただし、システムの機能を拡張することを決定した最近まで、このような単純な実装はうまく機能していました。つまり、管理者がユーザーをグループに参加できるようにすることでした。私が質問しようとしていることをよりよく理解するために、私が見ている状況を説明させてください (もっと適切で論理的なものを提案できるかもしれません):

  1. 私は管理者です。を開く/groupsと、グループのリストが表示されます。
    • グループとは グループは、一方では権限のセットであり、他方では、アプリ内で同じ権限を持つ必要があるユーザーの組み合わせです。
    • 許可とは何ですか?パーミッションは、割り当てられたグループの各ユーザーが実行できる1 つのアクションです。
  2. 新しいユーザーを 1 つのグループにまとめたいのですが、このグループは存在しません。ボタン ( の略/groups/new) をクリックすると、[グループの作成] ウィンドウが表示されます。そこには、グループ名用のテキストフィールド、多数のチェックボックス、それぞれが許可を表すもの、ユーザーを追加するためのフィールド、および保存ボタンがあります。グループ名を書き、このグループに割り当てたいすべての権限を確認し、このグループにユーザーを追加します (これを ajax 検索で実装します。ユーザー名を入力し始めると、そのユーザーが表示され、Enter をクリックすると、ユーザーが追加されたら、必要に応じてこれらのアクションを繰り返します (それで問題ないでしょうか?)、[保存] をクリックします。
  3. わかりました、複数のユーザーを持つ新しいグループを取得しました。でもやめて、もう一人追加するのを忘れていたことに気付きました![グループの編集] ウィンドウ ( /groups/edit) に戻り、誤って入力されたフィールドを再入力します。[保存] をクリックし、もう一度マジック (つまり、DB に対する更新操作) をクリックします。

それで、最終段階で私は何を持っていますか?グループを自由にc/r/u/dして、ユーザーと権限を管理し、非常にGUI主導の方法で実行できます(つまり、チェックボックス、ajax検索フィールドなど)。

2週間、私はレールの役割とグループベースの承認に関する情報をグーグル/スタックオーバーフロー/精査してきました。cancan 、 easy_rolestrolesなどの多くの解決策を見つけましたが、動的 (またはカスタマイズ可能? または動的にカスタマイズ可能?) なグループベースのアプローチを実装する方法をそれらのいずれにも見つけることができません。私のニーズに本当に100%適合する唯一のものは、redmineパーミッションとパーミッショングループのアプローチですが、9000を超える機能のために複雑すぎて、実装方法を完全に理解することさえできませんでした。 .

そして質問は (権限のセットが永続的であるためハードコーディングできると仮定し、グループのセットは完全に無料であると仮定します; また、ユーザーがどのグループにも属していない場合、デフォルトのユーザー権限があります; さらに、権限c/r/u/d 操作だけでなく、手動で作成したメソッドにも使用できます):

  1. 上記のシステムを実装する最良の方法は何ですか? 私がまだ見つけていない既存の宝石やアプローチはありますか?
  2. 権限と権限グループを簡単にスケーラビリティに保存するにはどうすればよいですか? ビットマスク、または個別のアクセス許可、グループへのアクセス許可の割り当て、およびグループ テーブル?
  3. ユーザーを簡単にグループに入れる方法は? ユーザーの DB 行のグループ フィールド、または別のユーザーからグループへの割り当てテーブル?

できれば、ユーザーが追加されるグループに割り当てられたアクセス許可が、ユーザーの再ログインなしで即座に適用されることをお勧めします。

よろしくお願いします!

0 投票する
1 に答える
698 参照

authorization - 認可: ユーザー認可に基づくデータのフィルタリング

以下のような認可ルールを実装する必要があります。

ユーザーがスーパー管理者の場合は、すべての顧客情報を彼に提供してください。注文情報など。ユーザーが顧客管理者である場合は、彼自身の顧客情報のみを提供してください。等。

DAO層でのフィルタリングを実装する予定です。

このシナリオを処理するための一般的な設計を作成するための提案は何ですか? アプリケーションには、RBAC (ロールベースの承認制御) 用の DB モデルが既にあると仮定します。JPAやiBATIS、ネイティブクエリなど、あらゆるDAOテクノロジーに対応しています。

大まかな承認基準は次のとおりです。認可ポリシーは構成可能で、実行時に変更できる必要があります。例: 顧客管理者が自分のデータを表示できる場合、将来的にルールを変更して、自分と友人のデータを表示できるようにすることができます。

XACML のような承認ポリシーを評価しましたが、その複雑さのために実装するのは好きではありませんでした。自家製のソリューションを作成する予定です。任意の提案を歓迎します。

0 投票する
1 に答える
254 参照

.net - SecurityException vs UnauthorizedAccessException

私のアプリケーションにはロールベースのセキュリティがあります。ユーザーが何らかの操作を実行しようとしたときに、そのユーザーが属するロールにその権限がない場合、例外がスローされます。

今、私はこのコードをリファクタリングしていて、基本Exceptionクラスが醜い場合の使用法を見つけました。どのクラスのインスタンスを使用すればよいですか? または、サブクラス化する必要がありますか?

編集

フレーム内を検索したところ、2 つ見つかりました。しかし、実際にはどれも当てはまりません。SecurityExceptionBCL自体の一部のようです。名前空間UnauthorizedAccessExceptionの下にあります。この場合、(継承元として)IO最も適切な例外はどれですか?

0 投票する
1 に答える
772 参照

spring - 春の基本認証

こんにちは、認証用のログインフォーム構成がいくつかあります。単純なログインフォームを次のように置き換えたいです

このフォームのように動作し、spnegoAuthenticationProcessingFilter を使用します。

これは私の春のセキュリティ構成です:

これは可能ですか?

0 投票する
1 に答える
479 参照

asp.net-mvc - Web API を使用した ASP.NET MVC プロジェクト: 単純な承認/認証はユートピアですか?

かなり単純な中規模のアプリケーションを構築したいと考えています。

ただし、次の 2 つの領域で強力でなければなりません。

1) 最小限のロールの実装による認証/承認 (ユーザーは通常またはプロのいずれかになります)

2) ユーザーデータの暗号化。

Identity の v2 が出てくるのを見てうれしく思い、今こそ学び始める時だと思いました。

残念ながら、すべてのリソースは、Visual Studio テンプレートのビルド前ロジックのロジックに従います。その後、Identity を本当にマスターしたいのであれば、それはできません...永続性のために EF が気に入らない場合は、不運です...

確かに、セキュリティ フレームワークのカスタム リライトを管理することはできません。

MVC/Web Api プロジェクトに単純な認証/承認を入れるための簡単な方法を見つけることができないのはイライラします。

これをLaravelにビルドすることを考え始めるほどイライラします...

それで、私は何をすべきか考え始めましたか?

フォーム認証に関するこの提案を読みました: ASP.NET MVC でのカスタム認証と承認

また、私はこの非常に良いSOの記事を読みました

しかし、私は自分のユーザーにとって安全な方法を決定する必要があり、v2 では MS のアイデンティティはすべてを欲しがる甘やかされた子供にすぎないと思います....

0 投票する
2 に答える
437 参照

asp.net-mvc - ASP MVC 4 各リクエスト後のユーザーログアウト

私は開発システムで非常にうまく機能しているAsp Mvc 4プロジェクトに取り組んでおり、デモホスティングサーバーでも非常にうまく機能しています。しかし、クライアントのサーバーにサイトをアップロードすると、各ページでログインが求められます。あるページにログインすると、そのページでアクションを実行できます。しかし、別のページを開くと、再度ログインページにリダイレクトされます。

理由がわかりません。ローカル システムとデモ ホスティングで問題なく動作するためです。しかし、クライアント ホスティングでは、このように動作します。

カスタム承認属性を使用しています。しかし、私はこの方法を非常にうまく機能している別のサイトで使用しています。

アイデアや解決策を教えてください。

以下は私のweb.configファイルです: