جدول محتوا
در این مقاله قصد داریم به بررسی پروتکلی بپردازیم که هسته اصلی سرویسهای دایرکتوری مانند Active Directory را تشکیل میدهد و به نوعی ستون فقرات شبکه دامنه اکتیودایرکتوری محسوب میشود. این پروتکل LDAP مخفف Lightweight Directory Access Protocol نام دارد. به زبان ساده، LDAP پروتکلی است که امکان پیدا کردن سازمانها، افراد و سایر منابع نظیر فایلها و دستگاههای موجود در شبکه را، چه در اینترنت و چه در شبکه داخلی، فراهم میکند. برای توضیحات بیشتر باما همراه باشید.
پروتکل LDAP چیست؟
پروتکل LDAP چیست ؟ این پروتکل در اواسط دهه ۹۰ میلادی توسط گروهی از متخصصان کامپیوتر دانشگاه میشیگان به عنوان یک پروژه تحقیقاتی توسعه یافت. در اواخر همان دهه، شرکت نتاسکیپ این پروتکل را به عنوان یک پروژه تجاری به دنیای فناوری معرفی کرد. این فناوری شامل دو بخش اصلی است:
پروتکل شبکه و معماری استاندارد برای سازماندهی اطلاعات دایرکتوری.
LDAP را میتوان نسخه ساده شدهای از پروتکل Data Access Protocol (DAP) توصیف کرد که همزمان با ظهور استاندارد X.500 ایجاد شد. این فناوری یک پروتکل استاندارد برای دسترسی به پوشههای مبتنی بر شبکه است. درک مفهوم پوشه در این پروتکل ضروری است؛ پوشه یا دایرکتوری شبکه نوعی بانک اطلاعاتی ویژه است که اطلاعات مربوط به دستگاهها، برنامهها، افراد و سایر پارامترهای فنی یک شبکه کامپیوتری را نگهداری و ذخیره میکند. از فناوریهای قدرتمندی که برای ساخت دایرکتوریهای شبکه استفاده میشود، میتوان به LDAP و Microsoft Active Directory اشاره کرد.
بزرگترین مزیت LDAP نسبت به پروتکلهای قبلی، قابلیت پیادهسازی و اجرا بر روی پروتکل TCP/IP است. بنابراین سرپرستان شبکه به ابزارهای بهتری برای مدیریت پوشهها و هدایت دقیقتر ترافیک شبکه دسترسی دارند. با این حال پروتکل LDAP از لحاظ معماری شباهت زیادی به استاندارد X.500 دارد و از یک ساختار توزیع درختی استفاده میکند تا شباهت بیشتری به Active Directory داشته باشد.
نحوه عملکرد پروتکل LDAP
حال که پاسخ سوال LDAP را دادیمنوبت به آشنایی با نحوه عملکرد این پروتکل است؛ در ابتدا باید بدانید که LDAP عمدتاً برای احراز هویت دقیق به کار میرود، به طوری که تجهیزات مختلفی مانند فایروالهای سختافزاری، روترها و سرورها از قبیل سرور های اچ پی و … به خوبی از این پروتکل پشتیبانی میکنند. با استفاده از این پروتکل، میتوان نامهای کاربری و گذرواژهها را تعریف و مدیریت کرد.
امروزه انواع دستگاههای سختافزاری و نرمافزاری پرکاربرد، از جمله Kubernetes، Docker، Jenkins، پروتکل اشتراکگذاری فایل لینوکسی سامبا و OpenVPN از LDAP پشتیبانی میکنند. همچنین سرپرستان شبکه برای دسترسی بهتر و مدیریت بانکهای اطلاعاتی از این پروتکل بهره میگیرند.
اساس کار این پروتکل به طور خلاصه بر پایه اتصال یک کاربر به یک سرور LDAP است که شامل مراحل زیر میباشد:
- یک کاربر یا برنامه (که به آن کلاینت میگوییم) به سرور LDAP متصل میشود.
- کلاینت از پروتکل LDAP برای ارسال درخواست خود به سرور استفاده میکند.
- سرور LDAP پس از جستجو در دایرکتوری و انجام اقدامات لازم، اطلاعات مورد نظر را به کلاینت ارسال میکند.
- در نهایت ارتباط کلاینت با سرور LDAP قطع میشود.
در واقع عملیات LDAP معمولی به این سادگی نیست. مدیر فناوری اطلاعات باید برای بهینهسازی فرایند جستجو پارامترهای بیشتری را تعریف کند، مانند محدودیت اندازه جستجو یا مدتزمانی که سرور میتواند هر درخواست را پردازش کند؛ اما مهمتر از همه قبل از شروع جستجو سرور LDAP باید کاربر را احراز هویت کند.
دو روش برای این کار وجود دارد:
- احراز هویت ساده:
در این روش کلاینت نام کاربری و رمز عبور خود را وارد میکند و پس از تایید اعتبار، به سرور LDAP متصل میشود.
- احراز هویت ساده و لایه امنیتی (SASL)
در این روش سرور LDAP از یک ابزار یا سرویس واسطه مانند Kerberos برای احراز هویت کلاینت قبل از اتصال به سرور استفاده میکند. این روش برای سازمانهایی که به امنیت قویتری نیاز دارند، مناسبتر است.
در برخی موارد درخواستها از منابعی که در معرض شبکه عمومی هستند، ارسال میشوند. در این موارد شرکتها باید از پروتکل امنیت لایه حمل و نقل (TLS) برای ایمنسازی و رمزگذاری درخواستهای LDAP استفاده کنند.
هنگام احراز هویت یک کاربر، نام کاربری و رمز عبور او باید با موفقیت تایید شوند و کاربر باید مجوز دسترسی به منابع درخواست شده را داشته باشد. پس از احراز هویت موفقیتآمیز، پروتکل LDAP اجازه دسترسی را صادر میکند و در صورتی که کلاینت امتیازات لازم را نداشته باشد، دسترسی به منابع ممنوع میشود.
وظایف LDAP چیست؟
همانطور که گفته شد LDAP به عنوان یک استاندارد در دنیای فناوری اطلاعات مورد استفاده قرار میگیرد و بر مبنای پروتکل TCP/IP عمل میکند. وظایف اصلی آن عبارتند از:
جستجوی دایرکتوری
LDAP امکان تعیین کلیدهای جستجو برای دسترسی به اطلاعات موجود در دایرکتوریها را فراهم میکند. با استفاده از فیلترهای جستجوی پیشرفته، عبارات مرکب و محدودیتهای دیگر، میتوانید جستجوهای پیچیدهای انجام دهید تا اطلاعات مورد نیاز را پیدا کنید.
افزودن و ویرایش اطلاعات
از طریق LDAP میتوانید اطلاعات جدیدی را به دایرکتوری اضافه کنید یا اطلاعات موجود را ویرایش کنید. این شامل اطلاعات کاربران، گروهها، دسترسیها، اطلاعات تماس و سایر جزئیات مربوط به سازمان میشود.
حذف اطلاعات
LDAP این امکان را فراهم میکند که اطلاعات موجود در دایرکتوری را حذف کنید. میتوانید بر اساس استراتژیهای سازمانی، اطلاعات کاربران یا سایر اشیاء دایرکتوری را حذف کنید.
احراز هویت و دسترسی
LDAP نقش حیاتی در احراز هویت و مدیریت دسترسی کاربران ایفا میکند. با استفاده از LDAP میتوانید فرایند احراز هویت کاربران را انجام داده و سطوح دسترسی به اطلاعات مختلف در دایرکتوری را تعیین کنید.
مدیریت سرویس دایرکتوری
LDAP ابزارهای مدیریتی مختلفی را ارائه میدهد. میتوانید ساختار دایرکتوری را تعریف کنید، استراتژیهای تهیه نسخه پشتیبان و بازیابی را تنظیم کنید، قوانین و محدودیتهای دسترسی را تعیین کنید و به طور کلی دایرکتوری را مدیریت کنید.
به طور کلی با استفاده از LDAP میتوانید عملیات مختلفی از جمله جستجوی اطلاعات، افزودن و ویرایش اطلاعات، حذف اطلاعات، احراز هویت و مدیریت دسترسی کاربران و همچنین مدیریت کلی سرویس دایرکتوری را انجام دهید.
انواع مدلهای LDAP
توضیح مدلهای مختلف LDAP و خدماتی که سرور فراهم میکند:
مدل اطلاعات
در این مدل تمام اطلاعات به صورت ساختاری و سازماندهی شده در دایرکتوری ذخیره میشوند. ورودیهای اصلی که به نام ورودی شناخته میشوند، اطلاعات مربوط به اشیاء را در خود جای میدهند. برای مثال اگر ورودیها شامل افراد، سازمانها یا سرورها باشند، ویژگیهای آنها میتواند شامل نام، شماره تلفن و سایر ویژگیهای مرتبط باشد.
مدل نامگذاری
این مدل نحوه سازماندهی و شناسایی ورودیها را تعیین میکند. ورودیها در یک ساختار درختی سلسله مراتبی به نام “درخت اطلاعات فهرست” (DIT) سازماندهی میشوند و هر کدام دارای یک نام منحصر به فرد هستند که دنبالهای از نامهای متمایز نسبی (RDN) را شامل میشود.
مدل عملکردی
این مدل توابع و عملیاتی را که بر روی دایرکتوری فعال هستند شرح میدهد. در این مدل عملیات به سه دسته اصلی تقسیم میشوند:
- احراز هویت
- پرسوجو
- بهروزرسانی
مدل امنیتی
در این مدل امکان جلوگیری از دسترسی کاربران غیرمجاز به اطلاعات موجود در دایرکتوری فراهم میشود. این مدل بر اساس عملیات Bind که بخشی اساسی از احراز هویت است، تمرکز دارد و میتوان آن را به روشهای مختلفی اجرا کرد.
انواع عملیات های اجرایی LDAP
انواع عملیات قابل اجرا بر روی این پروتکل شامل موارد زیر هستند:
- Bind: این عملیات برای برقراری یک جلسه بین کلاینت و سرور و احراز هویت کاربر استفاده میشود.
- Unbind: این عملیات برای قطع ارتباط بین کلاینت و سرور پس از تکمیل عملیات مورد نظر به کار میرود.
- Search: ملیات جستجو به منظور یافتن و بازیابی ورودیهای دایرکتوری بر اساس معیارهای مشخص انجام میشود.
- Compare: این عملیات برای مقایسه مقادیر ویژگیهای ورودیها استفاده میشود.
- Add: عملیات افزودن برای ایجاد ورودیهای جدید در دایرکتوری مورد استفاده قرار میگیرد.
- Delete: این عملیات برای حذف ورودیهای مشخص از دایرکتوری به کار میرود.
- Modify: عملیات اصلاح برای اعمال تغییرات در یک ورودی استفاده میشود.
- :Abandonاین عملیات برای متوقف کردن پردازش عملیاتی که قبلاً توسط کاربر درخواست شده بود، استفاده میشود.
مزایای استفاده از پروتکل LDAP
ممکن است بپرسید چرا از این پروتکل استفاده کنیم و اهمیت آن چیست؟ این پروتکل دارای کاربردهای گوناگونی است که یکی از رایجترین آنها نقش مرکزی در احراز هویت است. همانطور که اشاره کردیم، این پروتکل به سازمانها کمک میکند تا نامهای کاربری و رمزهای عبور را تأیید کرده و مدیریت دسترسی کاربران در شبکه را انجام دهند. همچنین به کاربران امکان میدهد ویژگیهایی مانند ایمیل و شماره تلفن را بیابند و مدیریت کنند. برخی از کاربردهای این پروتکل عبارتند از:
- افزودن، بهروزرسانی یا حذف فایلها در پایگاه داده
- جستجوی دادههای خاص در پایگاه داده
- مقایسه دو فایل از نظر شباهتها و تفاوتها
- ایجاد تغییر در رکوردهای موجود در پایگاه داده
علاوه بر این این پروتکل دسترسی کاربران به منابع متصل به شبکه مانند چاپگرها، فایلها و سایر منابع اشتراکی را فراهم میکند و سازمانها میتوانند با سرویسهای دایرکتوری مختلف تعامل داشته باشند.
تفاوتLDAP و Active Directory در چیست؟
همانطور که LDAP به یک پروتکل اصلی برای خدمات دایرکتوری تبدیل شد، Microsoft Active Directory (AD) بسیاری از زیرساختهای خود را بر پایه LDAP بنا نهاد. با این حال AD یک ابزار صرفاً مبتنی بر LDAP نیست. اگرچه AD میتواند از LDAP استفاده کند، برای احراز هویت بیشتر به Kerberos متکی است و در مقایسه با دایرکتوریهای متنباز LDAP، انعطافپذیری کمتری دارد. AD نیاز به کنترلکنندههای دامنه دارد و بهترین عملکرد را با دستگاهها و برنامههای مبتنی بر ویندوز مایکروسافت دارد.
تا چندی پیش ابزارهای دایرکتوری بیشتر به محیطهای مبتنی بر ویندوز پاسخ میدادند. موفقیت AD عمدتاً به دلیل تمرکز آن بر روی محیطهای مبتنی بر ویندوز و در محل بود که برای چندین دهه استاندارد تجاری محسوب میشدند. اما در دهه گذشته با انتقال به فضای ابری و تشدید تغییرات ناشی از کووید-19 در سال ۲۰۲۰، نیازهای دایرکتوری تغییر کرده است. اکنون شرکتها به جای AD و مدلهای دایرکتوری سنتی، به خدمات دایرکتوری مبتنی بر ابر، مک و لینوکس روی آوردهاند.
نحوه راه اندازی LDAP چگونه است؟
مراحل راهاندازی LDAP بسته به نوع استفاده، متفاوت است. اینکه از سرور LDAP ابری استفاده کنید یا خودتان آن را راهاندازی کنید، تفاوتهایی در مراحل کار به همراه دارد. با این حال قبل از شروع هر مسیری، برنامهریزی باید اولین گام باشد. تیم فناوری اطلاعات شما باید قبل از انجام هر کاری به دقت برنامهریزی کند که شامل موارد زیر است:
- تعیین منابعی که در دایرکتوری قرار خواهند گرفت.
- روش جداسازی گروههای کاربری و تخصیص مجوزها.
- تعیین سیستمعاملهای مورد استفاده.
- ادغام فعالیتهای کارمندان دورکار در سیستم.
- تعیین پارامترهای امنیتی.
- بررسی تمامی جنبهها برای تضمین عملکرد صحیح.
- برنامهریزی برای مقیاسپذیری.
برنامهریزی اولیه برای ایجاد یک دایرکتوری سازمانی مقیاسپذیر، انعطافپذیر و مناسب با محیط حیاتی است. به عنوان مثال اگر شما یک سازمان کوچک هستید اما قصد دارید به طور قابل توجهی گسترش یابید، منطقی است که از ابتدا کارمندان خود را در گروههای بخشی تقسیم کنید. این کار امکان رشد سازمان را فراهم میکند، حتی اگر هر بخش با تعداد کمی از کاربران آغاز به کار کند.
راه اندازی داخلی LDAP
اگر شما میزبانی LDAP خود را انجام میدهید، باید سرور های LDAP خود را راهاندازی کنید. مراحل نصب و پیکربندی دایرکتوری LDAP بسته به نمونه LDAP مورد استفاده شما متفاوت است. اگرچه OpenLDAP احتمالاً محبوبترین نمونه LDAP در بازار است،اما سرورهای LDAP دیگری نیز وجود دارند؛ از جمله Apache DS، ۳۸۹ DS و Open DJ.
راه اندازی LDAP ابری
همانطور که اشاره شد کارهای مورد نیاز برای راهاندازی و نگهداری LDAP ابری بسیار کم هستند که یکی از دلایل اصلی جذابیت آن نسبت به راهکارهای سنتی است. مرحله اصلی برای اتصال به سرور LDAP ابری است، به جای نیاز به راهاندازی خودتان.
در این حالت همچنان باید با دقت قبل از انتخاب راهحل LDAP برنامهریزی شود. اما بیشتر ارائهدهندگان، پیکربندی و مدیریت دایرکتوری را از طریق رابط کاربری گرافیکی ارائه میدهند که فرآیند تغییرات را سادهتر میکند. اگرچه تعداد زیادی سرور LDAP رایگان (شامل سختافزار) برای انتخاب وجود ندارد، اما چندین گزینه نرمافزار LDAP رایگان در دسترس است که در ادامه به آنها خواهیم پرداخت.