問題タブ [security-roles]
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.
spring - 権限を継承するユーザーロールの定義
私は現在、Spring-Security フレームワークを調べています。これまでのところ素晴らしいもので、かなり感心しています。ただし、アクセス許可の継承をどこでどのように定義するかはわかりません。
たとえば、ROLE_ADMIN に少なくとも ROLE_USER と同じ権限を持たせたいとします。春用に 3 つのインターセプト URL を定義しました。
/voting/ からネストされたサイトにアクセスしようとすると、ROLE_ADMIN ユーザーとしてログインしているときに拒否されます。ここで何か不足していますか?/voting/* ブランチにいくつかのロールを定義できることはわかっていますが、実際のユースケースの 1 つに 10 の異なるユーザー ロールがあると想像すると、.xml ファイルが非常に乱雑になることが想像できます。速い。
ロールの継承をどこかで設定できますか?
乾杯
編集:
素晴らしいコミュニティと彼らの意見のおかげで、私は実用的な解決策を思いつきました - それは良いスタイルかもしれませんし、うまくいかないかもしれません:D
継承する spring-sec ロールを反映する列挙型を定義しました。
次に、独自の UserDetailsService を実装しました。
メソッド内
付与された権限を UserDetail に追加する場合、対応する列挙値を取得し、この列挙値によって定義されたすべてのロールを追加します。
永続化されたドメイン オブジェクトには、UserRole を持つ @Enumerated フィールドが含まれています。実際の環境では、このフィールドは DB からロードされ、対応するロールはその列挙型から選択されます。
ご意見ありがとうございます - このコミュニティが大好きです ^^
mysql - ColdFusion:役割に基づくアプリケーションオプション?
<cflogin>実装とロールによってページ全体、さらにはコンポーネントを制限する方法を理解しています。例えば:
しかし、ページの特定のファセットを制限することはどのように推奨されますか?たとえば、「管理者」はすべてのユーザーにグローバルメッセージを送信できますが、そのオプションは通常の「ユーザー」には使用できません。
セッションを使用してビュー(ページ)を操作できると思います。これは通常どのように処理されますか?
spring-security - 動的に決定する方法Spring Securityの属性値にアクセスしますか?
Spring Security では、intercept-url タグを使用して、以下のように URL へのアクセスを定義します。
これは でハードコードされていapplicationContext-security.xmlます。代わりに、データベース テーブルからアクセス値を読み取りたいと考えています。私は自分自身を定義UserDetailsServiceし、ログインしているユーザーの役割をデータベースから読み取りました。実行時にこれらのロールを URL パターンに割り当てるにはどうすればよいですか?
asp.net-mvc - mvc サイト、ログイン資格情報を保持する最も安全な方法
わかりましたので、データベースへのヒットをできるだけ回避しながら、ログイン資格情報をmvcに保存する方法について、このジレンマがあります。User インスタンスを簡単Forms Authenticationに保存できることはわかっていますが、お勧めですか?
現時点では、ログインアクセスを「必要とする」アクションが呼び出されるたびにアクセスするUser Idに保存します。cookieアクションにアクセスする前に、ユーザー ID を使用して「新しい」ユーザー インスタンスを取得します。これはすべてのアクションで同じです。Cookie が侵害されると、ユーザーに関するすべてのものがハッカー (ユーザー ID、電子メール、役割など) に利用可能になると思われるため、ユーザーを Cookie に保存しません。
そのため、ログインが必要なアクションが大量にある場合、帯域幅では困難になります。私が使っている方法についてどう思いますか?すべての User オブジェクトが短いタイムアウトで Cookie に保存されるように変更する必要がありますか? どんなアイデアでも大歓迎です。ありがとう!!
sql - SQL Azure ロールが割り当てられたユーザー
すべてのユーザーに特定の役割が割り当てられていることを確認しようとしています。この情報を取得するためのビューまたは SQL クエリはありますか?
c# - Roles Managerはカスタムロールプロバイダーのデータをキャッシュしますか?このキャッシュをクリアできますか?
私はカスタムロールプロバイダーを使用しています。これは、.net 4 MVCプロジェクトでEFを使用してデータベースからpersonオブジェクトを取得し、その周りのいくつかのルール(およびその他のクエリ)に基づいてユーザーロールを割り当てます。
データは定期的に変更されますが、変更は、役割プロバイダーではなく、システムの他の場所のコードによるモードです。ロールプロバイダーは一方向であり、ユーザーが所属するロールを取得するだけです。
データベースの値を変更すると、再コンパイル(たとえば、Web構成にスペースを追加する)を実行するか、アプリケーションが再起動するまで、役割マネージャーは役割の変更を認識しません。
を設定することで、ロールがCookieにキャッシュされないようにしましたcacheRolesInCookie=false。これは、ほとんどのヘルプが指しているように思われ、ロールマネージャーにセッションキャッシュが組み込まれていることを前提としています。
クエリの一部としてタイムスタンプを含めるようにpersonオブジェクトを返すEFクエリを変更しました。プロファイラーを通してクエリが実際に呼び出されていることを確認でき、タイムスタンプは毎回変更されますが、デバッグセッションでは、「person」アイテムの以前の状態からの古いデータが表示されます。最新の状態を示すPersonテーブルのデータを表示するサイトの他の部分があります。
キャッシュされたデータに対してデバッガーがどのように動作するかがよくわかりません。キャッシュの問題である場合にEFクエリが発生する理由はわかりませんが、個人データは、テーブル行の現在の状態ではなく、最初の実行による状態を確実に示しています。
明らかな何かが欠けているように感じます。Role Managerはセッションでデータをキャッシュしますか?
java - ApacheShiro構成を使用して適切な結果を取得できない
プロジェクトに役割ベースのメカニズムを作成する必要があるため、プロジェクトにapacheshiroを使用しようとしています。次の構成でデモプロジェクトを作成しました...
プロジェクトに次のファイルを作成しました-
index.jsp
login.jsp
success.jsp
denied.jsp
logout.jsp
showUser.jsp
私のshiro.iniの構成は次のとおりです-
認証が成功/失敗した後、サーブレットLoginTestServlet.javaを使用してlogin.jspページまたはsuccess.jspにディスパッチしています-
TOMCAT6.0を使用しています。
私の問題は-
- login.jspページでクレデンシャルを入力しようとすると、入力したクレデンシャルのそれぞれのページに自動的に移動します。たとえば、success.jspをクリックした後にROLE_MEMBERクレデンシャルを入力しようとすると、success.jspページに移動します。しかし、同じsuccess.jspをクリックした後にROLE_ADMINを入力しようとすると、denied.jspに移動する代わりに、記述されたサーブレットコードに従って自動的にsecret.jspに移動します。
- ログインの成功または拒否されたページを表示するために、リソースごとに個別のサーブレットを作成せずに汎用コードを作成するにはどうすればよいですか?
また、すべてのリソースに対してshiroでカスタム権限を作成する方法はありますか?はいの場合、その方法。これへのリンクがあれば、私はあなたに感謝します。
皆さんありがとう。
c# - 多くの役割を担うカスタム CodeAccessSecurityAttribute
アプリのロールベースのセキュリティに取り組んでおり、基本的にカスタマイズされたバージョンの MVC を実行したいと考えていますAuthorizeAttributeが、MVC にリンクしていないビジネス ロジック レイヤーでのみ実行します。
見ましたPrincipalPermissionAttributeが、封印されているのでカスタマイズする方法はないようです。複数の属性を使用せずにロールのリストのメンバーシップをチェックできるカスタム バージョンを作成し、ロール メンバーシップを探す場所を定義したいだけです。
私が行方不明になっている.Netにこのようなものはありますか? または、ASP.Net の AuthorizeAttribute/RoleProvider/etc を再実装せずにこれを行う方法について洞察を持っている人はいますか?
編集
私は現在、命令型バージョンを実行していますが、メソッド/クラスの上にある方が見やすいので、宣言型属性バージョンを使用したいと考えています。
現在、ビジネス層の抽象基本クラスに次のものがあります。
ロール名がひどいので(Active Directoryグループベース...)などを使用できるのが好きなRoles.Administratorので、クラス/メソッドの上に配置できるカスタム属性のコンストラクターにそれらの詳細をラップすることを考えていました.
GetAccountRolesこれは、AD またはデータベースを使用するテスト バージョンのいずれかを使用するように設定できます。
をサブクラス化できAttributeましたが、セキュリティ チェックを開始する方法がわかりません。
asp.net-mvc-3 - Roles を持つ AuthorizeAttribute であるが、Role 値をハードコーディングしない
ロールを追加することはできますが、次のような値をハードコーディングすることはできません:
コントローラー アクションのロールを追加/削除する必要がある場合に、アプリケーションを再構築する必要がないデータベースまたは構成ファイルからこれらのロールを取得したいと考えています。
私は列挙型でそれができることを知っています... http://www.vivienchevallier.com/Articles/create-a-custom-authorizeattribute-that-accepts-parameters-of-type-enum しかし、これでもまだ柔軟ではありません私のニーズには十分です。よりクリーンではありますが、まだ多少ハードコードです。
c# - コントローラーへのasp.net MVCロールベースのアクセス
役割ベースのアクセスに関するオンラインの記事の多くは、このようなものを適用して、コントローラーまたはアクションへの役割ベースのアクセスを確保することについて語っています
これですべて問題ありませんが、[RoleMaster] テーブルにロールがあり、[UserRoles] という別のテーブルの [User] テーブルからユーザーに割り当てられたロールを持つ、独自のカスタム ロール ベースのアクセスを実装する必要がある場合。私のコードでは、セッションにユーザーオブジェクトがあり、その中にロールリストがあります
[Authorize(Roles = "Admin, Manager")] を使用して Authorize 属性に割り当てた値のいずれかと一致するものとして、RegisteredUsers オブジェクトの Roles リストの UserRole.RoleName プロパティを確認するにはどうすればよいですか。場合によっては、ロールに管理者またはマネージャーのいずれかが含まれている場合、アクセス権を取得する必要があります。場合によっては、管理者と管理者の両方の役割を持ってアクセスできるようにする必要があります。
また、将来、新しい役割がシステムに追加された場合、すべての Authorize 属性をやり直して、アプリケーションを再構築して再デプロイする必要がありますか?
同じことを実装する明確な例を見つけることができなかったか、正しく検索していない可能性があります。できる限り私を助けてください。御時間ありがとうございます...