سرویس دایركتوری‌
دایركتوری یا فهرست راهنما، یك سرویس ویژه در شبكه‌های كامپیوتری یا اینترنت است كه برای بهبود كار با بانك‌های‌اطلاعاتی برای خواندن، جست‌وجو و مرور اطلاعات به كار می‌رود. با استفاده از سرویس دایركتوری می‌توان محتویات بانك اطلاعاتی را دسته‌بندی نمود، برای آن‌ها ویژگی‌ها و ایندكس‌هایی تعریف كرد و بر این اساس فایل‌ها و اطلاعات شبكه را برای دسترسی سریع و آسان طبقه‌بندی نمود. برای مثال، در شبكه ممكن است یك بانك اطلاعاتی از فایل‌ها وجود داشته باشد. با استفاده از سرویس دایركتوری می‌توان این فایل‌ها را طبقه‌بندی نمود، ویژگی‌های مختلفی به آن‌ها افزود و عملیات بروزرسانی و آپلود آن‌ها را انجام داد؛ به طوری كه دسترسی به آن‌ها از روی شبكه برای كاربران ساده و راحت باشد. 

هر سرویس دایركتوری دارای ویژگی‌های اساسی زیر است: 

‌ قابلیت بهینه‌سازی خواندن و دسترسی به فایل‌ها‌‌

 مدلی توزیع شده برای مدیریت و ذخیره اطلاعات

 افزایش و توسعه ویژگی‌ها و انواع اطلاعات ذخیره شده‌

 ایجاد یك ابزار جست‌وجوی پیشرفته روی شبكه‌

روش‌های مختلفی برای راه‌اندازی یك سرویس دایركتوری وجود دارد. علاوه بر این، متدهای مختلفی برای  مدیریت اطلاعات و ذخیره‌سازی آن‌ها براساس آپلودكردن آن‌ها روی بانك اطلاعاتی، نحوه دسترسی، چگونگی مرجع‌دهی آن‌ها‌ ‌برای یك سرویس دایركتوری قابل استفاده است. برخی از سرویس‌های دایركتوری محلی (Local) هستند و فقط روی یك شبكه محلی یا یك ماشین سرویس‌دهنده  اجرا می‌شوند. برخی دیگر از دایركتوری‌ها عمومی (Global) هستند و روی چندین شبكه محلی یا سرویس‌دهنده توزیع می‌شوند، و امكان مدیریت و دسترسی به اطلاعات روی شبكه را از این طریق فراهم می‌كنند.‌ Domain Name System) DNS) یك مثال از سرویس دایركتوری عمومی است.

پروتكل LDAP 
Lightweight Directory Access Protocol یك پروتكل مبتنی بر شبكه و  X500 برای دسترسی به سرویس‌های دایركتوری روی شبكه است. این پروتكل دارای مستندات RFC2251 و RFC3377 است. به علت آن‌كه دایركتوری‌های موجود روی شبكه یكتا نیستند و هر یك ممكن است براساس یك سكوی سیستم‌عاملی و ساختار متفاوت باشند، پروتكل LDAP امكان برقراری ارتباط و مدیریت آن‌ها را فراهم می‌كند. در حقیقت LDAP ابزاری برای مدیریت اطلاعات شبكه، حساب‌های كاربری، ماشین‌های میزبان شبكه و منابع درون شبكه است. با استفاده از این استاندارد می‌توان یك مدیریت متمركز و واحد را به كل پیكره شبكه اعمال نمود و با دسترسی به تمام سرویس‌های درون شبكه (سخت‌افزاری و نرم‌افزاری) امكان همسان‌سازی و پیكربندی آسان آن‌ها را فراهم كرد. 

در حالت كلی پروتكل LDAP وظایف زیر را بر عهده دارد:

 ایجاد یك زبان مشترك دسترسی دایركتوری (Directory Access) بین ماشین میزبان و سرویس‌دهنده در شبكه و امكان برقراری ارتباط و تبادل اطلاعات میان آن‌ها فارغ از سكوی سیستم‌عاملی و سخت‌افزاری.

 ایجاد قابلیت استفاده از متدهای ساده رمزنگاری در پروتكل TCP/IP برای تبادل اطلاعات كنترلی و مدیریتی مانند كنترل و مدیریت كاربران در شبكه. 

 ایجاد یك استاندارد برای استفاده از دایركتوری در شبكه. 

این استاندارد قابلیت نصب و پیكربندی ساده و انعطاف‌پذیر سرویس دایركتوری و سفارشی نمودن آن برای نیازهای گوناگون را روی شبكه فراهم می‌كند.  

 پشتیبانی توابع API:
این پروتكل از C ،Netscape's Java SDK ،PerLDAP ،SunSoft's JNDI و Microsoft's Active Directory Services Interface) ADSI) پشتیبانی می‌كند و با آن‌ها سازگار است. این ویژگی امكان مدیریت و كنترل دسترسی شبكه‌های گسترده را فراهم می‌كند كه دارای چندین سكوی نرم‌افزاری/ سخت‌افزاری هستند. 

 استفاده از یك استاندارد با نام LDAP Data Interchange Format) LDIF) برای توصیف و تشریح اطلاعات دایركتوری. این استاندارد كه توسط یك ابزار با همین نام به كار گرفته می‌شود، تحت خط فرمان است و امكان تنظیم مجموعه‌ای از دایركتوری‌ها یا آپلودكردن آن‌ها برای استفاده در دایركتوری را در اختیار مدیر شبكه قرار می‌دهد.

شکل 1

شکل 2

ساختار 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 برای دسترسی به دایركتوری‌های تعریف شده و تنظیمات آن‌ها براساس مستندات شبكه، نیازمند دقت و تمرین است. 

شكل 3

علاوه بر این، هر توزیع، ابزارهای متنوع مدیریتی برای كار با این سرویس ارائه نموده است. برای نمونه در توزیع SUSE، در بخش Network Service ابزار LDAP Client ارائه شده است كه می‌توان با دادن آدرس سرویس‌دهنده LDAP و شماره DN اختصاصی تعریف شده برای كاربر، به این سرویس متصل شد (شكل 3).
 
برای تنظیمات مورد نیاز باید به سراغ پوشه /etc/openldap رفت. در این پوشه فایل‌های پیكربندی ldap.conf و slapd قرار دارند. برای شروع و خاتمه سرویس LDAP نیز از دو دستور slapd start و slapd stop استفاده می‌شود. slapd نام دایمون ابزارOpenLDAP در لینوكس است.


نصب و پیكربندی LDAP روی دبیان سارژ 
دبیان بزرگ‌ترین توزیع لینوكس است كه قابلیت‌ها و ویژگی‌های آن موجب شده روی كامپیوترهای سرور و با هدف ایجاد سرویس‌دهنده به راحتی راه‌اندازی شود. سارژ یا دبیان 1/3 آخرین نسخه این توزیع است كه شامل طیف گسترده‌ای از برنامه‌ها و ابزارهای موردنیاز برای یك سیستم سرور است. در ادامه نصب و پیكربندی سرویس‌دهنده پروتكل LDAP روی این توزیع مرور می‌شود. برای نصب LDAP، اگر در هنگام نصب دبیان نصب نشده است، باید از دستور زیر استفاده نمود:

apt-get install slapd ldap-utils
با اجرای دستور فوق ابزار OpenLDAP و ابزارهای دیگر وابسته به آن نصب می‌شوند. اكنون از مسیر /etc/openldap  فایل دایمون slapd.conf را توسط یك ویرایشگر متنی باز نمایید. دو گزینه برای دسترسی به سرویس‌دهنده LDAP و مدیریت آن و كه نام دامنه سرویس LDAP است، در این فایل باید تنظیم شوند. برای مثال: 

omit openLDAP server configuration? no
DNS domain name: example.org
Admin password: ldap
database backend to use: BDB
Do you want your database to be removed when slapd is purged? no
 protocol? No2Allow LDAPv

پس از انجام دادن تنظیمات موردنیاز و اجرای سرویس LDAP، با استفاده از دستور 

ldapsearch -x -b dc=example,dc=org
می‌توانید سرویس‌دهنده LDAP و صحت كاركرد آن را تست نمایید. سپس باید اطلاعات پایه‌ای اولیه سلسله‌مراتبی  سرویس دایركتوری شبكه یا نام دامنه مورد نظر برای OpenLDAP تعریف شوند. برای این منظور یك فایل متنی را باز كنید و نام آن را base.ldif قرار دهید. این فایل در همان پوشه openldap ذخیره می‌شود. همان‌طور كه در ضمن مثالی در بالا اشاره شد، اطلاعات یك دایركتوری ممكن است به صورت زیر باشند:

dn: ou= People, dc= example, dc=org
ou: People
objectClass: top
objectClass: organiationalUnitz
dn: ou= Group, dc= example, dc=org
ou: Group
objectClass: top
objectClass: organiationalUnitz

اكنون برای افزودن فایل اطلاعات به دایركتوری LDAP و اجرای سرویس‌دهنده از فرمان زیر استفاده می‌شود: 

‌ldapadd -x -D "cn=admin,dc=example,dc=org" -W -f base.ldif    
در صورت اجرای دستور بالا و صحیح بودن كلمه‌ عبور، خروجی مشاهده‌شده در ترمینال خط فرمان باید با عبارت 
. آغاز ‌شده باشد كه بیانگر آماده بودن سرویس‌دهنده LDAP برای وارد نمودن اطلاعات جدید یا مدیریت كاربران است. در گام بعد معمولاً مدیران شبكه یك گروه كاری را تعریف می‌كنند تا كاربرانی كه می‌خواهند به اطلاعات روی سرویس دایركتوری دسترسی داشته باشند عضو این گروه شوند. نام گروه می‌تواند group.ldap  باشد. بدون این‌كه بخواهیم درگیر جزئیات و پیچیدگی‌های راه‌اندازی یك گروه كاری روی LDAP شویم، می‌توان اینگونه عمل نمود:

dn: cn= ldapusers, ou= Group, dc= example, dc=org
objectClass: PosixGroup
ObjectClass: top
cn: ldapusers
userPassword: [crypt]x
gidNumber:9000 

اكنون LDAP برای برقراری یك ارتباط و استفاده روی شبكه آماده است. البته می‌توان در ادامه سرویس‌هایی مانندIDIF را نیز برای كاربران و گروه كاری تعریف و تنظیم نمود.

نتیجه‌گیری‌
برخی از سرویس‌های ارائه‌شده روی لینوكس ویژگی‌های منحصربه‌فردی دارند كه توانایی و امكانات مدیران شبكه را افزایش می‌دهند و موجب می‌شوند شبكه را آسان‌تر مدیریت كرد و سریع‌تر كارهای روزمره و عادی را پیگیری نمود.
LDAP پروتكلی است كه امكان ارتباط با سرویس‌ دایركتوری و مدیریت اطلاعات و كاربران روی یك شبكه را فراهم می‌كند. این سرویس توسط ابزار OpenLDAP در لینوكس اجرا می‌شود و مخصوص سكوی نرم‌افزاری اپن‌سورس برای سازگاری با دیگر سكوها است. در صورت نبود این پروتكل در لینوكس، مدیران شبكه مجبور می‌شدند از ابزارهای شبیه‌سازی و مجازی‌سازی برای راه‌اندازی یك كلاستر جهت ارتباط با سرویس دایركتوری سیستم‌عامل‌هایی مانند ویندوز استفاده نمایند.