مدل گراف نقش [۱۳] یک مدل کنترل دسترسی عمومی است که برای مدیریت آسان واگذاری مجوزها به کاربران استفاده میشود. این گراف عموماً هنگامی استفاده میشود که تعداد کاربران و مجوزها بسیار زیاد میباشد. این مدل مجوزها (امتیازها) را برای نقشها گروهبندی میکند. همچنین مدل گراف نقش یک مدل نمودار گروه را ایجاد میکند. این مدل به کاربرها اجازه میدهد به گروههایی تقسیم شوند [۱۴]. بنابراین، تخصیص دادن یک گروه به یک نقش این اجازه را میدهد که هر کس تعداد اختیاری از کاربران را به یک مجموعه بزرگ اختیاری از امتیازها با یک عمل نسبت دهد. مدل گراف نقش قابلیتهای مشابهی با مدلهای کنترل دسترسی مبتنی بر نقش دارد [۱۵، ۳۵].
مدل گراف نقش کنترل دسترسی را در سه سطح مورد توجه قرار میدهد: سطح مرکزی تشکیل شده است از گراف نقشی که نمایانگر روابط نقش- نقش بعنوان یک گراف نقش است؛ دو سطح دیگر گروهها و امتیازها را توصیف میکنند. گرهها در گراف نقش نمایانگر نقشها هستند. لبهها نمایانگر رابطه کوچکتری (is-junior) بین دو نقش میباشند. یک نقش در واقع یک جفت مرتب شامل نام و مجموعهای از امتیازهای موثر میباشد. نقش ri کوچکتر از نقش rj است اگر مجموعه امتیاز موثر ri یک زیر مجموعه از مجموعه امتیاز موثر rj باشد. هر امتیاز به صورت یک زوج مرتب (حالت دسترسی ، شئ) نشان داده میشود. طبیعت شئ و حالت دسترسی به محیط بستگی دارد. برای مثال در یک بانک اطلاعات رابطهای، اشیاء ارتباطات و حالتهای دسترسی عملهای مجاز درج، بروزرسانی، حذف و غیره میباشند. در محیطهای پیچیده، بین امتیازها میتواند مفهوم و معنی خاصی برقرار باشد؛ به عنوان مثال امتیازی که اجازه خواندن کل یک رابطه را میدهد به طور ضمنی اجازه خواندن تعدادی از تاپلها را نیز میدهد. در ادامه مطالب بیشتری برای بیان این مفاهیم خواهیم داشت.
نقشها در یک نمودار نقش بین دو نقش متمایز قرار گرفتهاند: MinRole و MaxRole. نقش MaxRole تمام امتیازها در نمودار نقش را نمایش میدهد و لازم نیست به کاربر یا گروهی نسبت داده شود. نقش MinRole نیز کمترین امتیازها را که به هر کس در سیستم نسبت داده شده است را نشان میدهد. مابین امتیازهای مستقیم که مستقیماً به یک نقش نسبت داده میشوند و امتیازهای مؤثر که شامل امتیازهای مستقیم و ارثبرده شده از نقشهای کوچکتر میباشند، تمایز قایل میشویم. امتیازهای موثر برای نقش r توسط r.rpset علامتگذاری میشود.
گرافهای نقش مشخصهها و صفات زیر را دارند:
• دارای یک نقش MinRole است.
• دارای یک نقش MaxRole است.
• گرافهای نقش دارای حلقه و دور نمیباشند.
• یک مسیر از نقش MinRole به هر نقش ri وجود دارد.
• یک مسیر از هر نقش ri به نقش MaxRole وجود دارد.
• برای هر دو نقش ri و rj ، اگر آنگاه باید مسیری از ri به rj وجود داشته باشد.
به طور قراردادی، ما نمودار (گراف) را بهاین صورت رسم میکنیم که نقش MaxRole در بالاترین سطح و نقش MinRole در پایینترین سطح و نقشهای کوچکتر در سطحی پایینتر از نقشهای بزرگتر قرار میگیرند. برای اینکه حجم گراف کوچکتر و خواناتر گردد، لبههای گذرا را حذف میکنیم.
عملیات قابل دسترس در گراف نقش در [۱۳] فهرست شدهاند. این عملیات شامل اضافه و حذف کردن یک نقش، یک لبه و یک امتیاز به/ از یک نقش میباشند. اگر یک چرخه در گراف ایجاد گردد تمامی عملیات انجام شده لغو میگردد. زمان اجرای همه این موارد توسط یک چند جملهای که به اندازه گراف و مجموعههای امتیاز بستگی دارد، محاسبه میگردد. در شکل نمونهای از یک گراف نقش نشان داده شده است. این یک گراف نقش برای اجرای مثال مرتبط با دانشجویان در یک دانشگاه میباشد.
مدل گراف اجازه میدهد که مجموعهای از کاربران را گروهبندی کنیم (گراف گروهبندی) [۱۴]. به جهت سادگی مدل، هر کاربر منحصر بفرد به عنوان یک گروه با درجه بزرگی ۱ میباشد. به عنوان مثال، در اینجا ممکن است شخص منحصر بفردی مثل آلیس که استاد در مقطع کارشناسی میباشد به نقش UnderGradChair نسبت داده شود. همچنین ممکن است کمیته پذیرش شامل آلیس و دیگر اعضاء هیئت علمی و یک دانشجو باشد. این کاربرها میتوانند در یک گروه در نمودار گروهبندی قرار گیرند و گروه میتواند به نقش Admissions نسبت داده شود.
لبهها در گراف گروهبندی توسط رابطه زیر مجموعه بین دو گروه تعیین میشوند. نقش کاربر و یا نقش گروه هنگامی واگذار میگردد که یک کاربر یا گروه به یک نقش نسبت داده شود. در [۱۴] مدلسازی گروهها با یک رویکرد مبتنی بر شئ انجام شده است چنانکه گروهها میتوانند مشخصههایی داشته باشند که ممکن است در واگذاری نقش گروه استفاده شوند.