1

役割ベースのアクセス制御 (RBAC) の背後にあるコードを理解するのに苦労しています。Laravel フレームワークで「バンドル」を使用しようとしていますが、事態がさら​​に複雑になっているようです。

私の特定のアプリケーションに必要なのは、3 つの役割です。最初の最も基本的な役割は、ユーザーがアプリケーションにログインし、アカウントを管理し、「お気に入り」と「取引」を保存できるようにすることです。必要な 2 番目の役割は、ストア オーナーがログインしてアカウントと取引を作成できるようにすることです。3 番目の役割は基本的に管理者の役割なので、必要に応じて不要なコンテンツを削除できます。

「ロール」などと呼ばれるユーザーテーブルに int フィールドを追加するだけで、予想される問題はありますか? ユーザーの役割が 0 の場合、ユーザーは基本的な権限を持ち、サイトの管理者および所有者領域にアクセスできません。1 は、ユーザーが所有者の役割などを持っていることを示します。リクエストが行われるたびに、ユーザーの役割を確認するだけです。

これは合理的で安全なソリューションでしょうか? それとも、このアプローチを使用すると問題が発生する可能性がありますか?

4

1 に答える 1

2

RBAC を使用すると、アプリケーションの機能へのアクセスを管理する際の柔軟性が向上します。各ユーザーには、複数の役割、タスク、および操作を割り当てることができます。各ロールは複数のタスクで構成でき、各タスクは複数の操作で構成できます。

アプリケーションが基本、所有者、管理者の 3 つのロールのみを要求する場合は、ユーザー テーブルにインジケーターを追加するだけで問題ないと思います。ただし、特定のユーザーに特定の操作へのアクセスを許可する必要がある場合は、アクセス制御を区別するために操作ごとに新しい番号が必要になります。したがって、そのアプローチを使用すると、機能に基づいて権限を分離することが難しくなります。

別の解決策は、ACL を使用することです。これは、実装は簡単ですが、おそらく管理が少し難しいと思います。ACL と RBAC の違いについては、こちらをご覧ください。

于 2012-09-22T07:48:48.677 に答える