basic_ldap_auth(8) System Manager's Manual basic_ldap_auth(8)

basic_ldap_auth - دستیار احراز هویت LDAP برای Squid

basic_ldap_auth -b " base DN " [-u attribute ] [ options ] [ LDAP server name [: port ]| URI ]...
basic_ldap_auth -b " base DN " -f " LDAP search filter " [ options ] [ LDAP server name [: port ]| URI ]...

برنامه basic_ldap_auth به Squid امکان می‌دهد تا برای اعتبارسنجی نام کاربری و گذرواژه در احراز هویت پایه HTTP (احراز هویت Basic)، به یک دایرکتوری LDAP متصل شود. گزینه‌های LDAP به عنوان پارامتر در خط فرمان مشخص می‌شوند، در حالی که نام‌های کاربری و گذرواژه‌هایی که باید در دایرکتوری LDAP بررسی شوند، در خطوط ورودی بعدی به این برنامه کمکی ارائه می‌گردند؛ در هر خط یک جفت نام کاربری/گذرواژه که با یک فاصله (space) از هم جدا شده‌اند.

همان‌طور که ساختار احراز هویت پایه در Squid انتظار دارد، پس از مشخص کردن نام کاربری و گذرواژه و سپس یک خط جدید، این برنامه کمکی در خط بعد یا عبارت OK یا ERR را تولید می‌کند تا مشخص کند آیا مشخصات ارائه‌شده بر اساس دایرکتوری LDAP معتبر است یا خیر.

این برنامه دو حالت کاری اصلی دارد. در حالت کاری پیش‌فرض، DN کاربر با استفاده از DN پایه (base DN) و مشخصه کاربر ساخته می‌شود. در حالت کاری دیگر، از یک فیلتر جستجو برای مکان‌یابی DNهای معتبر کاربر در زیرمجموعه DN پایه استفاده می‌شود.

الزامی است. مشخص‌کننده DN پایه‌ای (base DN) است که کاربران در زیر آن قرار دارند.
فیلتر جستجوی LDAP ( filter ) برای مکان‌یابی DN کاربر. در صورتی که کاربران در سلسله‌مراتبی در زیر DN پایه قرار داشته باشند، یا اگر نام کاربری برای ساخت بخش ویژه کاربر در DN وی به کار نرود، این گزینه الزامی است.
فیلتر جستجو می‌تواند تا ۱۵ بار شامل %s باشد که با نام کاربری جایگزین خواهد شد؛ مانند "uid=%s" برای دایرکتوری‌های RFC2037. برای شرح تفصیلی نحو فیلترهای جستجوی LDAP به RFC2254 مراجعه کنید.
در صورت استفاده از مقادیر % دیگری به غیر از %s ، یا در صورت استفاده از بیش از ۱۵ بار %s ، برنامه متوقف خواهد شد (crash می‌کند).
نام مشخصه DN را که حاوی نام کاربری/شناسه ورود است مشخص می‌کند. در صورتی که هیچ فیلتر جستجویی تعیین نشده باشد (گزینه -f )، با DN پایه ترکیب می‌شود تا DN کاربر را بسازد. مقدار پیش‌فرض uid است.
نکته: این کار تنها زمانی قابل انجام است که تمام کاربران شما مستقیماً در یک موقعیت یکسان در درخت LDAP قرار داشته باشند و از نام ورود برای نام‌گذاری هر شیء کاربر استفاده شده باشد. اگر درخت LDAP شما با این معیارها مطابقت ندارد یا می‌خواهید مشخص کنید چه کاربرانی معتبر هستند، باید از یک فیلتر جستجو برای جستجوی DN کاربران خود استفاده کنید (گزینه -f ).
به جای ldap_simple_bind از ldap_compare برای بررسی گذرواژه کاربران استفاده می‌کند. passwordattr مشخصه LDAP ذخیره‌کننده گذرواژه کاربران است.
دامنه جستجو هنگام انجام جستجوهای DN کاربر که توسط گزینه -f مشخص شده است. مقدار پیش‌فرض sub است.
فقط شیء base (پایه)،
یک سطح ( one ) زیر شیء پایه یا
زیردرخت ( subtree ) زیر شیء پایه.
مقدار DN و گذرواژه‌ای که هنگام انجام جستجوها باید با آن متصل (bind) شد. در صورتی که دایرکتوری اجازه جستجوهای ناشناس را ندهد، این مقادیر برای پرچم -f الزامی هستند.
از آنجا که گذرواژه باید به صورت متن ساده در پیکربندی Squid شما نوشته شود، اکیداً توصیه می‌شود از حسابی با حداقل امتیازات مرتبط استفاده کنید. این کار به منظور کاهش خسارت در صورت دسترسی افراد غیرمجاز به نسخه‌ای از فایل پیکربندی Squid شما است.
مقدار DN و نام فایلی که حاوی گذرواژه برای اتصال (bind) در حین انجام جستجوها است.
نسخه‌ای با امنیت بیشتر نسبت به جفت پارامتر پیشین با دو مزیت: گذرواژه در فهرست فرایندهای سیستم ظاهر نمی‌شود، و در صورتی که کسی به فایل پیکربندی squid دست پیدا کند بدون اینکه به فایل secretfile دسترسی داشته باشد، گذرواژه فاش نخواهد شد.
استفاده از یک اتصال پایدار (persistent) به LDAP. در حالت عادی، اتصال LDAP فقط در حین اعتبارسنجی نام کاربری باز است تا منابع در کارساز LDAP حفظ شوند. این گزینه باعث می‌شود اتصال LDAP باز نگه داشته شود و برای اعتبارسنجی‌های بعدی کاربران بازاستفاده گردد. استفاده از آن برای محیط‌های بزرگ‌تر توصیه می‌شود.
تنها یک بار اتصال (bind) در هر اتصال LDAP. برخی از کارسازهای LDAP پس از یک ldap_bind موفق، اجازه اتصال مجدد به عنوان کاربری دیگر را نمی‌دهند. استفاده از این گزینه همواره برای هر تلاش جهت ورود، یک اتصال جدید باز می‌کند. در صورت ترکیب با گزینه -P برای اتصال پایدار LDAP، اتصالی که برای جستجوی DN کاربر به کار می‌رود پایدار باقی می‌ماند، اما به محض یافتن DN، برای اعتبارسنجی گذرواژه هر کاربر اتصال جدیدی باز می‌شود.
عدم دنبال کردن ارجاعات (referrals).
زمان ارجاع‌زدایی از نام‌های مستعار (dereference aliases). مقدار پیش‌فرض never است.
never هرگز نام‌های مستعار ارجاع‌زدایی نشوند (پیش‌فرض)، always همواره ارجاع‌زدایی شوند، فقط در حین یک search (جستجو) یا فقط برای find (یافتن) شیء پایه.
کارساز LDAP برای اتصال را بر اساس LDAP URI مشخص می‌کند (به کتابخانه‌های OpenLDAP نیاز دارد). کارسازها را همچنین می‌توان در انتهای خط فرمان مشخص کرد.
کارساز LDAP را برای اتصال مشخص می‌کند. کارسازها را همچنین می‌توان در انتهای خط فرمان مشخص کرد.
در صورتی که درگاه گوش دادن کارساز LDAP چیزی غیر از درگاه پیش‌فرض LDAP یعنی ۳۸۹ باشد، یک درگاه TCP جایگزین را مشخص می‌کند. همچنین می‌توان با استفاده از نحو servername:port آن را درون مشخصات کارساز نیز تعیین کرد.
نسخه پروتکل LDAP. در صورت عدم تعیین، مقدار پیش‌فرض 3 است.
استفاده از رمزنگاری TLS.
فعال‌سازی LDAP روی SSL (به کتابخانه‌های Netscape LDAP API نیاز دارد).
مشخص کردن مهلت زمانی ( timeout ) مورد استفاده هنگام اتصال به کارسازهای LDAP (به کتابخانه‌های Netscape LDAP API نیاز دارد).
تعیین محدودیت زمانی برای عملیات‌های جستجوی LDAP.
حالت اشکال‌زدایی (Debug) که در آن هر گام برداشته‌شده با جزئیات گزارش می‌شود. برای درک اینکه در صورت عدم حصول نتیجه مورد انتظار چه مشکلی رخ داده، بسیار مفید است.

برای دایرکتوری‌هایی که از طرح‌بندی RFC2307 با یک تک‌دامنه استفاده می‌کنند، معمولاً تنها چیزی که باید مشخص کنید، DN پایه (base DN) محل استقرار کاربران و نام کارساز است:

basic_ldap_auth -b ou=people,dc=your,dc=domain ldapserver

اگر دارای زیردامنه‌ها (sub-domains) هستید، در این صورت باید از رویکرد فیلتر جستجو برای یافتن DN کاربران خود استفاده کنید، زیرا این موارد دیگر نمی‌توانند مستقیماً تنها از روی DN پایه و نام ورود ساخته شوند:

basic_ldap_auth -b dc=your,dc=domain -f uid=%s ldapserver

و به همین ترتیب اگر تنها می‌خواهید به کاربرانی که دارای یک مشخصه خاص هستند اجازه دسترسی دهید:

basic_ldap_auth -b dc=your,dc=domain -f (&(uid=%s)(specialattribute=value)) ldapserver

یا اگر مشخصه کاربری در DN کاربر به جای uid برابر با cn است و نمی‌خواهید مجبور به جستجوی کاربران شوید، می‌توانید از نمونه‌ای شبیه به مثال زیر برای Active Directory استفاده کنید:

basic_ldap_auth -u cn -b cn=Users,dc=your,dc=domain ldapserver

اگر می‌خواهید برای یافتن DN کاربر جستجو انجام دهید و دایرکتوری شما اجازه جستجوهای ناشناس را نمی‌دهد، باید از پرچم‌های -D و -w نیز برای تعیین یک DN کاربر و گذرواژه جهت ورود و انجام جستجوها استفاده کنید؛ مانند این نمونه پیچیده برای Active Directory:

basic_ldap_auth -P -R -b dc=your,dc=domain -D cn=squid,cn=users,dc=your,dc=domain -w secretsquidpassword -f (&(userPrincipalName=%s)(objectClass=Person)) activedirectoryserver

نکته: هنگام ساخت فیلترهای جستجو، اکیداً توصیه می‌شود پیش از تلاش برای استفاده از basic_ldap_auth ، ابتدا فیلتر را با استفاده از ldapsearch آزمایش کنید. این کار برای اطمینان از این است که فیلتر دقیقاً با آنچه انتظار دارید مطابقت دارد.

این برنامه توسط Glenn Newton <gnewton@wapiti.cisti.nrc.ca> Henrik Nordstrom <hno@squid-cache.org> نوشته شده است.

این راهنما توسط Henrik Nordstrom <hno@squid-cache.org> نوشته شده است.


* Copyright (C) 1996-2026 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
* Please see the COPYING and CONTRIBUTORS files for details.

حق نشر این برنامه و مستندات آن متعلق به نویسندگان نام‌برده‌شده در بالا است.

تحت مجوز عمومی همگانی گنو (GNU GPL) نسخه ۲ یا بالاتر (GPLv2+) منتشر شده است.

پرسش‌ها درباره نحوه استفاده از این برنامه را می‌توانید به فهرست پستی کاربران اسکوئید <squid-users@lists.squid-cache.org> ارسال کنید.

یا در صورتی که پرسش بیشتر به LDAP مربوط است تا اسکوئید، به فهرست پستی یا دوستان متخصص LDAP خود ارسال نمایید.

گزارش‌های باگ باید به زبان انگلیسی ارسال شوند. برای مشاهده جزئیات مواردی که باید در گزارش باگ خود بگنجانید، https://wiki.squid-cache.org/SquidFaq/BugReporting را ببینید.

گزارش باگ‌ها یا اصلاحیه‌های باگ را با استفاده از https://bugs.squid-cache.org/ ارسال کنید.

باگ‌های امنیتی جدی را به باگ‌های اسکوئید <squid-bugs@lists.squid-cache.org> گزارش دهید.

ایده‌ها برای بهبودهای جدید را به فهرست پستی توسعه‌دهندگان اسکوئید <squid-dev@lists.squid-cache.org> ارسال نمایید.

squid(8), ldapsearch(1), GPL(7),
مستندات LDAP مورد علاقه شما.
RFC2254 - The String Representation of LDAP Search Filters,
ویکی پرسش‌های متداول اسکوئید (Squid FAQ wiki) https://wiki.squid-cache.org/SquidFaq
راهنمای پیکربندی اسکوئید (Squid Configuration Manual) http://www.squid-cache.org/Doc/config/

14 January 2005