Tag Archives: کنترل دسترسی

صدور مجوز Authorization

صدور مجوز یا Authorization چیست؟

صدور مجوز یا اتورایزیشن (Authorization) اصطلاحی در حوزه امنیت و کنترل دسترسی (Access Control) است و به فرایندی اشاره می‌کند که طی آن مجوز و حق دسترسی به منابع مشخص می‌شود.

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

درک مفهوم Authorization با یک مثال در دنیای واقعی

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

شما هنگام استخدام، این مجوزها را براساس قوانین سازمانی و موقعیت شغلی خود پذیرفته‌اید و در صورت تلاش برای ورود به مکانی که اجازه آن به شما داده نشده است احتمالا به صورت دوستانه یا غیردوستانه جلوی شما گرفته خواهد شد. به طور مشابه در دنیای رایانه، Authorization فرایندی است که مجوزهای شما برای دسترسی به قسمت‌های مختلف یک سیستم را مشخص می‌کند.

مجوز و کنترل دسترسی

در یک سیستم رایانه ای، مجوزها در قالب سیاست های دسترسی (Access Policy) مشخص می‌کنند هر کاربر قادر به انجام چه اعمالی روی کدام منابع می‌باشد. معمولا پس از اینکه هویت کاربر در سیستم تأیید شد (Authentication)، متناسب با سیاست‌ها و قوانین مذکور، درخواست های دسترسی کاربر توسط سیستم تایید یا رد می‌شود. نحوه تخصیص این مجوزها ممکن است بر اساس نقش کاربر (Role-based) یا ویژگی‌های پیچیده‌تر انجام شود.

به عنوان مثال کارمند بخش نیروی انسانی یک سازمان معمولا پس از لاگین کردن، مجوز دسترسی به رکوردهای مربوط به اطلاعات کلیه کارمندان سازمان را خواهد داشت. دسترسی مورد بحث احتمالا امکان خواندن، تغییر، ایجاد و حذف رکوردها را به این کارمند خواهد داد.

اغلب سیستم های چندکاربره از قابلیت کنترل دسترسی برخوردار هستند و مدیر سیستم مشخص می‌کند هر کاربر در چه سطحی مجوز دسترسی به سیستم را دارد. در این سیستم ها معمولا پس از تصدیق هویت، مجموعه‌ای از قابلیت‌ها و امکانات متناسب با مجوزهای کاربر در اختیار او قرار می‌گیرد و یا زمانی که برای دسترسی به یک منبع درخواست می‌دهد فرایند کنترل دسترسی بررسی می‌کند آیا کاربر مجوز لازم جهت دسترسی به منبع موردنظر را دارد یا خیر؟

تفاوت میان Authentication و Authorization

برای روشن‌تر شدن موضوع بهتر است به بررسی تفاوت میان مفاهیم Authentication و Authorization نیز بپردازیم. اصطلاح Authentication به معنای تصدیق هویت کاربر است در حالیکه Authorization همان‌طور که گفته شد به معنای تعیین مجوز دسترسی به منابع است.

به عبارت بهتر Authentication فرایندی است که در آن صحت اصالت یا هویت کاربر بررسی می‌شود. این فرایند زمانی کاربرد دارد که لازم است سیستم با جزئیات بیشتری بداند چه کسی می‌خواهد از آن استفاده کند. در ساده‌ترین و رایج‌ترین روش برای تصدیق هویت، هر کاربر از یک نام کاربری و کلمه عبور برای نشان دادن اینکه چه کسی است استفاده می‌کند. اما اصطلاح Authorization به فرایندی اشاره می‌کند که طی آن مشخص می‌شود آیا شما مجاز به انجام یک کار یا دسترسی به یک منبع (نظیر ویرایش رکوردهای مربوط به اطلاعات کارمندان اداره) هستید یا خیر؟

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

صدور مجوز Authorization
Authorization فرایندی است که طی آن مجوز و حق دسترسی به منابع مشخص می‌شود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

کپسوله سازی Encapsulation

کپسوله سازی یا Encapsulation چیست؟

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

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

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا