کلیدهای قابل جستجو (Lookup Keys)

اسفند ۲۶, ۱۳۹۴

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

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

فرض کنید می‌خواهید از MBaaS برای اتصال به پایگاه داده SQL Server استفاده نمائید. برای انجام این کار باید ابتدا یک سرویس SQL DB ایجاد و سپس در تب تنظیمات مشابه تصویر ذیل فیلدهای موردنظر را مقداردهی نمائید:

 nlk_db_service

همانطور که در تصویر فوق مشاهده می‌فرمائید، اطلاعات حساسی مانند IP سرور SQL Server، نام پایگاه‌داده و … خوانا و قابل دسترسی هستند. حال شاید برای شما این نگرانی ایجاد شود که با این کار امنیت سرور پایگاه‌داده خود را تا حدودی به خطر انداخته‌اید و برایتان این سوال مطرح شود که آیا راه حلی برای حل این مشکل وجود دارد یا خیر؟

راه حل مشکل فوق، کلیدهای قابل جستجو (Lookup key) هستند. اگر از کلیدهای قابل جستجو استفاده نمائید، تنظیمات اتصال به پایگاه داده شما مشابه تصویر زیر خواهد شد:

lk_db_service

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

در حال حاضر در چهار محدوده (scope)، می‌توان کلیدهای قابل جستجو ایجاد نمود:

  • سراسری (Global): کلید/مقدارهایی هستند که به صورت سراسری برای همه کاربران و نقش‌ها قابل دسترسی هستند. برای تعریف این نوع از کلیدها، باید از منوی عمودی گزینه تنظیمات سپس آیکون کلیدهای سراسری را انتخاب نمائید.

global_lookupkey

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

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

role_lookupkeys

 

  • کاربر (Userکلید/مقدارهایی هستند که تنها برای کاربر موردنظر قابل استفاده هستند. به منظور ایجاد کلیدهای قابل جستجو برای هر کاربر، باید از منوی عمودی گزینه کاربران را انتخاب، سپس یک کاربر جدید ایجاد یا از بین کاربران موجود یکی را انتخاب نمائید. سپس در تب کلیدهای قابل جستجو، کلید/ مقدار موردنظر خود را ایجاد کنید.

ساختار سلسه مراتبی

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

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

کلیدهای سیستمی

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

  • session.token
  • user.id
  • user.email
  • user.display_name
  • user.first_name
  • user.last_name
  • role.id
  • role.name
  • app.id
  • app.name
  • app.api_key
  • df.name
  • df.api_version
  • df.version
  • df.host_url
  • df.confirm_invite_url
  • df.confirm_register_url
  • df.confirm_reset_url

روش استفاده

کلیدهای قابل جستجو، در بخش‌های مختلف MBaaS قابل استفاده هستند. برای استفاده از کلیدها باید نام آن‌ها را مانند {my_lookup} بین {} قراردهید.

از مهمترین بخش‌های MBaaS که از کلیدهای قابل جستجو استفاده می‌کنند، می‌توان به موارد ذیل اشاره کرد:

  • در سرویس‌هایی که فیلدهای اعتبارسنجی و تنظیمات دارند، مانند سرویس اتصال به پایگاه‌های داده SQL. (کلیدها باید خصوصی باشند)
  • در قالب‌های سرویس ایمیل، مانند موضوع و متن ایمیل‌ها.
  • پارامترها و هدرهای وب سرویس‌ها. (کلیدها باید خصوصی باشند)
  • در فیلترهای سمت سرور
  • در رکوردها و پارامترهای داده‌های POST شده در سرویس‌های پایگاه‌داده SQL و NoSQL

تگ‌ها ; ,

نظر دهید:

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