Appearance
کنترل سطح دسترسی
| ماژول اصلی | تعریف ماژول | توضیحات |
|---|---|---|
| Role-Based Access Control | سامانه کنترل سطح دسترسی | تعریف نقشها، سطح دسترسی و مجوزهای امنیتی برای کاربران با هدف مدیریت دقیق و منعطف منابع سیستم. |
فیچرلیست:
| ردیف | دسته بندی | عنوان | مسیر پیشنهادی | داستان کاربر (User Story) |
|---|---|---|---|---|
| 1 | مدیریت گروهها | ایجاد گروه جدید | POST /groups | به عنوان مدیر سیستم، میخواهم بتوانم گروههایی مانند «کارمندان مالی» یا «توسعهدهندگان» ایجاد کنم تا مدیریت دسترسیها سادهتر شود. |
| 2 | افزودن عضو به گروه | POST /groups/{groupId}/members | به عنوان مدیر یک گروه، میخواهم بتوانم کاربران جدید را به گروه خود اضافه کنم تا دسترسیهای آن گروه را دریافت کنند. | |
| 3 | بهروزرسانی اطلاعات گروه | PUT /groups/ | به عنوان مدیر سیستم، میخواهم بتوانم نام یا توضیحات یک گروه را ویرایش کنم. | |
| 4 | دریافت اطلاعات یک گروه | GET /groups/ | به عنوان یک سرویس، میخواهم اطلاعات یک گروه خاص مانند نام و اعضای آن را دریافت کنم. | |
| 5 | جستجوی کاربران یک گروه | GET /groups/{groupId}/members | به عنوان مدیر یک گروه، میخواهم لیستی از تمام اعضای گروه خودم را مشاهده کنم. | |
| 6 | دریافت لیست گروههای یک کاربر | GET /users/{userId}/groups | به عنوان مدیر سیستم، میخواهم ببینم یک کاربر خاص در چه گروههایی عضو است. | |
| 7 | دریافت لیست گروهها (با فیلتر) | GET /groups | به عنوان مدیر سیستم، میخواهم بتوانم لیستی از گروهها را بر اساس یک معیار خاص جستجو کنم. | |
| 8 | حذف عضو از گروه | DELETE /groups/{groupId}/members/ | به عنوان مدیر یک گروه، میخواهم بتوانم کاربری که دیگر در تیم من نیست را از گروه حذف کنم. | |
| 9 | فعال/غیرفعال کردن گروه | POST /groups/{groupId}/status | به عنوان مدیر سیستم، میخواهم یک گروه را به صورت موقت غیرفعال کنم تا دسترسی تمام اعضای آن معلق شود. | |
| 10 | مدیریت منابع (Resources) | ایجاد منبع جدید (به صورت تکی یا درختی) | POST /resources | به عنوان مدیر سیستم، میخواهم منابعی مانند «پروژه آلفا» یا «داشبورد فروش» را تعریف کنم و بتوانم آنها را به صورت سلسلهمراتبی (والد و فرزندی) بچینم. |
| 11 | دریافت اطلاعات یک منبع | GET /resources/ | به عنوان یک سرویس، میخواهم اطلاعات یک منبع خاص را دریافت کنم. | |
| 12 | بهروزرسانی اطلاعات منبع | PUT /resources/ | به عنوان مدیر سیستم، میخواهم نام یا والد یک منبع را ویرایش کنم. | |
| 13 | حذف یک منبع | DELETE /resources/ | به عنوان مدیر سیستم، میخواهم یک منبع که دیگر استفاده نمیشود را حذف کنم. | |
| 14 | دریافت منابع فرزند (برای ساختار درختی) | GET /resources/{resourceId}/children | به عنوان یک سرویس، میخواهم تمام زیرمجموعههای یک منبع خاص را مشاهده کنم. | |
| 15 | دریافت تمام والدین یک منبع | GET /resources/{resourceId}/parents | به عنوان یک سرویس، میخواهم مسیر کامل یک منبع تا ریشه را مشاهده کنم. | |
| 16 | جستجوی منابع | GET /resources/search | به عنوان مدیر سیستم، میخواهم بتوانم در میان تمام منابع ثبت شده جستجو کنم. | |
| 17 | مدیریت مجوزها و دسترسیها | تخصیص دسترسی مستقیم به منبع | POST /access-records | به عنوان مدیر سیستم، میخواهم به یک کاربر یا گروه، دسترسی مشخصی (مثلاً "خواندن") را روی یک منبع خاص بدهم. |
| 18 | ویرایش دسترسی مستقیم به منبع | PUT /access-records/ | به عنوان مدیر سیستم، میخواهم سطح دسترسی اعطا شده به یک کاربر روی یک منبع را تغییر دهم (مثلاً از "خواندن" به "نوشتن"). | |
| 19 | مشاهده دسترسیهای یک منبع | GET /resources/{resourceId}/permissions | به عنوان مدیر یک منبع، میخواهم ببینم چه کاربران و گروههایی به این منبع دسترسی دارند. | |
| 20 | حذف یک رکورد دسترسی | DELETE /access-records/ | به عنوان مدیر سیستم، میخواهم یک دسترسی خاص که به یک کاربر داده شده را لغو کنم. | |
| 21 | مشاهده دسترسیهای یک کاربر | GET /users/{userId}/permissions | به عنوان مدیر سیستم، میخواهم لیستی از تمام دسترسیهایی که یک کاربر خاص به منابع مختلف دارد را ببینم. | |
| 22 | مشاهده دسترسیهای یک گروه | GET /groups/{groupId}/permissions | به عنوان مدیر سیستم، میخواهم ببینم یک گروه خاص به چه منابعی دسترسی دارد. | |
| 23 | انتشار دسترسی (Inheritance) | POST /resources/{resourceId}/propagate-permissions | به عنوان مدیر سیستم، میخواهم دسترسیهای تعریف شده روی یک منبع والد، به تمام منابع فرزند آن نیز اعمال شود. | |
| 24 | مدیریت نقشها (Roles) | تعریف نقش جدید (Role) | POST /roles | به عنوان مدیر سیستم، میخواهم نقشی مانند «مدیر محتوا» با مجموعهای از دسترسیهای مشخص (مثلاً خواندن، نوشتن، انتشار) تعریف کنم. |
| 25 | بهروزرسانی یک نقش | PUT /roles/ | به عنوان مدیر سیستم، میخواهم نام یا توضیحات یک نقش را ویرایش کنم. | |
| 26 | دریافت اطلاعات یک نقش | GET /roles/ | به عنوان یک سرویس، میخواهم جزئیات یک نقش و دسترسیهای آن را مشاهده کنم. | |
| 27 | دریافت لیست تمام نقشها | GET /roles | به عنوان مدیر سیستم، میخواهم لیستی از تمام نقشهای تعریف شده در سیستم را ببینم. | |
| 28 | حذف یک نقش | DELETE /roles/ | به عنوان مدیر سیستم، میخواهم یک نقش که دیگر استفاده نمیشود را حذف کنم. | |
| 29 | افزودن/کاهش دسترسیهای یک نقش | POST /roles/{roleId}/permissions<br>DELETE /roles/{roleId}/permissions/ | به عنوان مدیر سیستم، میخواهم دسترسیهای موجود در یک نقش را کم یا زیاد کنم (مثلاً به نقش "کاربر ساده" دسترسی "کامنت گذاشتن" را اضافه کنم). | |
| 30 | تخصیص نقش به کاربر/گروه روی یک منبع | POST /access-records/roles | به عنوان مدیر سیستم، میخواهم «نقش ویرایشگر» را به «گروه نویسندگان» بر روی «منبع وبلاگ» تخصیص دهم. | |
| 31 | لغو نقش تخصیص داده شده | DELETE /access-records/roles/ | به عنوان مدیر سیستم، میخواهم نقش تخصیص داده شده به یک کاربر یا گروه را لغو کنم. | |
| 32 | مدیریت لیست کنترل دسترسی (ACL) | تعریف قانون دسترسی (ACL) | POST /acls | به عنوان مدیر امنیت، میخواهم یک قانون دسترسی کلی و قابل استفاده مجدد تعریف کنم. |
| 33 | دریافت و ویرایش قانون دسترسی (ACL) | GET /acls/{aclId}<br>PUT /acls/ | به عنوان مدیر امنیت، میخواهم یک قانون دسترسی را مشاهده یا ویرایش کنم. | |
| 34 | حذف قانون دسترسی (ACL) | DELETE /acls/ | به عنوان مدیر امنیت، میخواهم یک قانون دسترسی که دیگر لازم نیست را حذف کنم. | |
| 35 | عملیات دستهای (Bulk Operations) | ایجاد درخواست دستهای | POST /bulk-requests | به عنوان مدیر سیستم، میخواهم به جای اضافه کردن تکتک کاربران به یک گروه، لیستی از ۱۰۰ کاربر را به صورت یکجا به آن گروه اضافه کنم. |
| 36 | دریافت وضعیت و ارسال مجدد درخواست دستهای | GET /bulk-requests/{trackerId}<br>POST /bulk-requests/{trackerId}/retry | به عنوان مدیر سیستم، میخواهم وضعیت یک عملیات دستهای بزرگ را پیگیری کنم و در صورت نیاز آن را مجدداً اجرا کنم. | |
| 37 | گزارشگیری و بازرسی (Reporting & Audit) | دریافت لاگ تغییرات دسترسیها (Audit Log) | GET /audit-logs | به عنوان مدیر امنیت، میخواهم گزارشی کامل از اینکه "چه کسی"، "چه زمانی"، "چه دسترسیای" را به "چه کسی" داده یا از او گرفته است، مشاهده کنم. |
| 38 | قابلیتهای پیشرفته و سازمانی | تخصیص دسترسی موقت (زماندار) | POST /access-records (با فیلد expires_at) | به عنوان مدیر پروژه، میخواهم به یک پیمانکار دسترسی «ویرایشگر» بدهم، اما میخواهم این دسترسی به صورت خودکار پس از ۳۰ روز منقضی شود. |
| 39 | ایجاد کمپین بازبینی دورهای دسترسیها | POST /access-reviews/campaigns | به عنوان مدیر امنیت، میخواهم یک فرآیند بازبینی فصلی ایجاد کنم که در آن، مدیران منابع موظف شوند لیست دسترسی کاربران به منابع خود را مجدداً تایید کنند. | |
| 40 | شبیهسازی و پیشبینی تاثیر یک تغییر در دسترسی | POST /access-policies/simulate | به عنوان مدیر سیستم، قبل از اعمال یک نقش جدید، میخواهم گزارشی شبیهسازی شده ببینم که دقیقاً نشان دهد چه کسانی دسترسی جدید پیدا میکنند. | |
| 41 | ایجاد درخواست دسترسی در لحظه (Just-in-Time) | POST /access-requests | به عنوان توسعهدهنده، میخواهم برای ۲ ساعت و با دلیل مشخص، درخواست دسترسی «فقط خواندنی» به دیتابیس بدهم تا دسترسی موقت و قابل حسابرسی به من اعطا شود. |