LDAP چیست و چه شرکت هایی از آن استفاده می کنند؟
LDAP مخفف Lightweight Directory Access Protocol و یک پروتکل استاندارد برای دسترسی به پوشههای مبتنی بر شبکه است. با اینحال، با توجه به شناسایی رخنه های امنیتی در این پروتکل، امروزه LPDAPS به عنوان جایگزینی بهتر و ایمنتر که قادر به رمزگذاری ارتباطات است از سوی کارشناسان شبکه استفاده میشود. نکتهای که لازم است در ارتباط با این پروتکل به آن دقت کنید آشنایی با مفهوم پوشه است. یک پوشه یا در اصطلاح تخصصی دایرکتوری شبکه نوعی بانک اطلاعاتی ویژه است که اطلاعات مربوط به دستگاهها، برنامه ها، افراد و سایر پارامترهای فنی یک شبکه کامپیوتری را نگهداری و ذخیرهسازی میکند. از قدرتمندترین فناوریهایی که برای ساخت دایرکتوریهای شبکه از آنها استفاده میشود باید به LDAP و Microsoft Active Directory اشاره کرد.
فهرست محتوا
LDAP چیست؟
LDAP اواسط دهه 90 میلادی توسط گروهی از متخصصان علوم کامپیوتر دانشگاه میشیگان در قالب یک پروژه تحقیقاتی پدید آمد و أواخر همین دهه بود که شرکت نتاسکیپ آنرا به عنوان یک پروژه تجاری به دنیای فناوری معرفی کرد. فناوری مذکور از دو مولفه اصلی پروتکل شبکه و معماری استاندارد برای سازماندهی اطلاعات دایرکتوری تشکیل شده است. پروتکل LDAP را باید نسخه ساده شدهای از پروتکل دسترسی داده (DAP) سرنام Data Access Protocol توصیف کرد که همزمان با ظهور استاندارد X.500 پدید آمد.
بزرگترین مزیتی که LDAP نسبت به پروتکلهای قبل از خود دارد قابلیت پیادهسازی و اجرا روی پروتکل TCP/IP است. بنابراین سرپرستان شبکه به قابلیتهای بهتری برای مدیریت پوشهها و هدایت دقیقتر ترافیک شبکه دسترسی دارند. با اینحال، پروتکل LDAP به لحاظ معماری شباهت زیادی به استاندارد X.500 دارد، بهطوری که از یک ساختار توزیع درختی استفاده میکند تا شباهت بیشتری به اکتیودایرکتوری پیدا کند.
مفاهیم LDAP
پرسشی که اکنون باید به آن پاسخ دهیم این است که چرا باید از LDAP استفاده کنیم؟ در پاسخ به این پرسش باید بگویی LDAP عمدتا با هدف انجام یک احراز هویت دقیق انجام میشود، بهطوری که تجهیزاتی مانند دیوارهای آتش سختافزاری، روترها و سرورها به خوبی از پروتکل فوق پشتیبانی میکنند. با استفاده از این پروتکل قادر به تعریف و استفاده از نام کاربری و گذرواژهها هستیم.
امروزه دستگاههای سختافزاری و نرمافزاهرای کاربردی مختلفی مثل کوبرنیتیس، داکر، جنکینس، پروتکل اشتراکگذاری فایل لینوکسی موسوم به سامبا و Open VPN از این پروتکل پشتیبانی میکنند. بهعلاوه، سرپرستان شبکه به منظور دسترسی و مدیریت بهتر بانکهای اطلاعاتی از پروتکل مذکور استفاده میکنند.
قبل از پیدایش پروتکل LDAP برای زیرساختهای شبکه و پوششها چه فناوری غالب بود؟
قبل از پدید آمدن استانداردهایی مثل X.500 و LDAP که عملکرد قابل قبولی دارند، بیشتر شرکتها در هنگام پیادهسازی شبکههای سازمانی بزرگ از دایرکتوری شبکه اختصاصی مثل Banyan VINES، Novell Directory Service یا ویندوز سرور NT استفاده میکردند. با اینحال، LDAP به دلیل مزایای غیر قابل انکاری که دارد موفق شد، رقبا را کنار گذاشته و به عنوان پروتکل اختصاصی در این زمینه به رسمیت شناخته شود.
وظایف LDAP
LDAP سرنام (Lightweight Directory Access Protocol) یک پروتکل شبکه است که برای مدیریت و دسترسی به اطلاعات موجود در سرویسهای دایرکتوری استفاده میشود. LDAP به عنوان یک پروتکل استاندارد در دنیای فناوری اطلاعات استفاده میشود و بر مبنای پروتکل TCP/IP کار میکند. برخی از وظایف LDAP به شرح زیر هستند:
جستجوی دایرکتوری: LDAP این قابلیت را فراهم میکند تا کلیدهای جستجو را برای دسترسی به اطلاعات در دایرکتوریها تعیین کنید. میتوانید با استفاده از فیلترهای جستجوی پیشرفته، عبارات مرکب و محدودیتهای دیگر، جستجوهای پیچیده را انجام دهید تا اطلاعات مورد نیاز را در دایرکتوریها پیدا کنید.
افزودن و ویرایش اطلاعات: با استفاده از LDAP، میتوانید اطلاعات جدید را به دایرکتوری اضافه کنید یا اطلاعات موجود را ویرایش کنید. به عنوان مثال، میتوانید اطلاعات کاربران، گروهها، دسترسیها، اطلاعات تماس و سایر جزئیات مربوط به سازمان را در دایرکتوری ذخیره و به روزرسانی کنید.
حذف اطلاعات: LDAP امکان حذف اطلاعات موجود در دایرکتوری را نیز فراهم میکند. میتوانید اطلاعات کاربران یا دیگر اشیاء دایرکتوری را متناسب با استراتژیهای سازمانی حذف کنید.
احراز هویت و دسترسی: LDAP نقش مهمی در احراز هویت و مدیریت دسترسی کاربران دارد. با استفاده از LDAP، میتوانید عملیات احراز هویت کاربران را انجام داده و سطوح دسترسی به اطلاعات مختلف در دایرکتوری را تعیین کنید.
مدیریت سرویس دایرکتوری: LDAP امکانات مدیریتی را نیز ارائه میدهد. میتوانید ساختار دایرکتوری را تعریف کنید، استراتژیهای تهیه نسخه پشتیبان (Backup) و بازیابی (Restore) را تنظیم کنید، قوانین و محدودیتهای دسترسی را تعیین کنید و به طور کلی دایرکتوری را مدیریت کنید.
در کل، با استفاده از LDAP میتوانید اطلاعات دایرکتوری را جستجو کنید، اطلاعات جدید را اضافه و ویرایش کنید، اطلاعات موجود را حذف کنید، احراز هویت و دسترسی کاربران را مدیریت کنید و عملیات مدیریتی دیگری را در سرویس دایرکتوری انجام دهید.
انواع مدلهای LDAP
LDAP مبتنی بر مدلهای مختلفی است که برخی از آنها به شرح زیر هستند:
مدل سلسله مراتبی (Hierarchical Model): این مدل، همچنین به عنوان مدل درختی شناخته میشود و یک ساختار سلسله مراتبی را برای ذخیره و سازماندهی اطلاعات در دایرکتوری LDAP ارائه میدهد. در این مدل، اطلاعات به صورت درختی سازماندهی میشوند و هر شیء دارای یک شاخه پدر و تعدادی شاخه فرزند است. مدل سلسله مراتبی برای سازماندهی و مدیریت اطلاعات سازمانها و ساختارهای سلسله مراتبی مناسب است.
مدل شیگرا (Object-Oriented Model): در این مدل، اطلاعات به صورت شیءگرا سازماندهی میشوند. هر شیء دارای ویژگیها (Attributes) است که مقادیر مشخصی را نگه میدارند. اشیا میتوانند با یکدیگر رابطههای مختلفی داشته باشند و همچنین از ارثبری پشتیبانی میکنند. مدل شیگرا برای سازماندهی اطلاعات پویا و پیچیده در دایرکتوریها مناسب است.
مدل ترکیبی (Mixed Model): مدل ترکیبی از ویژگیهای مدل سلسله مراتبی و مدل شیگرا استفاده میکند. به عنوان مثال، میتوانید ساختار سلسله مراتبی را برای سازماندهی و مدیریت واحدهای سازمانی استفاده کنید و در هر واحد سازمانی از مدل شیگرا برای سازماندهی اطلاعات داخلی بهره ببرید. این مدل میتواند ترکیبی از سادگی و انعطافپذیری باشد.
مدلهای مذکور فقط برخی از مدلهای مورد استفاده در LDAP هستند. به بیان دقیقتر، مدلهای دیگری نیز وجود دارند که براساس نیازها مورد استفاده قرار میگیرند. هر مدل ویژگیها، مزایا و معایب خاص خود را دارد. بنابراین، بسته به مورد استفاده باید مدل مناسبی را مورد استفاده قرار دهید.
چه شرکتهایی نیاز به استفاده از LDAP دارند؟
یکی از بزرگترین پرسشهایی که مهندسان شبکه مطرح میکنند این است که چه زمانی باید از پروتکل مذکور استفاده کنیم؟ در پاسخ به این پرسش باید بگوییم، امروزه بیشتر شبکههای کامپیوتری در مقیاس بزرگ و سازمانی برای طراحی و پیادهسازی زیرساخت شبکه از سیستمعامل ویندوز سرور مایکروسافت استفاده میکنند که قابلیتهای کاربردی منعطف و مختلفی در اختیار آنها قرار میدهد. امروزه، سیستمهای دایرکتوری مبتنی بر سرورهای LDAP مثل مایکروسافت اکتیو دایرکتوری (Microsoft Active Directory) و NetIQ eDirectory از این پروتکل به شکل گستردهای استفاده میکنند.
بهطور معمول پوشههای تحت شبکه خصایص و ویژگیهای مختلفی در ارتباط با گرههای شبکه مثل کامپیوترها، چاپگرها و موارد این چنینی نگهداری میکنند، در حالی که سیستمعاملها نیز اطلاعات مربوط به حسابهای کاربردی را ذخیرهسازی و نگهداری میکنند. بهطور مثال، سیستمهای ایمیل که توسط کسبوکارها و مراکز آموشی مختلف استفاده میشود در بیشتر موارد از سرورهای LDAP برای نگهداری اطلاعات تماس استفاده میکنند.
با اینحال، شما سرورهای LDAP را در شرکتهای کوچک یا مقیاس خانگی پیدا نخواهید کرد، زیرا شبکههای خانگی یا شبکه های پیادهسازی شده در شرکتهای عادی به اندازهای کوچک هستند که امکان نظارت فیزیکی روی آنها به سادگی امکانپذیر است و لزومی ندارد تا پروتکل LDAP روی آنها نصب و پیادهسازی شود. با وجودی که فناوری LDAP در قواعد تعریف شده برای دنیای شبکههای کامپیوتری قدمتی نسبتا طولانی دارد، اما همچنان برای کارشناسان شبکه جذابیت و تازگی دارد.
نکته دیگری که باید در همین ارتباط به آن اشاره کنیم، پروتکل SMB سرنام Server Message Block است که اولین بار در سیستمعاملهای ویندوزی برای بهاشتراکگذاری فایل روی شبکه از آن استفاده میشد. یونیکس هم از نسخه SMB در نرمافزار Samba استفاده میکند که برای اشتراکگذاری فایل با سایر سیستمعاملها همچون ویندوز استفاده میشود. بنابراین به این نکته دقت کنید که در برخی از شبکهها و به ویژه شبکههای مبتنی بر سیستمعامل لینوکس ممکن است پروتکل SMB را به عنوان راهحلی برای اشتراکگذاری فایلها مشاهده کنید.
پیشنهاد مطالعه: SMB Protocol چیست؟
LDAP Server چیست؟
پروتکل دسترسی پوشه سبک وزن LDAP سرنام Lightweight Directory Access Protocol، پروتکلی برای یافتن و دستیابی به اطلاعات و فایلهای کاربران در یک شبکه سازمانی یا در مقیاس وسیعتر اینترنت است. همانگونه که اشاره کردیم، پروتکل LDAP نسخه ساده شده پروتکل دسترسی داده است که هر دو مبتنی بر استاندارد X500 هستند که به عنوان استاندارد Directory Services از آن نام برده میشود.
اصلیترین وظیفه پروتکل مذکور تعریف یک زبان مشترک برای دسترسی به دادهها بین سرورها و کلاینتهای شبکه است. بهطوری که این دو گره تحت شبکه بتوانند به سادهترین شکل به تبادل اطلاعات بپردازند. در این حالت، گرههای تحت شبکه فارغ از سختافزار و سیستمعاملی که دارند این توانایی را به دست میآورند تا به سادهترین شکل به ارتباط و تبادل اطلاعات بپردازند. بنابراین یک کاربر سیستمعامل ویندوزی میتواند به اسناد و فایلهایی که یک کاربر سیستمعامل لینوکسی در شبکه به اشتراک قرار داده دسترسی پیدا کند.
بر مبنای این تعریف مشاهده میکنیم که پروتکل مذکور عملکردی شبیه به DNS دارد و در نقش یک دفترچه تلفن خیلی بزرگ ظاهر میشود که اطلاعات همه کاربران و گرههای تحت شبکه را نگهداری و با یک جستوجوی ساده امکان دسترسی به اطلاعات را فراهم میکند. در LDAP اطلاعات در قالب رکوردهایی ذخیره میشوند. بهطوری که تمامی وردهای دادهای که در سرور LDAP ذخیره میشوند شاخصگذاری میشوند تا دسترسی به آنها در کوتاهترین زمان فراهم شود.
پیشنهاد مطالعه: DNS چیست؟
در این حالت هنگامی که اطلاعاتی از طرف کاربر در قالب یک محاوره درخواست میشود، فیلترهای خاصی اعمال میشوند تا دسترسی به اطلاعات در کوتاهترین زمان فراهم شود. شاخصگذاری با هدف دسترسی سریعتر و افزایش سرعت جستوجو برای پیدا کردن رکوردهای موردنظر است. با توجه به اینکه زیرساختهای شبکه همواره در معرض تهدیدات سایبری قرار دارند و این احتمال وجود دارد که هکرها بتوانند به یک شبکه سازمانی وارد شوند.
بنابراین توصیه میکنیم از LDAP برای اشتراکگذاری و دسترسی به منابع استفاده کنید، زیرا از مکانیزمهای ساده، اما قدرتمند رمزنگاری در پروتکل TCP/IP برای تبادل اطلاعات و کنترل و مدیریت کاربران در شبکه پشتیبانی کرده و امکان نصب و پیکربندی سرویس دایرکتوری و سفارشی کردن آن برای انواع کاربردها در شبکه را فراهم میکند.
بزرگترین مزیتی که LDAP دارد و باعث شده تا همگرایی خوبی با اکتیو دایرکتوری داشته باشد، ساختار درختی و سلسله مراتبی آن است که متشکل از عناصر مختلفی مثل ریشه پوشه (Root Directory) که همان منبع درخت است که اطلاعات اصلی را نگهداری میکند. کشورها/مناطق (Countries) که برای تقسیمبندی شاخههای مختلف از آن استفاده میشود، سازمانها (Organizations) که شامل زیرشاخههای خاص خود هستند، واحدهای سازمانی (Organizational Units) شامل بخشها و دپارتمانها هستند و اشیا یا عناصر منفرد (Individuals/ Object) که شامل منابع اشتراکی، کاربران، گروهها، فایلها و اسناد میشوند.
OpenLDAP چیست؟
پروتکلی فارغ از سکو است که وابستگی خاصی به یک سیستمعامل مشخص ندارد. هرچند برای استفاده از آن در سیستم عامل های یونیکسی و شبیه یونیکسی مثل لینوکس باید نرمافزار OPEN LDAP را روی سیستمعامل لینوکس نصب کرد. این برنامه قابلیت اجرا روی طیف گستردهای از سیستم عامل های لینوکسی را دارد. بنابراین اگر شبکهای مبتنی بر سیستم عامل لینوکس را پیادهسازی کردهاید، بازهم بدون مشکل قادر به استفاده از LDAP و نرمافزار مذکور هستید.
راهاندازی پروتکل LDAP
برای راهاندازی پروتکل LDAP باید بر مبنای مراحل زیر گام بردارید:
نصب و پیکربندی سرور LDAP: ابتدا باید یک سرور LDAP را نصب کنید. برخی از گزینههای محبوب در این زمینه OpenLDAP، Microsoft Active Directory و Novell eDirectory هستند. بعد از نصب، باید سرور را به درستی پیکربندی کنید، تنظیمات اتصال شبکه را به همراه تنظیمات امنیتی و کاربران پیکربندی کنید.
طراحی ساختار دایرکتوری: در این مرحله، باید ساختار دایرکتوری را طراحی کنید. بررسی نیازهای سازمان و تعیین سلسله مراتب و ویژگیهای مورد نیاز برای اطلاعات در دایرکتوری از جمله وظایف این مرحله است. باید تعیین کنید که کدام اطلاعات در کدام شاخه قرار میگیرد و چگونه سازماندهی میشود.
ایجاد اطلاعات و اشیا: پس از طراحی ساختار دایرکتوری، باید اطلاعات مورد نیاز را در دایرکتوری ایجاد کنید. این موضوع شامل ایجاد اشیا (مانند کاربران، گروهها، سازمانها و سایر اشیاء) و تنظیم ویژگیها و مقادیر آنها است.
پیکربندی دسترسی و احراز هویت: در این مرحله، باید دسترسی کاربران به اطلاعات در دایرکتوری و روشهای احراز هویت تنظیم شود. میتوانید سطوح دسترسی بر اساس نقشها و گروهها تعریف کنید و روشهای احراز هویت مانند نام کاربری و رمز عبور، گواهینامهها و سایر روشهای تشخیص هویت را پیکربندی کنید.
تست و ارزیابی: پس از پیکربندی، باید سرور LDAP را تست کنید تا از صحیح بودن عملکرد و دسترسی صحیح به اطلاعات اطمینان حاصل کنید. میتوانید ابزارهای تست و ارزیابی LDAP را برای بررسی قابلیت دسترسی، جستجو و عملکرد سرور مورد استفاده قرار دهید.
مدیریت و پشتیبانی: برای راهاندازی موفق LDAP، باید بر مبنای یک برنامه دقیق و نگهداری گام بردارید که این مرحله شامل نظارت بر عملکرد سرور، مدیریت کاربران و اطلاعات، اجرای پشتیبانگیری و غیره است.
اکنون به این پرسش میرسیم که چگونه میتوانیم سرور LDAP را پیکربندی کنیم؟
پیکربندی سرور LDAP بستگی به نوع سروری که استفاده میکنید دارد، اما راهنمای کلی برای پیکربندی سرور LDAP با استفاده از OpenLDAP به شرح زیر است:
نصب OpenLDAP: ابتدا OpenLDAP را بر روی سرور خود نصب کنید. بسته به سیستم عاملی که استفاده میکنید، مراحل نصب ممکن است متفاوت باشد. معمولا با استفاده از مدیر بستههای سیستم خود (مانند apt یا yum در لینوکس) میتوانید OpenLDAP را نصب کنید.
تنظیمات پیکربندی سرور: فایل پیکربندی اصلی برای سرور فوق slapd.conf است. شما باید این فایل را ویرایش کرده و تنظیمات مورد نیاز را اعمال کنید. تنظیمات مهم شامل مسیر دایرکتوری پایه (base DN)، پورتها، رمزنگاری، محدودیتها و امنیت است. با مطالعه مستندات OpenLDAP و راهنماهای مربوطه، میتوانید تنظیمات دقیق را براساس نیازهای خود تعیین کنید.
ایجاد دایرکتوری پایه (Base DN): در این مرحله باید دایرکتوری پایه را در ساختار سلسله مراتبی LDAP تعیین کنید. این مرحله مشخص میکند که اطلاعات شما در کدام شاخه از ساختار سلسله مراتبی قرار میگیرند. برای مثال، میتوانید از مقدار “dc=example,dc=com” استفاده کنید.
ایجاد اشیا و ویژگیها: باید اشیا (مانند کاربران، گروهها، سازمانها) و ویژگیها را برای اطلاعات خود ایجاد کنید. برای هر شی، ویژگیهایی مانند نام، نام کاربری، رمز عبور و سایر جزئیات را تعریف کنید. این تنظیمات را میتوانید در فایل پیکربندی slapd.conf انجام دهید.
مدیریت دسترسی: شما باید دسترسیها و مجوزهای لازم را تنظیم کنید تا کاربران بتوانند به اطلاعات دسترسی پیدا کنند. در LDAP، دسترسیها با استفاده از فهرست کنترل دسترسی ACL سرنام Access Control Lists تنظیم میشوند. شما باید قوانین ACL را براساس نیازهای خود تعیین کنید، مانند مجوزها برای خواندن، نوشتن و حذف اطلاعات.
راهاندازی سرویس: پس در این مرحله باید سرویس LDAP را راهاندازی کنید که شامل اجرای سرویس slapd بر روی سرور است. بسته به سیستم عامل و نوع نصب، ممکن است بخواهید از سیستمهای مدیریت سرویس مانند systemd یا init استفاده کنید.
تست و اعتبارسنجی: در این مرحله، باید سرور LDAP را تست کنید تا از صحیح بودن تنظیمات و عملکرد آن اطمینان حاصل کنید. میتوانید از ابزارهایی مثل ldapsearch و ldapmodify استفاده کنید تا عملیات جستجو، افزودن، تغییر و حذف اطلاعات را بررسی کنید.
تفاوت های LDAP و Active Directory
در سادهترین تعریف یک دایرکتوری یا پوشه به فهرستی از اشیا اشاره دارد که اطلاعات آنها بر مبنای الگوی خاص و مرتبط نگهداری میشود. بهطور مثال، منابع سیستمی که بر مبنای نامشان مرتب شدهاند مثالی روشن در این زمینه هستند. در حالت کلی دایرکتوریها را باید شبیه به بانکهای اطلاعاتی توصیف کنیم، با این تفاوت که دایرکتوریها عمدتا برای نگهداری نوع خاصی از اطلاعات استفاده میشوند. بهطور مثال، دایرکتوریها عمدتا برای خواندن و نه نوشتن و ویرایش اطلاعات استفاده میشوند، فرایند تغییر در آنها به شکل سادهای انجام میشود و در نهایت برای دسترسی به دایرکتوری از یک پروتکل شبکه باید استفاده کرد.
اکتیو دایرکتوری یک ارایهدهنده خدمات پوشه (Directory Service Provider) است که به خوبی از LDAP پشتیبانی میکند، بهطوری که تمام عملیاتی که در LDAP انجام میشود در اکتیودایرکتوری نیز در دسترس قرار دارند. این مولفه ویندوز سرور گسترشپذیری زیادی دارد و قادر است از پروتکلها و استانداردهای مختلفی پشتیبانی کند و به شکل یکپارچه تمام اشیا حاضر در شبکه را ذخیرهسازی کند. این مولفه ویندوز قادر است مدیریت و نظارت کاملی بر تمامی فرآیندهای شبکه و به ویژه مدیریت در سطح دسترسی به اطلاعات در سطح شبکه از طریق احراز هویت را فراهم میکند که در این زمینه عملکردی یکسان با LDAP دارد.
پیشنهاد مطالعه: دامین کنترلر در اکتیودایرکتوری چیست
در نقطه مقابل، LDAP یک پروتکل لایه کاربرد است که توسط اکتیو دایرکتوری استفاده میشود. در شرایطی که اکتیو دایرکتوری توسط شرکت مایکروسافت ارائه شده، اما LDAP پروتکلی است که توسط دانشگاه میشیگان طراحی شده است. اکتیودایرکتوری تنها روی سیستمعامل ویندوز سرور مایکروسافت قابلیت اجرا دارد، در حالی که LDAP قابلیت اجرا روی سیستمعاملهای مختلف را دارد. هر دو فناوری اکتیودایرکتوری ویندوز و Open-LDAP از LDAP برای خدمترسانی استفاده میکنند.