سرور LDAP
برای کانفیگ دستگاه 3PAR که برای اموزش خودم مطالعه میکردم مجبور شدم برای برخی مطالب از قبیل ریموت شدن به استورج سراغ برخی مباحث ماکروسافتی برگردم و پیرامون برخی موضوعات دوبار ه بخوانم.
اول این که Active Directory و LDAP متفاوت از هم هستند. دوم این که LDAP یک استاندارد است ولی Active Directory یک تکنولوژی است که با LDAP هم سازگار میباشد. LDAP یک پروتکل لایه کاربرد شبکه مثل FTP و SMTP است با این تفاوت که binary است نه text based. خود LDAP در ادامه استانداردهای قدیمیتر دنیای مخابرات به وجود آمده است. LDAP را در سادهترین حالت میتوان یک دفترچه تلفن خیلی بزرگ و کامل دانست که در آن نام و مشخصات همه مشترکین موجود و قابل جستجو است. استاندارد LDAP توسط شرکتها و گروههای زیادی مورد پیادهسازی گرفته. یکی از این شرکتهای مایکروسافت است که نام پیادهسازی خود را Active Directory گذاشته. یکی از اصلیترین کاربردهای Active Directory پیادهسازی SSO و یکپارچه کردن امکانات مدیریتی در شبکههای مبتنی بر ویندوز است. Active Directory در شبکههای بزرگ استفاده میشود اما یک نسخه خیلی سبکتر هم به نام AD LDS وجود دارد که حتی روی ویندوز ۷ هم قابل نصب است.
بیشتر اصطلاحاتی که راجع به Active Directory به گوش ما خورده در واقع اصطلاحات مربوط به LDAP هستند نه Active Directory. جهت آشنایی بیشتر با چند اصطلاح آشنا میشویم:
entry: مجموعهای از اطلاعات راجع به یک مدخل در LDAP.
DN: آی دی یا کد شناسایی هر entry. هر DN شامل نام کامل مسیر دستیابی به مدخل به علاوه نام اصلی آن است.
RDN: نام اصلی یک entry فارغ از مسیر دسترسی به آن. RDN جزیی از DN محسوب میشود.
OU: دسته بندی objectها داخل یک domain
LDAP URL: مسیر دسترسی به یک سرور LDAP. به عنوان مثال به ldap://ldap.example.com/cn=john, dc=example, dc=com توجه شود.
یکی از سرویسهایی که روی لینوکس ارائه میشود، امکان کار با پروتکل LDAP است. این سرویس که تا حدودی برای بسیاری از کاربران و مدیران شبکه ناآشنا است، در کنار سرویس سامبا (Samba) بستری برای ارتباط سکوی اپنسورس با دیگر سکوهای سیستمعاملی ایجاد میکند و موجب میشود بدون در نظرگیری استانداردها و پروتکلهای سمت سرویسدهنده، با آنها سازگاری و همسانسازی داشته باشد.
سرویس دایرکتوری
دایرکتوری یا فهرست راهنما، یک سرویس ویژه در شبکههای کامپیوتری یا اینترنت است که برای بهبود کار با بانکهایاطلاعاتی برای خواندن، جستوجو و مرور اطلاعات به کار میرود. با استفاده از سرویس دایرکتوری میتوان محتویات بانک اطلاعاتی را دستهبندی نمود، برای آنها ویژگیها و ایندکسهایی تعریف کرد و بر این اساس فایلها و اطلاعات شبکه را برای دسترسی سریع و آسان طبقهبندی نمود. برای مثال، در شبکه ممکن است یک بانک اطلاعاتی از فایلها وجود داشته باشد. با استفاده از سرویس دایرکتوری میتوان این فایلها را طبقهبندی نمود، ویژگیهای مختلفی به آنها افزود و عملیات بروزرسانی و آپلود آنها را انجام داد؛ به طوری که دسترسی به آنها از روی شبکه برای کاربران ساده و راحت باشد.
هر سرویس دایرکتوری دارای ویژگیهای اساسی زیر است:
● قابلیت بهینهسازی خواندن و دسترسی به فایلها
● مدلی توزیع شده برای مدیریت و ذخیره اطلاعات
● افزایش و توسعه ویژگیها و انواع اطلاعات ذخیره شده
● ایجاد یک ابزار جستوجوی پیشرفته روی شبکه
روشهای مختلفی برای راهاندازی یک سرویس دایرکتوری وجود دارد. علاوه بر این، متدهای مختلفی برای مدیریت اطلاعات و ذخیرهسازی آنها براساس آپلودکردن آنها روی بانک اطلاعاتی، نحوه دسترسی، چگونگی مرجعدهی آنها برای یک سرویس دایرکتوری قابل استفاده است. برخی از سرویسهای دایرکتوری محلی (Local) هستند و فقط روی یک شبکه محلی یا یک ماشین سرویسدهنده اجرا میشوند. برخی دیگر از دایرکتوریها عمومی (Global) هستند و روی چندین شبکه محلی یا سرویسدهنده توزیع میشوند، و امکان مدیریت و دسترسی به اطلاعات روی شبکه را از این طریق فراهم میکنند. Domain Name System) DNS) یک مثال از سرویس دایرکتوری عمومی است.
پروتکل LDAP
Lightweight Directory Access Protocol یک پروتکل مبتنی بر شبکه و X500 برای دسترسی به سرویسهای دایرکتوری روی شبکه است. این پروتکل دارای مستندات RFC2251 و RFC3377 است. به علت آنکه دایرکتوریهای موجود روی شبکه یکتا نیستند و هر یک ممکن است براساس یک سکوی سیستمعاملی و ساختار متفاوت باشند، پروتکل LDAP امکان برقراری ارتباط و مدیریت آنها را فراهم میکند. در حقیقت LDAP ابزاری برای مدیریت اطلاعات شبکه، حسابهای کاربری، ماشینهای میزبان شبکه و منابع درون شبکه است. با استفاده از این استاندارد میتوان یک مدیریت متمرکز و واحد را به کل پیکره شبکه اعمال نمود و با دسترسی به تمام سرویسهای درون شبکه (سختافزاری و نرمافزاری) امکان همسانسازی و پیکربندی آسان آنها را فراهم کرد.
در حالت کلی پروتکل LDAP وظایف زیر را بر عهده دارد:
● ایجاد یک زبان مشترک دسترسی دایرکتوری (Directory Access) بین ماشین میزبان و سرویسدهنده در شبکه و امکان برقراری ارتباط و تبادل اطلاعات میان آنها فارغ از سکوی سیستمعاملی و سختافزاری.
● ایجاد یک استاندارد برای استفاده از دایرکتوری در شبکه.
این استاندارد قابلیت نصب و پیکربندی ساده و انعطافپذیر سرویس دایرکتوری و سفارشی نمودن آن برای نیازهای گوناگون را روی شبکه فراهم میکند.
● پشتیبانی توابع API:
این پروتکل از C ،Netscape’s Java SDK ،PerLDAP ،SunSoft’s JNDI و Microsoft’s Active Directory Services Interface) ADSI) پشتیبانی میکند و با آنها سازگار است. این ویژگی امکان مدیریت و کنترل دسترسی شبکههای گسترده را فراهم میکند که دارای چندین سکوی نرمافزاری/ سختافزاری هستند.
● استفاده از یک استاندارد با نام LDAP Data Interchange Format) LDIF) برای توصیف و تشریح اطلاعات دایرکتوری. این استاندارد که توسط یک ابزار با همین نام به کار گرفته میشود، تحت خط فرمان است و امکان تنظیم مجموعهای از دایرکتوریها یا آپلودکردن آنها برای استفاده در دایرکتوری را در اختیار مدیر شبکه قرار میدهد.
ساختار LDAP
اطلاعاتی که روی LDAP قرار میگیرد، اطلاعاتی ایندکسدار و مدخلمانند است. بدین معنی که اطلاعات به صورت مجموعهای از ویژگیهای توزیع شده قابل دسترسی هستند که از یکدیگر متمایزند و کاربران میتوانند از طریق ایندکسهای موجود، به اطلاعات دسترسی پیدا نمایند.
برای مثال، عبارت میتواند یک ایندکس برای اطلاعات دستوری و برای آدرسهای ایمیل باشد. cn میتواند ارزش یک داده یا اطلاعات برای یک کاربر یا ماشین باشد (برای مثال Misagh و mail) آدرس ایمیل مرتبط با ارزش cn باشد (برای مثال misagh؛example.com).
روی LDAP اطلاعات به صورت مدخلهای دایرکتوری و سلسله مراتبی قرار میگیرند. این ساختار سلسله مراتبی انعکاسی از ساختار شبکه یا اینترنت و وضعیت جغرافیایی یا قرارگیری ماشینهای کلاینت و سرویسدهنده است.
در شکل 1 و 2 دو ساختار سلسله مراتبی قرارگیری اطلاعات روی دایرکتوری برای دسترسی LDAP نشان داده شده است.
در شکل دو که گویای قرارگیری اطلاعات در دایرکتوری مبتنی بر اینترنت است، در بالاترین سطح از com ،net و DE که یک پسوند دامنه اختصاصی است، تشکیل یافته است.
اگر شاخه com را پیگیری نمایید، به سطح odyssey میرسید که یک سرویسدهنده اختصاصی درون سازمانی است.
در ادامه سطح odyssey به دو شاخه server و people تقسیم میشود که روی هر یک میتواند اطلاعات مختلفی قرار گیرد و یک کاربر که امکان دسترسی به این فهرست راهنما برایش مهیا است، میتواند با شناسه ID اختصاصی خود به فایلها و اطلاعات دسترسی داشته باشد.
این ساختار دسترسی به اطلاعات و کنترل مجوزها، همچنین مدیریت آنها را برای سرویسدهنده اختصاصی سازمان و دیگر سرویسدهندهها که امکان اتصال به دایرکتوری را دارند، ساده مینماید. LDAP ساز و کاری برای اتصال به این دایرکتوری و برقراری یک ارتباط مدیریتی در لینوکس برای مدیران شبکه فراهم میکند.
LDAP در لینوکس
LDAP خود یک پروتکل و استاندارد برای برقراری ارتباط با سرویس دایرکتوریهای مختلف است، اما در لینوکس برای به کارگیری و مدیریت این پروتکل ابزار OpenLDAP ارائه شده است. OpenLDAP یکی از بنیادیترین ابزارهای لینوکس است و به همین خاطر در غالب توزیعهای لینوکس مشاهده میشود و امکان نصب و راهاندازی آن به راحتی وجود دارد. بنابراین نصب این سرویس کار چندان مشکلی نخواهد بود، اما پیکربندی LDAP برای دسترسی به دایرکتوریهای تعریف شده و تنظیمات آنها براساس مستندات شبکه، نیازمند دقت و تمرین است.
علاوه بر این، هر توزیع، ابزارهای متنوع مدیریتی برای کار با این سرویس ارائه نموده است. برای نمونه در توزیع SUSE، در بخش Network Service ابزار LDAP Client ارائه شده است که میتوان با دادن آدرس سرویسدهنده LDAP و شماره DN اختصاصی تعریف شده برای کاربر، به این سرویس متصل شد
نتیجهگیری
برخی از سرویسهای ارائهشده روی لینوکس ویژگیهای منحصربهفردی دارند که توانایی و امکانات مدیران شبکه را افزایش میدهند و موجب میشوند شبکه را آسانتر مدیریت کرد و سریعتر کارهای روزمره و عادی را پیگیری نمود.
LDAP پروتکلی است که امکان ارتباط با سرویس دایرکتوری و مدیریت اطلاعات و کاربران روی یک شبکه را فراهم میکند. این سرویس توسط ابزار OpenLDAP در لینوکس اجرا میشود و مخصوص سکوی نرمافزاری اپنسورس برای سازگاری با دیگر سکوها است. در صورت نبود این پروتکل در لینوکس، مدیران شبکه مجبور میشدند از ابزارهای شبیهسازی و مجازیسازی برای راهاندازی یک کلاستر جهت ارتباط با سرویس دایرکتوری سیستمعاملهایی مانند ویندوز استفاده نماین
سرور LDAP چیست؟
استفاده از LDAP به صورت عملی
APIای که در LDAP در اختیار شما قرار می گیرد، سازوکاری فراهم می کند تا در یک دایرکتوری) که بطور عام، یک اینترنت دایرکتوری است) کارهای معمول مانند وصل شدن، جستجو و تغییرات را انجام دهید. برخلاف بقیه پروتکل های اینترنت، LDAP دارای یک APIمشخص است که نوشتن یک سرویس مرتبط با یک Internet Directory را ساده می کند.
استفاده کردن از یک کارگزار LDAP شامل 4 بخش اصلی است :
-
ایجاد و شروع یک Session : وقتی یک Session ایجاد می کنید، این Session ، مقادیر پیش فرض را، به خود می گیرد. اطلاعاتی که در این Session نگهداری می شود عبارتند از وضعیت کنونی Session، مدت اتصال، شماره ی نسخه ی در حال استفاده و برخی ملاحظات امنیتی. پس از ایجاد (Initialize) کردن session شما یک handle خواهید داشت که با استفاده از آن می توانید برخی مقادیر پیش فرض را تغییر دهید.
-
مقداردهی اولیه (اختیاری) : تغییر برخی مقادیر پیش فرض
-
اتصال به کارگزار (اختیاری)
-
Bind شدن به کارگزار. در این مرحله کارگزار، کاربر را اعتبارسنجی می کند. در صورت تأیید اعتبار کاربر، در حد اختیارات خود اجازه دسترسی به توابع کارگزار را دارا خواهد بود. اگر شما این کار را انجام ندهید به عنوان کاربر anonymous به کارگزار معرفی خواهید شد و در حد کاربر میهمان به امکانات کارگزار دسترسی خواهید داشت.
Active Directory سرور به عنوان یکی از مهمترین بخش های از ویندوز بر پایه LDAP پیاده سازی شده است. Active Directory به دغدغه های کاربران برای پیدا کردن منابع و سرویس ها پایان داد و بی تردید می توان آن را مهمترین خصوصیت افزوده شده به ویندوزهای سری 2000دانست.
[soliloquy id=”753″]