問題タブ [acl]
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.
php - CakePHP ACLの混乱、アクションではなくオブジェクトにACLを適用するにはどうすればよいですか?
写真とアルバムにアクセス制御を実装するためのスケーラブルなデザインパターンを提案できますか?それぞれに個別のプライバシー設定(所有者、グループメンバー、パブリック)がありますか?
私はCakePHPを使用していますが、ACLコンポーネントで読んだ例は、オブジェクト自体ではなく、コントローラー/アクションへのアクセスを制御しているようです。追跡しようとすると手に負えなくなるようです
- / C / R / U/D特権
- コントローラアクションごと
- プライバシー設定ごと(つまり、所有者、グループメンバー、パブリック)
- アルバム、写真などごと。
特に、アルバムごとに数千枚の写真があり、PhotoshabtmAlbumsがある場合は特にそうです。私は正しいですか、それとも完全に何かが欠けていますか?
誰かがこの問題に取り組む方法を理解するのに役立つ擬似コードを追加できますか?または、Flickrのようなサイトで以前に行われたことがあるので、正しい方向に向けてください。
ティア。
permissions - アクセス許可のビジュアル モデリング
私は自分が作成するソフトウェアのさまざまな図を手書きでスケッチする習慣を身につけています。私のソフトウェアは主に Web 用です。私はデータ ロジック (MVC のモデル) に ER ダイアグラムを使用し、インタラクションには個人的に発明したダイアグラム スタイルを使用します。つまり、どのページが他のどのページにつながり、何をするのか、つまり MVC のビューとコントローラーです。これにより、重要な概念を単純化し、矛盾を取り除き、さらに調査が必要な問題領域を強調することができます。
さて、かなり複雑なアクセス許可システムを必要とするアプリケーションに注目し始めました。実際には「大きく」ではなく、複雑なだけで、いくつかのパーミッションをその場で作成する必要があり、いくつかは静的であるいくつかのパーミッション「ディメンション」があります。
アイデアを明確な形で頭から追い出し、矛盾がないことを確認できるように、許可システムを図式化する簡単な方法があればいいのにと思います。したがって、私の質問:
ビジュアル ダイアグラムでパーミッションをモデル化する方法を見たり使用したりした人はいますか?
mysql - CRUD 管理者: ユーザー/グループ テーブルの代わりに auth/acl に MySQL ユーザーを使用しないのはなぜですか?
いくつかのフレームワーク (symfony/Django) では、通常はユーザー テーブル (指定されたグループ テーブルにユーザーを割り当てる) を介してアクセスを制御する管理ジェネレーターがあります。
興味がありますが、代わりに MySQL の実際のユーザー (選択/読み取り/書き込みアクセスが既に組み込まれている) を単純に使用しないのはなぜですか?
.net - 非正規ACLの.NETRegistrySecurityAPI処理:処理アプローチ
私はアクセスルールを次のRegistryKey
ように追加しようとしています:
ただし、レジストリがマングルされた場合AddAccessRule
、例外がスローされます(リフレクターは、呼び出しがそれらが正規ではないと判断し、インスタンスがその状態にあるGetAccessControl
ときに書き込みを行おうとするとフェイルセーフを作動させることを示します):RegistrySecurity
regedt32(およびおそらくregedit)を実行すると、次のようなポップアップが表示されますthe permissions on <key> are incorrectly ordered, which may cause some entries to be ineffective <paraphrasing>Do you want to unmangle them now? Y/N</paraprasing>
この問題で私が見た中で最も権威のある作品はhttp://www.codeproject.com/KB/system/accessctrl3.aspxで、次のように書かれています。
ただし、制御フラグはプロパティとして実装されます(不整合について話します!)。
AreAccessRulesProtected
/から自動継承設定を取得できますAreAuditRulesProtected
(ACLが保護されている場合は、自動継承されないことを思い出してください)。パート2を読むと、一部のWindows APIが継承をサポートしていないため、マシンの継承設定が破損する可能性があることがわかります。良いニュースは、.NETが継承メカニズムを完全にサポートし、継承設定を適切に保持することです。何らかの理由でACLが乱れた(おそらく不正なWin32アプリから)セキュリティ記述子を開いた場合、それを編集しようとすると、InvalidOperationExceptionがスローされます。
一般に、このような非正規のACLは、[廃止されてから] NewSIDツールを使用した結果であり、人々はKB記事に「それならやめなさい」と書いています。
しかし、批判的には、これが常に理由であるとは限らず、コードが機能する必要がある場合もあります。これを処理するための良いクリーンで安全な方法は何ですか?
私は2つの答えを提供し、人々は投票して穴を選び、投票し、コメントし、そしてニッチピックすることができます。
security - ACL 所有者とは何ですか?
私は、いわゆる「ACL 所有者」について、3 つの可能性があることを発見しました。
- 所有者は保護されたリソースです。それがEAzのやり方です。
- ACL 所有者は、ACL を所有および編集するユーザーです。(java.security.acl.Acl または POSIX ACL のように)
- ユーザーは保護されたリソースを所有し、保護されたリソースは ACL を所有します。したがって、ユーザーは ACL を間接的に所有し、編集することができます。
いずれかの重大な欠点はありますか?
補遺: ほとんどの実装では、ACL の所有者は、この ACL の権限を変更する権利を持ち、対応するオブジェクトを所有するユーザーです。
security - ACL を保護されたリソースに接続する方法は?
ACL を保護されたリソースに接続する最良の方法は何ですか?
1) 保護されたリソースはその ACL への参照を保持する必要がありますか?
これは簡単ですが、オブジェクトがデータベースに存在する場合、アクセス権をチェックする前にオブジェクトを構築する必要があります。
2) Spring Security は、完全修飾クラス名とオブジェクト ID を持つメカニズムを使用して、ACL を外部にアタッチおよび取得します。特定の基準では複数の ACL を選択できないため、n+1 選択の問題が発生する可能性があります。リファクタリング中にクラス名が変更されると、このシステムが壊れる可能性があります。
3) もう 1 つの方法は、保護されたリソースへの参照を ACL 内に格納することです。遅延ロードを使用すると、保護されたリソースをデータベースからロードせずに ACL をチェックできます。
4) 各オブジェクトはセキュリティ記述子を持つことができます (Windows のように):
何が良いですか?
暫定的な解決策:ドメイン オブジェクトは AclHolder インターフェイスを実装でき、ドメイン オブジェクトに影響を与えずに ACL をアタッチすることもできるため、AclHolder インターフェイスを実装します。
security - ACLの継承をどこで管理しますか?
ACLの階層をどこで管理するのが最適ですか?
ACLの階層を管理するための3つの可能性があります。
1) ACL自体が階層を管理します。
2)階層を管理するための別個のツリー構造を構築します。
3) ACLの暗黙的な階層として既存の階層を使用します(ファイルシステムにすでに階層がある場合など)。
次のコードは、既存の階層を使用する1つの可能性です。
別のアプローチは、ルールを使用して、他のものに対して階層的なものを定義することです。
1)や2)のように明示的なACL階層を作成することは、通常、システム構造を反映する必要があり、複製の形式であるため、問題になる可能性があると思います。
最善の方法は何ですか?
security - アクセス制御エントリを継承しますか、それともアクセス制御リスト(ACL)を完成させますか?
完全なACLを継承するのか、それともアクセス制御エントリ(ACE)のみを継承するのか疑問に思います。
子がACL全体を置き換える場合は簡単ですが、追加のACEのみを追加する必要がある場合は制限されます。
ACEを継承できる場合は、負の権限が必要になると思います。そうしないと、ルートACLから始まるすべての権限が蓄積されるためです。右?
ACEの継承と負の権利は、柔軟性を大幅に向上させますが、セキュリティの制限を理解するのが難しくなる可能性もあります。ネガティブな権利を避けたいのですが、一方で、システムが存在しないために(ACLを不必要に複製することにより)、システムの保守が困難になる可能性があります。
じゃあ何をすればいいの?完全なACLのみを継承しますか、それともACEを継承しますか?否定的な権限を追加するかどうか?
暫定的な解決策:誰も考えがなかったので、アクセス制御エントリベースで継承を使用することにしました。これを行うために負の権限は必要ありませんが、柔軟性を高めるためにそれらを実装します。
design-patterns - true/false/null (値の継承用) の UI デザイン パターンは?
true/false/null 値をモデル化できる、任意のツールキット (チェックボックス、ラジオ ボタン、またはリストボックスなど) で利用可能な標準 UI ウィジェットを使用して、簡潔で単純なウィジェットを見つけるために最善を尽くしています。
なぜ私はこれをやろうとしているのですか?私はデータベースにツリーを保存しています (リレーショナル ストアに階層情報を保存することについて私を批判してください)。単純な継承モデルは、何かに値がない場合、その親の値にデフォルト設定されるというものです。
私が今持っているのは2つのチェックボックスです:
「デフォルト」をチェックすると、最初のチェックボックスが無効になります。それは理にかなっていますか?スクリプトをあまり使用しない別のウィジェットを考えました。
どちらがより理にかなっていますか? 私は2番目にもっと傾き始めています。そして、誰か他の提案があれば、私は感謝します!
grails - grailsでの役割ベースのドメインクラスフィールドアクセス
grailsアプリケーションを開発しています。その場合は、役割に基づいてドメインクラスのフィールドを制御したいので、ドメインクラスのgetter setterメソッドを呼び出すたびに、役割に基づいてフィルターを適用します(ユーザーの役割にログインしました)。 ).grailsは実行時にdominクラスのgetter setterメソッドを作成すると想定しています。したがって、grailsコードを記述しているときに、このロジックを適用することは可能です。可能であれば、どのように適用するのですか?
例:
ドメインクラス:
コントローラ:
上記のコードでは、「printlnbook.price;」この行は特定の役割に対してのみ機能する必要があります。他の役割については、いくつかの例外をスローする必要があります。
達成することは可能ですか?これを行うためのプラグインはありますか?
これについて助けてください....ありがとう