برنامه نویسی

کنترل دسترسی مبتنی بر نقش (RBAC) با رویکرد ویژگی محور

Summarize this content to 400 words in Persian Lang
در این مقاله، نحوه راه‌اندازی یک سیستم کنترل دسترسی مبتنی بر نقش (RBAC) را که در آن ویژگی‌ها بخش مرکزی هستند، بررسی خواهیم کرد. ما به تعریف ماژول‌ها، مرتبط کردن ویژگی‌ها، اختصاص نقش‌ها با ویژگی‌های خاص و در نهایت اختصاص نقش‌ها به کاربران خواهیم پرداخت. این مثال از داده‌های JSON استفاده می‌کند تا همه چیز را ساده و سازگار نگه دارد، امکان کنترل دسترسی مقیاس پذیر بدون نیاز به تغییر برای نقش های جدید در قسمت جلویی

نسخه نمایشی زنده

1. ماژول ها و ویژگی ها را تعریف کنید

ماژول ها ویژگی های مشابه را با هم گروه بندی می کنند. هر ماژول می تواند شامل چندین ویژگی باشد که نشان دهنده اقداماتی است که کاربران می توانند انجام دهند.

ساختار JSON برای ماژول ها و ویژگی ها:

{
“modules”: [
{
“id”: 1,
“name”: “Users”,
“features”: [
“view-users”,
“edit-users”
] },
{
“id”: 2,
“name”: “Reports”,
“features”: [
“view-reports”,
“edit-reports”
] }
] }

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ماژول ها: نمایانگر ناحیه خاصی از برنامه است، مانند «کاربران» یا «گزارش‌ها».

ویژگی ها: اقدامات درون هر ماژول، مانند view-users و edit-users برای Users ماژول

2. ایجاد نقش و اختصاص ویژگی ها

در مرحله بعد، نقش هایی ایجاد کنید که مجموعه ای از ویژگی ها را تعریف می کنند. هر نقش دارای لیستی از مجوزهایی است که به ویژگی های خاصی در ماژول ها دسترسی می دهد.

ساختار JSON برای نقش ها و مجوزها:

{
“roles”: [
{
“id”: 1,
“name”: “Admin”,
“permissions”: [
“view-users”,
“edit-users”,
“view-reports”,
“edit-reports”
] },
{
“id”: 2,
“name”: “Viewer”,
“permissions”: [
“view-users”,
“view-reports”
] }
] }

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نقش ها: نماینده گروه هایی با حقوق دسترسی خاص، مانند “Admin” و “Viewer”.

مجوزها: مشخص کنید که هر نقش به کدام ویژگی‌ها دسترسی دارد و اجازه می‌دهد تا تنظیمات مجوز انعطاف‌پذیر را داشته باشید.

با تعریف نقش‌ها، می‌توانید کنترل دسترسی را بدون تغییر مجوزهای هر کاربر به طور مؤثر مدیریت کنید.

3. نقش ها را به کاربران اختصاص دهید

پس از ایجاد نقش، آنها را به کاربران اختصاص دهید. هر کاربر مجوزهای داده شده توسط نقش خود را به ارث خواهد برد.

ساختار JSON برای کاربران و تعیین نقش:

{
“users”: [
{
“id”: 1,
“name”: “Sushant”,
“roleId”: 1
},
{
“id”: 2,
“name”: “Raghav”,
“roleId”: 2
}
] }

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کاربران: نماینده افرادی که به برنامه دسترسی خواهند داشت.

شناسه نقش: هر کاربر را به یک نقش خاص پیوند می دهد و دسترسی به ویژگی آنها را تعیین می کند.

با استفاده از این ساختار، می‌توانید به راحتی نقش‌ها را به‌روزرسانی کنید تا دسترسی به چندین کاربر را به طور همزمان محدود یا محدود کنید.

4. راه اندازی منطق کنترل دسترسی در Frontend

در قسمت جلو، دسترسی به هر ویژگی بر اساس نقش کاربر بررسی می شود. در اینجا نحوه مدیریت ایمن دسترسی کاربر بر اساس نقش اختصاص داده شده به آنها آمده است.

واکشی مجوزهای نقش: هنگامی که یک کاربر وارد سیستم می شود، مجوزهای نقش خود را از باطن بازیابی کنید.

مجوزهای فروشگاه به صورت محلی: برای کنترل دسترسی مبتنی بر جلسه، مجوزها را در قالب ایمن (مانند JWT یا ذخیره‌سازی جلسه) ذخیره کنید.

رندر شرطی: برای هر بخش یا ویژگی، بررسی کنید که آیا کاربر اجازه مشاهده یا ویرایش آن را دارد یا خیر.

نمونه بررسی دسترسی در جاوا اسکریپت:

const userPermissions = [“view-users”, “edit-users”]; // Loaded from backend based on role

if (userPermissions.includes(“view-users”)) {
// Render the user view section
}

if (userPermissions.includes(“edit-users”)) {
// Render the user edit section
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده از بررسی مبتنی بر نقش در قسمت جلویی تضمین می‌کند که کاربران فقط ویژگی‌هایی را می‌بینند که مجاز به دسترسی هستند.

نتیجه گیری

کنترل دسترسی مبتنی بر نقش (RBAC) با رویکرد ویژگی محور، روشی مقیاس‌پذیر و کارآمد برای مدیریت مجوزهای کاربر ارائه می‌دهد. با تعریف ماژول‌ها و ویژگی‌ها، تنظیم نقش‌ها و اختصاص یا به‌روزرسانی ویژگی‌ها به نقش‌ها، می‌توانید به راحتی نقش‌های سفارشی را ایجاد و مدیریت کنید بدون اینکه نیاز به تغییر جدیدی در قسمت ظاهری داشته باشید.

نمایه GitHub من را بررسی کنید: https://github.com/sushantrahate

امیدوارم این راهنما به شما کمک کند. کد نویسی مبارک! 😄

در این مقاله، نحوه راه‌اندازی یک سیستم کنترل دسترسی مبتنی بر نقش (RBAC) را که در آن ویژگی‌ها بخش مرکزی هستند، بررسی خواهیم کرد. ما به تعریف ماژول‌ها، مرتبط کردن ویژگی‌ها، اختصاص نقش‌ها با ویژگی‌های خاص و در نهایت اختصاص نقش‌ها به کاربران خواهیم پرداخت. این مثال از داده‌های JSON استفاده می‌کند تا همه چیز را ساده و سازگار نگه دارد، امکان کنترل دسترسی مقیاس پذیر بدون نیاز به تغییر برای نقش های جدید در قسمت جلویی

نسخه نمایشی زنده

1. ماژول ها و ویژگی ها را تعریف کنید

ماژول ها ویژگی های مشابه را با هم گروه بندی می کنند. هر ماژول می تواند شامل چندین ویژگی باشد که نشان دهنده اقداماتی است که کاربران می توانند انجام دهند.

ساختار JSON برای ماژول ها و ویژگی ها:

{
  "modules": [
    {
      "id": 1,
      "name": "Users",
      "features": [
        "view-users",
        "edit-users"
      ]
    },
    {
      "id": 2,
      "name": "Reports",
      "features": [
        "view-reports",
        "edit-reports"
      ]
    }
  ]
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • ماژول ها: نمایانگر ناحیه خاصی از برنامه است، مانند «کاربران» یا «گزارش‌ها».
  • ویژگی ها: اقدامات درون هر ماژول، مانند view-users و edit-users برای Users ماژول

2. ایجاد نقش و اختصاص ویژگی ها

در مرحله بعد، نقش هایی ایجاد کنید که مجموعه ای از ویژگی ها را تعریف می کنند. هر نقش دارای لیستی از مجوزهایی است که به ویژگی های خاصی در ماژول ها دسترسی می دهد.

ساختار JSON برای نقش ها و مجوزها:

{
  "roles": [
    {
      "id": 1,
      "name": "Admin",
      "permissions": [
        "view-users",
        "edit-users",
        "view-reports",
        "edit-reports"
      ]
    },
    {
      "id": 2,
      "name": "Viewer",
      "permissions": [
        "view-users",
        "view-reports"
      ]
    }
  ]
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • نقش ها: نماینده گروه هایی با حقوق دسترسی خاص، مانند “Admin” و “Viewer”.
  • مجوزها: مشخص کنید که هر نقش به کدام ویژگی‌ها دسترسی دارد و اجازه می‌دهد تا تنظیمات مجوز انعطاف‌پذیر را داشته باشید.

با تعریف نقش‌ها، می‌توانید کنترل دسترسی را بدون تغییر مجوزهای هر کاربر به طور مؤثر مدیریت کنید.

3. نقش ها را به کاربران اختصاص دهید

پس از ایجاد نقش، آنها را به کاربران اختصاص دهید. هر کاربر مجوزهای داده شده توسط نقش خود را به ارث خواهد برد.

ساختار JSON برای کاربران و تعیین نقش:

{
  "users": [
    {
      "id": 1,
      "name": "Sushant",
      "roleId": 1
    },
    {
      "id": 2,
      "name": "Raghav",
      "roleId": 2
    }
  ]
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • کاربران: نماینده افرادی که به برنامه دسترسی خواهند داشت.
  • شناسه نقش: هر کاربر را به یک نقش خاص پیوند می دهد و دسترسی به ویژگی آنها را تعیین می کند.

با استفاده از این ساختار، می‌توانید به راحتی نقش‌ها را به‌روزرسانی کنید تا دسترسی به چندین کاربر را به طور همزمان محدود یا محدود کنید.

4. راه اندازی منطق کنترل دسترسی در Frontend

در قسمت جلو، دسترسی به هر ویژگی بر اساس نقش کاربر بررسی می شود. در اینجا نحوه مدیریت ایمن دسترسی کاربر بر اساس نقش اختصاص داده شده به آنها آمده است.

  • واکشی مجوزهای نقش: هنگامی که یک کاربر وارد سیستم می شود، مجوزهای نقش خود را از باطن بازیابی کنید.
  • مجوزهای فروشگاه به صورت محلی: برای کنترل دسترسی مبتنی بر جلسه، مجوزها را در قالب ایمن (مانند JWT یا ذخیره‌سازی جلسه) ذخیره کنید.
  • رندر شرطی: برای هر بخش یا ویژگی، بررسی کنید که آیا کاربر اجازه مشاهده یا ویرایش آن را دارد یا خیر.

نمونه بررسی دسترسی در جاوا اسکریپت:

const userPermissions = ["view-users", "edit-users"]; // Loaded from backend based on role

if (userPermissions.includes("view-users")) {
  // Render the user view section
}

if (userPermissions.includes("edit-users")) {
  // Render the user edit section
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده از بررسی مبتنی بر نقش در قسمت جلویی تضمین می‌کند که کاربران فقط ویژگی‌هایی را می‌بینند که مجاز به دسترسی هستند.

نتیجه گیری

کنترل دسترسی مبتنی بر نقش (RBAC) با رویکرد ویژگی محور، روشی مقیاس‌پذیر و کارآمد برای مدیریت مجوزهای کاربر ارائه می‌دهد. با تعریف ماژول‌ها و ویژگی‌ها، تنظیم نقش‌ها و اختصاص یا به‌روزرسانی ویژگی‌ها به نقش‌ها، می‌توانید به راحتی نقش‌های سفارشی را ایجاد و مدیریت کنید بدون اینکه نیاز به تغییر جدیدی در قسمت ظاهری داشته باشید.

نمایه GitHub من را بررسی کنید: https://github.com/sushantrahate

امیدوارم این راهنما به شما کمک کند. کد نویسی مبارک! 😄

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا