**کنترل دسترسی نقش-محور** (به انگلیسی: Role-based access control) به اختصار (RBAC) در امنیت سیستم‌های کامپیوتری، مبتنی بر وظیفه کنترل دسترسی یک روش به محدود کردن سیستم دسترسی به مجاز بودن کابران است که این توسط اکثریت شرکت‌ها با بیش از ۵۰۰ کارمند استفاده می‌شود و جایگزین روش جدیدتر برای کنترل دسترسی اجباری مک (به انگلیسی: MAC) و کنترل دسترسی اختیاری (به انگلیسی: DAC) است و گاهی اوقات به عنوان مبتنی بر وظیفه امنیت بر می‌گردد.

مدل RBAC
--------

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

قوانین اولیه
------------

سه قانون اولیه برای RBAC تعریف می‌شود:

1. انتساب نقش: موضوع معامله می‌تواند تنها در صورتی که موضوع را انتخاب یا اختصاص داده شده‌اند نقش را اجرا کند.
2. مجوز نقش: نقش فعال سوژه باید برای موضوع مجاز باشد. با دستور ۱ بالا، این قانون تضمین می‌کند که کاربران می‌توانند نقش‌هایی که برای آن‌ها مجاز است بگیرند.
3. مجوز تراکنش: تنها در صورتی تراکنش مجاز برای نقش فعال موضوع مجاز است موضوع می‌تواند در یک تراکنش اجرا شود. با قوانین ۱ و ۲، این قانون تضمین می‌کند که کاربران می‌توانند تنها تراکنش‌هایی را که برای آن‌ها مجاز است اجرا کنند.

* محدودیت‌های اضافی ممکن است استفاده شود و همچنین نقش‌ها می‌توانند در یک سلسله مراتب ترکیب شوند که در آن نقش‌های سطح بالا اجازه رده‌بندی زیر نقش‌ها را دارند.

با مفهوم سلسله مراتب نقش و محدودیت‌ها، می‌توان RBAC که در ایجاد یا شبیه‌سازی شبکه‌های مبتنی بر کنترل دسترسی (LBAC) کنترل کرد. بنابراین RBAC می‌تواند یک مجموعه‌ای از LBAC را رسیدگی کند.

وقتی یک مدل RBAC را تعریف می‌کنیم، قراردادهای زیر مفید هستند: 
S = موضوع = شخص یا عامل خودکار
R = نقش = عملکرد شغلی یا عنوانی که یک سطح توانایی را تعریف می‌کند. P = اجازه = تجویز یک نوعی از دسترسی، به منابع 
SE = جلسه = نقشه برداری شامل S، R یا P 
SA = اختصاص دادن موضوع 
PA = اختصاص دادن مجوز RH = قسمتی که دستور یک سلسله مراتب نقش را می‌دهد. RH هم چنین می‌تواند < نوشته شود. (نمادگذاری y< x بدان معنی است که x به ارث برده مجوز از Y.) یک موضوع می‌تواند نقش‌های متعددی داشته باشد. 
یک نقش می‌تواند موضوع‌های متعددی داشته باشد. 
یک نقش می‌تواند مجوزهای بسیاری داشته باشد. یک اجازه می‌تواند به چندین نقش اختصاص داده شود.

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

بنابراین، با استفاده از نظریه مجموعه‌ها:

* و بسیاری از مجوزها برای اختصاص دادن نقش‌های مرتبط.
* و بسیاری از موضوع‌ها برای اختصاص دادن نقش‌های مرتبط.
* موضوعی که ممکن چندین جلسه هم‌زمان با مجوزهای مختلف داشته باشد.

ارتباطات به سایر مدل ها
-----------------------

RBAC یک سیاست بی‌طرف و قابل انعطاف تکنولوژی دسترسی کنترل مؤثر قدرتمند برای شبیه‌سازی DAC و MAC است. برعکس، MAC می‌تواند RBAC شبیه‌سازی کند اگر گراف نقش محدود به درخت به جای مجموعه پاره مرتب (partially ordered set) باشد. قبل از توسعه RBAC، MAC و DAC مطرح بودند و تنها مدل‌های شناخته شده برای کنترل دسترسی در نظر گرفته می‌شدند. تحقیقات در اواخر ۱۹۹۰ نشان داد که RBAC در هیچ یک از دسته‌ها نمی‌افتد. بر خلاف کنترل دسترسی مبتنی بر متن (CBAC)، RBAC درحوزه پیام (مثل منبع ارتباط) نمی‌نگرد.

RBAC متفاوت از لیست‌های کنترل دسترسی (ACLs) که مورد استفاده در سیستم‌های کنترل دسترسی سنتی که در آن مجوزها به عملگرهای خاصی با مفهوم در سازمان استفاده می‌شد، بیشتر از اجزای داده‌های سطح پایین است. RBAC خصوصاً نشان داده‌است به خوبی به تفکیک وظایف (SoD) مورد نیاز است که اطمینان حاصل شود که دو یا تعداد بیشتری از مردم باید درگیر اختیار دادن عملیات بحرانی شوند. شرایط لازم و کافی برای ایمنی از SoD در RBAC آنالیز شده‌اند.

استفاده و دسترسی
----------------

* کاربرد محدودیت ورود به یک جا
* کنترل ورودی و خروجی

استفاده از RBAC برای مدیریت دسترسی‌های کاربر را در درون یک سیستم واحد یا کاربردی به‌طور گسترده‌ای به عنوان بهترین روش پذیرفته شده‌است. سیستم‌هایی که شامل آن شده‌اند از جمله Microsoft Active Directory، Microsoft SQL Server، SELinux، grsecurity، FreeBSD، Solaris، Oracle DBMS، PostgreSQL ۸٫۱، SAP R/۳، ISIS Papyrus، FusionForge و بسیاری دیگر به‌طور مؤثر از بعضی از ابزارهای RBAC استفاده می‌کنند.

امید محمدی فرجام

جستارهای وابسته
---------------

کنترل دسترسی مبتنی بر وضعیت(SitBAC)

منابع
-----

ویکی‌پدیا