| SSSD-LDAP(5) | File Formats and Conventions | SSSD-LDAP(5) |
نام (NAME)
sssd-ldap - ارائهدهنده LDAP برای SSSD
توضیحات (DESCRIPTION)
این صفحه راهنما پیکربندی دامنههای LDAP را برای sssd(8) شرح میدهد. برای اطلاعات تفصیلی درباره ساختار دستوری، به بخش “FILE FORMAT” در صفحه راهنمای sssd.conf(5) مراجعه کنید.
میتوان SSSD را برای استفاده از بیش از یک دامنه LDAP پیکربندی کرد.
بکاند LDAP از ارائهدهندههای id، auth، access و chpass پشتیبانی میکند. برای احراز هویت در یک سرور LDAP، استفاده از TLS/SSL یا LDAPS الزامی است. sssd از احراز هویت در بستر یک کانال رمزنگارینشده پشتیبانی نمیکند. حتی در صورت استفاده از سرور LDAP صرفاً به عنوان ارائهدهنده هویت، استفاده از یک کانال رمزنگاریشده اکیداً توصیه میشود. لطفاً برای اطلاعات بیشتر درباره استفاده از LDAP به عنوان ارائهدهنده دسترسی، به گزینه پیکربندی “ldap_access_filter” مراجعه کنید.
گزینههای پیکربندی (CONFIGURATION OPTIONS)
تمام گزینههای پیکربندی مشترک که برای دامنههای SSSD به کار میروند، برای دامنههای LDAP نیز معتبر هستند. برای جزئیات کامل به بخش “DOMAIN SECTIONS” در صفحه راهنمای sssd.conf(5) مراجعه کنید. توجه داشته باشید که ویژگیهای نگاشت LDAP در SSSD در صفحه راهنمای sssd-ldap-attributes(5) شرح داده شدهاند.
ldap_uri, ldap_backup_uri (string)
قالب URI باید با ساختار تعریفشده در RFC 2732 مطابقت داشته باشد:
ldap[s]://<host>[:port]
برای آدرسهای صریح IPv6، شناسه <host> باید داخل کروشه [] قرار گیرد
مثال: ldap://[fc00::126:25]:389
ldap_chpass_uri, ldap_chpass_backup_uri (string)
جهت فعالسازی شناسایی سرویس، گزینه ldap_chpass_dns_service_name باید تنظیم شود.
پیشفرض: خالی، یعنی از ldap_uri استفاده میشود.
ldap_search_base (string)
از نسخه SSSD 1.7.0 به بعد، SSSD با استفاده از ساختار زیر از پایههای جستجوی چندگانه پشتیبانی میکند:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
محدوده (scope) میتواند یکی از مقادیر "base"، "onelevel" یا "subtree" باشد.
فیلتر باید یک فیلتر جستجوی معتبر LDAP باشد، همانطور که در http://www.ietf.org/rfc/rfc2254.txt مشخص شده است
مثالها:
ldap_search_base = dc=example,dc=com (که معادل است با) ldap_search_base = dc=example,dc=com?subtree?
ldap_search_base = cn=host_specific,dc=example,dc=com?subtree?(host=thishost)?dc=example.com?subtree?
نکته: داشتن چندین پایه جستجو که به اشیایی با نام یکسان اشاره کنند (برای مثال گروههایی با نام مشابه در دو پایه جستجوی متفاوت) پشتیبانی نمیشود. این موضوع باعث رفتارهای پیشبینینشده در سیستمهای کلاینت خواهد شد.
پیشفرض: در صورت عدم تنظیم، از مقدار ویژگی defaultNamingContext یا namingContexts از RootDSE سرور LDAP استفاده میشود. اگر defaultNamingContext وجود نداشته باشد یا مقداری خالی داشته باشد، از namingContexts استفاده میشود. برای اینکه این فرآیند به درستی کار کند، ویژگی namingContexts باید تنها یک مقدار شامل DN پایه جستجوی سرور LDAP داشته باشد. مقادیر چندگانه پشتیبانی نمیشوند.
ldap_read_rootdse (string)
مقادیر مجاز عبارتند از:
بهطور پیشفرض با انتخاب "anonymous"، نرمافزار SSSD تلاش میکند RootDSE را به صورت ناشناس بخواند. اگر این عملیات با شکست مواجه شود، تلاش مجدد را همراه با احراز هویت انجام میدهد.
پیشفرض: anonymous
ldap_schema (string)
در حال حاضر چهار نوع اسکیما پشتیبانی میشود:
تفاوت اصلی میان این انواع اسکیما، چگونگی ذخیره عضویت در گروهها درون سرور است. در rfc2307، اعضای گروه بر اساس نام در صفت memberUid فهرست میشوند. در rfc2307bis و IPA، اعضای گروه با DN مشخص شده و در صفت member ذخیره میشوند. نوع اسکیمای AD، صفات را متناسب با مقادیر Active Directory 2008r2 تنظیم میکند.
پیشفرض: rfc2307
ldap_pwmodify_mode (string)
در حال حاضر از دو حالت پشتیبانی میشود:
نکته: ابتدا یک اتصال جدید برای بررسی گذرواژه فعلی با متصل شدن (bind) بهعنوان کاربری که درخواست تغییر گذرواژه داده است برقرار میشود. در صورت موفقیت، از این اتصال برای تغییر گذرواژه استفاده میشود؛ بنابراین کاربر باید دسترسی نوشتن به صفت userPassword را داشته باشد.
پیشفرض: exop
ldap_default_bind_dn (string)
ldap_default_authtok_type (string)
دو سازوکاری که در حال حاضر پشتیبانی میشوند عبارتند از:
password
obfuscated_password
پیشفرض: password
برای اطلاعات بیشتر به صفحه راهنمای sss_obfuscate(8) مراجعه کنید.
ldap_default_authtok (string)
ldap_force_upper_case_realm (boolean)
پیشفرض: false
ldap_enumeration_refresh_timeout (integer)
پیشفرض: 300
ldap_purge_cache_timeout (integer)
تنظیم این گزینه روی صفر عملیات پاکسازی کش را غیرفعال میکند. لطفاً توجه داشته باشید در صورت فعال بودن شمارش (enumeration)، وظیفه پاکسازی جهت شناسایی ورودیهای حذفشده از سرور الزامی است و نمیتوان آن را غیرفعال کرد. بهطور پیشفرض در صورت فعال بودن enumeration، عملیات پاکسازی هر ۳ ساعت یکبار اجرا میشود.
این گزینه میتواند برای هر زیردامنه نیز تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: 0 (غیرفعال)
ldap_group_nesting_level (integer)
نکته: این گزینه سطح تضمینشده گروههای تودرتو را برای پردازش در هر جستجو مشخص میکند. با این حال، اگر جستجوهای قبلی سطوح عمیقتر تودرتویی را تفکیک کرده باشند، ممکن است گروههای تودرتوی فراتر از این حد برگردانده شوند. همچنین، پرسوجوی مجدد در جستجوهای بعدی برای سایر گروهها ممکن است مجموعه نتایج جستجوی اولیه را بزرگتر کند.
اگر ldap_group_nesting_level روی 0 تنظیم شود، هیچ گروه تودرتویی پردازش نخواهد شد. با این حال، هنگام اتصال به سرور Active Directory 2008 و جدیدتر با استفاده از “id_provider=ad” لازم است علاوه بر این با تنظیم ldap_use_tokengroups روی false، استفاده از Token-Groups غیرفعال شود تا تودرتویی گروهها محدود گردد.
پیشفرض: 2
ldap_use_tokengroups
این گزینه همچنین میتواند برای هر زیردامنه تعیین شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: برای AD و IPA برابر با True، در غیر این صورت False.
ldap_host_search_base (string)
برای اطلاعات بیشتر در مورد پیکربندی چند مبنای جستجو، به “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
ldap_subid_ranges_search_base (string)
پیشفرض: برای IPA برابر با مقدار cn=subids,%basedn و در غیر این صورت ldap_search_base.
ldap_service_search_base (string)
نحو:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
محدوده (scope) میتواند یکی از مقادیر "base"، "onelevel" یا "subtree" باشد. محدوده طبق بخش 4.5.1.2 از http://tools.ietf.org/html/rfc4511 عمل میکند.
فیلتر باید یک فیلتر جستجوی معتبر LDAP طبق مشخصات http://www.ietf.org/rfc/rfc2254.txt باشد.
برای دیدن مثالهایی از این نحو، به بخش مثالهای “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
لطفاً توجه داشته باشید که تعیین scope یا filter برای جستجوها در سرور Active Directory که ممکن است تعداد نتایج بالایی داشته باشند و افزونه Range Retrieval را فعال کنند پشتیبانی نمیشود.
ldap_iphost_search_base (string)
نحو:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
محدوده (scope) میتواند یکی از مقادیر "base"، "onelevel" یا "subtree" باشد. محدوده طبق بخش 4.5.1.2 از http://tools.ietf.org/html/rfc4511 عمل میکند.
فیلتر باید یک فیلتر جستجوی معتبر LDAP طبق مشخصات http://www.ietf.org/rfc/rfc2254.txt باشد.
برای دیدن مثالهایی از این نحو، به بخش مثالهای “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
لطفاً توجه داشته باشید که تعیین scope یا filter برای جستجوها در سرور Active Directory که ممکن است تعداد نتایج بالایی داشته باشند و افزونه Range Retrieval را فعال کنند پشتیبانی نمیشود.
ldap_ipnetwork_search_base (string)
نحو:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
محدوده (scope) میتواند یکی از مقادیر "base"، "onelevel" یا "subtree" باشد. محدوده طبق بخش 4.5.1.2 از http://tools.ietf.org/html/rfc4511 عمل میکند.
فیلتر باید یک فیلتر جستجوی معتبر LDAP طبق مشخصات http://www.ietf.org/rfc/rfc2254.txt باشد.
برای دیدن مثالهایی از این نحو، به بخش مثالهای “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
لطفاً توجه داشته باشید که تعیین scope یا filter برای جستجوها در سرور Active Directory که ممکن است تعداد نتایج بالایی داشته باشند و افزونه Range Retrieval را فعال کنند پشتیبانی نمیشود.
ldap_search_timeout (integer)
نکته: این گزینه در نسخههای آینده SSSD ممکن است دستخوش تغییر شود. احتمالاً در زمانی با مجموعهای از مهلتهای زمانی برای انواع جستجوهای خاص جایگزین خواهد شد.
این گزینه همچنین میتواند برای هر زیردامنه تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: 6
ldap_enumeration_search_timeout (integer)
پیشفرض: 60
ldap_network_timeout (integer)
این گزینه همچنین میتواند برای هر زیردامنه تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: 6
ldap_opt_timeout (integer)
این گزینه همچنین میتواند برای هر زیردامنه تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: 8
ldap_connection_expire_timeout (integer)
اگر اتصال تا زمان باقیمانده برابر با ldap_opt_timeout ثانیه تا انقضا بیکار باشد (هیچ عملیاتی را بهطور فعال اجرا نکند)، اتصال زودتر بسته خواهد شد تا تضمین شود پرسوجوی جدیدی نیازمند باز ماندن اتصال پس از انقضای آن نخواهد بود. این امر بدان معناست که در صورت برقراری شرط ldap_connection_expire_timeout <= ldap_opt_timout اتصالات همواره بلافاصله بسته خواهند شد و هرگز مجدداً استفاده نخواهند شد.
این مهلت زمانی میتواند با یک مقدار تصادفی تعیینشده توسط ldap_connection_expire_offset تمدید شود.
این گزینه همچنین میتواند برای هر زیردامنه تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: 900 (15 دقیقه)
ldap_connection_expire_offset (integer)
این گزینه میتواند به ازای هر زیردامنه نیز تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: 0
ldap_connection_idle_timeout (integer)
میتوانید با تنظیم مقدار روی 0 این زمان انتظار را غیرفعال کنید.
این گزینه میتواند به ازای هر زیردامنه نیز تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: 900 (15 دقیقه)
ldap_page_size (integer)
پیشفرض: 1000
ldap_disable_paging (boolean)
مثال: سرورهای OpenLDAP که ماژول کنترل صفحهبندی روی سرور نصب شده اما فعال نشده است، آن را در RootDSE گزارش میدهند اما قادر به استفاده از آن نیستند.
مثال: سرور 389 DS دارای باگی است که فقط میتواند از یک کنترل صفحهبندی در یک زمان روی یک اتصال واحد پشتیبانی کند. در کلاینتهای پرمشغله، این میتواند منجر به رد شدن برخی درخواستها شود.
پیشفرض: False
ldap_disable_range_retrieval (boolean)
Active Directory تعداد اعضایی را که میتوان در یک جستجوی واحد با استفاده از خطمشی MaxValRange بازیابی کرد، محدود میکند که به طور پیشفرض 1500 عضو است. اگر یک گروه بیش از 1500 عضو داشته باشد، پاسخ شامل یک افزونه بازهایِ مخصوص AD خواهد بود. در صورت فعال بودن، این گزینه مانع از تجزیه افزونه بازهای توسط SSSD میشود. در نتیجه، گروههای بزرگ بهگونهای ظاهر میشوند که گویی هیچ عضوی ندارند. این گزینه SSSD را قادر به خواندن بازههای بعدی نمیسازد. برای بازیابی همه اعضای یک گروه، باید مقدار MaxValRange را در Active Directory افزایش دهید.
پیشفرض: False
ldap_sasl_minssf (integer)
پیشفرض: استفاده از پیشفرض سیستم (معمولاً در ldap.conf مشخص میشود)
ldap_sasl_maxssf (integer)
پیشفرض: استفاده از پیشفرض سیستم (معمولاً در ldap.conf مشخص میشود)
ldap_deref_threshold (integer)
میتوانید جستجوهای dereference را با تنظیم این مقدار روی 0 به طور کامل خاموش کنید. لطفاً توجه داشته باشید که برخی از مسیرهای کد در SSSD، مانند ارائهدهنده IPA HBAC، فقط با استفاده از فراخوانی dereference پیادهسازی شدهاند؛ بنابراین حتی با غیرفعال بودن صریح dereference، این بخشها در صورتی که سرور پشتیبانی کند و کنترل dereference را در شیء rootDSE اعلان نماید، همچنان از dereference استفاده خواهند کرد.
یک جستجوی dereference ابزاری برای واکشی همه اعضای گروه در یک فراخوانی واحد LDAP است. سرورهای مختلف LDAP ممکن است متدهای مختلفی برای dereference پیادهسازی کنند. سرورهایی که در حال حاضر پشتیبانی میشوند عبارتند از 389/RHDS، OpenLDAP و Active Directory.
نکته: اگر هر یک از پایههای جستجو (search bases) یک فیلتر جستجو مشخص کند، بهبود عملکرد جستجوی dereference صرفنظر از این تنظیم غیرفعال خواهد شد.
پیشفرض: 10
ldap_ignore_unreadable_references (bool)
این پارامتر ممکن است هنگام استفاده از ارائهدهنده AD که در آن حساب رایانه مورد استفاده sssd برای اتصال به AD بنا به دلایل امنیتی دسترسی به یک مدخل خاص یا زیردرخت LDAP ندارد، مفید باشد.
پیشفرض: False
ldap_tls_reqcert (string)
never = کلاینت هیچ گواهی سروری را درخواست یا بررسی نخواهد کرد.
allow = گواهی سرور درخواست میشود. اگر هیچ گواهی ارائه نشود، نشست به صورت عادی ادامه مییابد. اگر یک گواهی نامعتبر ارائه شود، نادیده گرفته شده و نشست به صورت عادی ادامه مییابد.
try = گواهی سرور درخواست میشود. اگر هیچ گواهی ارائه نشود، نشست به صورت عادی ادامه مییابد. اگر یک گواهی نامعتبر ارائه شود، نشست فوراً خاتمه مییابد.
demand = گواهی سرور درخواست میشود. اگر هیچ گواهی ارائه نشود، یا یک گواهی نامعتبر ارائه گردد، نشست فوراً خاتمه مییابد.
hard = مشابه “demand”
پیشفرض: hard
ldap_tls_cacert (string)
پیشفرض: استفاده از پیشفرضهای OpenLDAP، معمولاً در /etc/openldap/ldap.conf
ldap_tls_cacertdir (string)
پیشفرض: استفاده از پیشفرضهای OpenLDAP، معمولاً در /etc/openldap/ldap.conf
ldap_tls_cert (string)
پیشفرض: تنظیم نشده
ldap_tls_key (string)
پیشفرض: تنظیم نشده
ldap_tls_cipher_suite (string)
پیشفرض: استفاده از پیشفرضهای OpenLDAP، معمولاً در /etc/openldap/ldap.conf
ldap_id_use_start_tls (boolean)
پیشفرض: true
ldap_id_mapping (boolean)
در حال حاضر این ویژگی فقط از نگاشت objectSID در ActiveDirectory پشتیبانی میکند.
پیشفرض: false
ldap_min_id, ldap_max_id (integer)
پیشفرض: تنظیم نشده (هر دو گزینه روی 0 تنظیم شدهاند)
ldap_sasl_mech (string)
اگر بکاند از زیردامنهها پشتیبانی کند، مقدار ldap_sasl_mech به طور خودکار به زیردامنهها به ارث میرسد. اگر مقدار متفاوتی برای یک زیردامنه مورد نیاز باشد، میتوان آن را با تنظیم صریح ldap_sasl_mech برای آن زیردامنه بازنویسی کرد. لطفاً برای جزئیات به TRUSTED DOMAIN SECTION در sssd.conf(5) مراجعه کنید.
پیشفرض: تنظیم نشده
ldap_sasl_authid (string)
hostname@REALM netbiosname$@REALM host/hostname@REALM *$@REALM host/*@REALM netbiosname$@* host/*
اگر هیچکدام از آنها یافت نشد، اولین پرینسیپال در keytab برگردانده میشود.
پیشفرض: host/hostname@REALM
ldap_sasl_realm (string)
پیشفرض: مقدار krb5_realm.
ldap_sasl_canonicalize (boolean)
پیشفرض: false;
ldap_krb5_keytab (string)
این گزینه میتواند به ازای هر زیردامنه نیز تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: فایل keytab سیستم، معمولاً /etc/krb5.keytab
ldap_krb5_init_creds (boolean)
پیشفرض: true
ldap_krb5_ticket_lifetime (integer)
این گزینه میتواند به ازای هر زیردامنه نیز تنظیم شود یا از طریق subdomain_inherit به ارث برسد.
پیشفرض: 86400 (24 ساعت)
krb5_server, krb5_backup_server (string)
هنگام استفاده از شناسایی سرویس برای سرورهای KDC یا kpasswd، ابتدا SSSD ورودیهای DNS را جستجو میکند که _udp را به عنوان پروتکل مشخص کردهاند و اگر موردی پیدا نشد به _tcp برمیگردد.
این گزینه در نسخههای پیشین SSSD با نام “krb5_kdcip” نامیده میشد. در حالی که نام قدیمی در حال حاضر شناسایی میشود، به کاربران توصیه میشود که فایلهای پیکربندی خود را به استفاده از “krb5_server” بهجای آن مهاجرت دهند.
krb5_realm (string)
پیشفرض:
پیشفرضهای
سیستم،
ببینید /etc/krb5.conf
krb5_canonicalize (boolean)
پیشفرض: false
krb5_use_kdcinfo (boolean)
برای اطلاعات بیشتر در مورد پلاگین ردیاب (locator plugin)، صفحه راهنمای sssd_krb5_locator_plugin(8) را ببینید.
پیشفرض: true
ldap_pwd_policy (string)
none - بدون ارزیابی در سمت کلاینت. این گزینه نمیتواند سیاستهای گذرواژه سمت سرور را غیرفعال کند.
shadow - استفاده از مشخصههای به سبک shadow(5) برای ارزیابی اینکه آیا گذرواژه منقضی شده است یا خیر. لطفاً گزینه «ldap_chpass_update_last_change» را نیز ببینید.
mit_kerberos - استفاده از مشخصههای مورد استفاده توسط MIT Kerberos برای تعیین اینکه آیا گذرواژه منقضی شده است یا خیر. هنگام تغییر گذرواژه از chpass_provider=krb5 برای بهروزرسانی این مشخصهها استفاده کنید.
پیشفرض: none
نکته: اگر یک سیاست گذرواژه در سمت سرور پیکربندی شده باشد، همواره بر سیاست تنظیمشده با این گزینه اولویت دارد.
ldap_referrals (boolean)
لطفاً توجه داشته باشید که sssd تنها زمانی از دنبال کردن ارجاعات پشتیبانی میکند که با OpenLDAP نگارش 2.4.13 یا بالاتر کامپایل شده باشد.
دنبال کردن ارجاعات ممکن است در محیطهایی که بهشدت از آنها استفاده میکنند موجب افت کارایی شود؛ یک نمونه قابل توجه Microsoft Active Directory است. اگر ساختار شما واقعاً نیازی به استفاده از ارجاعات ندارد، تنظیم این گزینه روی false ممکن است بهبود چشمگیری در کارایی ایجاد کند. بنابراین در صورتی که ارائهدهنده LDAP در SSSD به همراه Microsoft Active Directory به عنوان بکاند استفاده میشود، تنظیم این گزینه روی false توصیه میشود. حتی اگر SSSD قادر باشد ارجاع را به یک AD DC دیگر دنبال کند، هیچ داده اضافی در دسترس نخواهد بود.
پیشفرض: true
ldap_dns_service_name (string)
پیشفرض: ldap
ldap_chpass_dns_service_name (string)
پیشفرض: تنظیمنشده، یعنی شناسایی سرویس غیرفعال است
ldap_chpass_update_last_change (bool)
در صورت استفاده از «ldap_pwd_policy = shadow» توصیه میشود این گزینه بهصراحت تنظیم شود تا SSSD بداند که آیا سرور LDAP مشخصه shadowLastChange را پس از تغییر گذرواژه بهطور خودکار بهروزرسانی میکند یا SSSD باید آن را بهروزرسانی کند.
پیشفرض: False
ldap_access_filter (string)
مثال:
access_provider = ldap ldap_access_filter = (employeeType=admin)
این مثال بدین معناست که دسترسی به این میزبان به کاربرانی محدود میشود که مشخصه employeeType آنها روی "admin" تنظیم شده باشد.
کش آفلاین برای این ویژگی محدود به این است که آیا در آخرین ورود برخط (online) کاربر مجوز دسترسی اعطا شده است یا خیر. اگر در آخرین ورود به آنها دسترسی داده شده باشد، در حالت آفلاین نیز همچنان دسترسی خواهند داشت و برعکس.
پیشفرض: خالی
ldap_account_expire_policy (string)
لطفاً توجه داشته باشید که همواره توصیه میشود از کنترل دسترسی سمت سرور استفاده شود؛ یعنی سرور LDAP باید درخواست bind را حتی در صورت درست بودن گذرواژه، با یک کد خطای مناسب رد کند.
مقادیر زیر مجاز هستند:
shadow: استفاده از مقدار ldap_user_shadow_expire برای تعیین منقضی شدن حساب.
ad: استفاده از مقدار فیلد ۳۲ بیتی ldap_user_ad_user_account_control و اجازه دسترسی در صورتی که بیت دوم تنظیم نشده باشد. اگر مشخصه وجود نداشته باشد، دسترسی اعطا میشود. زمان انقضای حساب نیز بررسی میشود.
rhds، ipa، 389ds: استفاده از مقدار ldap_ns_account_lock برای بررسی مجاز بودن یا نبودن دسترسی.
nds: مقادیر ldap_user_nds_login_allowed_time_map، ldap_user_nds_login_disabled و ldap_user_nds_login_expiration_time برای بررسی مجاز بودن دسترسی استفاده میشوند. اگر هر دو مشخصه موجود نباشند، دسترسی اعطا میشود.
لطفاً توجه داشته باشید که گزینه پیکربندی ldap_access_order باید شامل “expire” باشد تا گزینه ldap_account_expire_policy کار کند.
پیشفرض: خالی
ldap_access_order (string)
filter: استفاده از ldap_access_filter
lockout: استفاده از قفل حساب کاربری. در صورت تنظیم، این گزینه در صورتی که مشخصه ldap با نام 'pwdAccountLockedTime' موجود بوده و مقدار '000001010000Z' داشته باشد، دسترسی را رد میکند. لطفاً گزینه ldap_pwdlockout_dn را ببینید. لطفاً توجه داشته باشید که برای کارکرد این ویژگی باید 'access_provider = ldap' تنظیم شده باشد.
لطفاً توجه داشته باشید که این گزینه با گزینه “ppolicy” جایگزین شده است و ممکن است در انتشار آتی حذف شود.
ppolicy: استفاده از قفل حساب کاربری. در صورت تنظیم، این گزینه در صورتی که مشخصه ldap با نام 'pwdAccountLockedTime' موجود باشد و دارای مقدار '000001010000Z' باشد یا هر زمانی در گذشته را نشان دهد، دسترسی را رد میکند. مقدار مشخصه 'pwdAccountLockedTime' باید با 'Z' پایان یابد که نشاندهنده منطقه زمانی UTC است. سایر مناطق زمانی در حال حاضر پشتیبانی نمیشوند و هنگام تلاش کاربران برای ورود به سیستم منجر به "access-denied" خواهند شد. لطفاً گزینه ldap_pwdlockout_dn را ببینید. لطفاً توجه داشته باشید که برای کارکرد این ویژگی باید 'access_provider = ldap' تنظیم شده باشد.
expire: استفاده از ldap_account_expire_policy
pwd_expire_policy_reject, pwd_expire_policy_warn, pwd_expire_policy_renew: این گزینهها زمانی مفید هستند که کاربران تمایل داشته باشند از در شرف انقضا بودن گذرواژه مطلع شوند و احراز هویت بر اساس روشی غیر از گذرواژه انجام شود - برای نمونه کلیدهای SSH.
تفاوت بین این گزینهها در اقدامی است که در صورت انقضای گذرواژه کاربر انجام میشود:
لطفاً توجه داشته باشید که برای کارکرد این ویژگی باید 'access_provider = ldap' تنظیم شده باشد. همچنین 'ldap_pwd_policy' باید روی shadow یا mit_kerberos تنظیم شده باشد؛ این گزینهها با سیاستهای گذرواژه سمت سرور کار نمیکنند.
authorized_service: استفاده از مشخصه authorizedService برای تعیین دسترسی
host: استفاده از مشخصه host برای تعیین دسترسی
rhost: استفاده از مشخصه rhost برای تعیین امکان دسترسی میزبان راه دور
لطفاً توجه داشته باشید، فیلد rhost در pam توسط برنامه تنظیم میشود؛ بهتر است قبل از فعال کردن این گزینه کنترل دسترسی، بررسی کنید که برنامه چه مقداری به pam ارسال میکند
پیشفرض: filter
لطفاً توجه داشته باشید استفاده بیش از یک بار از یک مقدار، خطای پیکربندی محسوب میشود.
ldap_pwdlockout_dn (string)
مثال: cn=ppolicy,ou=policies,dc=example,dc=com
پیشفرض: cn=ppolicy,ou=policies,$ldap_search_base
ldap_deref (string)
never: نامهای مستعار هرگز ارجاعزدایی نمیشوند.
searching: نامهای مستعار در زیرمجموعههای شیء پایه ارجاعزدایی میشوند، اما در تعیین مکان شیء پایه جستجو ارجاعزدایی نمیشوند.
finding: نامهای مستعار فقط هنگام تعیین مکان شیء پایه جستجو ارجاعزدایی میشوند.
always: نامهای مستعار هم در جستجو و هم در مکانیابی شیء پایه جستجو ارجاعزدایی میشوند.
پیشفرض: خالی (توسط کتابخانههای کلاینت LDAP به عنوان never در نظر گرفته میشود)
ldap_rfc2307_fallback_to_local_users (boolean)
در برخی محیطها که از طرحواره RFC2307 استفاده میشود، کاربران محلی با اضافه کردن نامهایشان به مشخصه memberUid به عضویت گروههای LDAP درمیآیند. با این کار یکپارچگی درونی دامنه به خطر میافتد، بنابراین SSSD معمولاً به محض اینکه nsswitch تلاش کند اطلاعات مربوط به کاربر را از طریق فراخوانیهای getpw*() یا initgroups() واکشی کند، کاربران «ناپدیدشده» را از عضویتهای گروه ذخیرهشده در کش حذف میکند.
این گزینه به بررسی این که آیا به کاربران محلی ارجاع داده شده است یا خیر بازگشت میکند و آنها را در کش نگه میدارد تا فراخوانیهای بعدی initgroups() کاربران محلی را با گروههای LDAP اضافی تکمیل کنند.
پیشفرض: false
wildcard_limit (integer)
در حال حاضر، تنها پاسخدهنده InfoPipe از جستجوهای نویسه عام پشتیبانی میکند.
پیشفرض: 1000 (اغلب به اندازه یک صفحه)
ldap_library_debug_level (integer)
OpenLDAP از یک بیتمپ برای فعالسازی اشکالزدایی مؤلفههای خاص استفاده میکند؛ مقدار -1 خروجی کامل اشکالزدایی را فعال میکند.
پیشفرض: 0 (اشکالزدایی libldap غیرفعال است)
ldap_use_ppolicy (boolean)
پیشفرض: true
ldap_ppolicy_pwd_change_threshold (integer)
پیشفرض: 0
گزینههای SUDO (SUDO OPTIONS)
دستورالعملهای تفصیلی برای پیکربندی sudo_provider در صفحه راهنمای sssd-sudo(5) آمده است.
ldap_sudo_full_refresh_interval (integer)
مقدار باید بزرگتر از ldap_sudo_smart_refresh_interval باشد.
میتوانید با تنظیم این گزینه روی 0، نوسازی کامل را غیرفعال کنید. با این حال، باید حداقل یکی از نوسازیهای هوشمند یا کامل فعال باشد.
پیشفرض: 21600 (۶ ساعت)
ldap_sudo_smart_refresh_interval (integer)
اگر مشخصههای USN توسط سرور پشتیبانی نشوند، مشخصه modifyTimestamp به جای آن استفاده میشود.
نکته: بیشترین مقدار USN را میتوان از طریق سه وظیفه بهروزرسانی کرد: ۱) با نوسازی کامل و هوشمند sudo (در صورت یافتن قواعد بهروزرسانیشده)، ۲) با شمارش کاربران و گروهها (در صورت فعال بودن و یافتن کاربران یا گروههای بهروزرسانیشده) و ۳) با اتصال مجدد به سرور (بهطور پیشفرض هر ۱۵ دقیقه، ldap_connection_expire_timeout را ببینید).
میتوانید با تنظیم این گزینه روی 0، نوسازی هوشمند را غیرفعال کنید. با این حال، باید حداقل یکی از نوسازیهای هوشمند یا کامل فعال باشد.
پیشفرض: 900 (۱۵ دقیقه)
ldap_sudo_random_offset (integer)
توجه داشته باشید که این انحراف تصادفی در اولین شروع SSSD نیز اعمال میشود که نخستین نوسازی قواعد sudo را به تاخیر میاندازد. این کار مدت زمانی را که قواعد sudo برای استفاده در دسترس نیستند طولانیتر میکند.
میتوانید با تنظیم مقدار روی 0 این انحراف را غیرفعال کنید.
پیشفرض: 0 (غیرفعال)
ldap_sudo_use_host_filter (boolean)
پیشفرض: true
ldap_sudo_hostnames (string)
اگر این گزینه خالی باشد، SSSD تلاش میکند نام میزبان و نام دامنه کاملاً مشخص را بهطور خودکار شناسایی کند.
اگر ldap_sudo_use_host_filter برابر false باشد، این گزینه هیچ تاثیری ندارد.
پیشفرض: مشخص نشده است
ldap_sudo_ip (string)
اگر این گزینه خالی باشد، SSSD تلاش میکند نشانیها را بهطور خودکار شناسایی کند.
اگر ldap_sudo_use_host_filter برابر false باشد، این گزینه هیچ تاثیری ندارد.
پیشفرض: مشخص نشده است
ldap_sudo_include_netgroups (boolean)
اگر ldap_sudo_use_host_filter برابر false باشد، این گزینه هیچ تاثیری ندارد.
پیشفرض: true
ldap_sudo_include_regexp (boolean)
اگر ldap_sudo_use_host_filter برابر false باشد، این گزینه هیچ تاثیری ندارد.
نکته
استفاده از نویسه عام (wildcard) عملیاتی است که ارزیابی آن در سمت سرور LDAP بسیار پرهزینه است!
این صفحه راهنما تنها نگاشت نام مشخصهها را شرح میدهد. برای توضیح تفصیلی معناشناسی مشخصههای مربوط به sudo، به sudoers.ldap(5) مراجعه کنید.
گزینههای AUTOFS (AUTOFS OPTIONS)
برخی از مقادیر پیشفرض برای پارامترهای زیر وابسته به شِمای LDAP هستند.
ldap_autofs_map_master_name (string)
پیشفرض: auto.master
ldap_autofs_map_object_class (string)
پیشفرض: nisMap (rfc2307, autofs_provider=ad)، در غیر این صورت automountMap
ldap_autofs_map_name (string)
پیشفرض: nisMapName (rfc2307, autofs_provider=ad)، در غیر این صورت automountMapName
ldap_autofs_entry_object_class (string)
پیشفرض: nisObject (rfc2307, autofs_provider=ad)، در غیر این صورت automount
ldap_autofs_entry_key (string)
پیشفرض: cn (rfc2307, autofs_provider=ad)، در غیر این صورت automountKey
ldap_autofs_entry_value (string)
پیشفرض: nisMapEntry (rfc2307, autofs_provider=ad)، در غیر این صورت automountInformation
لطفاً توجه داشته باشید که automounter نقشه اصلی را فقط هنگام راهاندازی میخواند، بنابراین اگر هرگونه تغییر مرتبط با autofs در sssd.conf ایجاد شود، معمولاً لازم است پس از راهاندازی مجدد SSSD، دیمن automounter را نیز مجدداً راهاندازی کنید.
گزینههای پیشرفته (ADVANCED OPTIONS)
این گزینهها توسط دامنههای LDAP پشتیبانی میشوند، اما باید با احتیاط استفاده شوند. لطفاً تنها در صورتی آنها را در پیکربندی خود بگنجانید که از عملکرد آنها اطمینان کامل دارید.
ldap_netgroup_search_base (string)
قالب نحو:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
دامنه میتواند یکی از موارد “base”، “onelevel” یا “subtree” باشد. دامنه همانطور که در بخش 4.5.1.2 از http://tools.ietf.org/html/rfc4511 مشخص شده عمل میکند.
فیلتر باید یک فیلتر جستجوی معتبر LDAP طبق مشخصات http://www.ietf.org/rfc/rfc2254.txt باشد.
برای نمونههایی از این نحو، لطفاً به بخش مثالهای “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
لطفاً توجه داشته باشید که تعیین دامنه یا فیلتر برای جستجوها در یک سرور Active Directory که ممکن است نتایج زیادی به همراه داشته باشد و قابلیت Range Retrieval را در پاسخ فعال کند، پشتیبانی نمیشود.
ldap_user_search_base (string)
قالب نحو:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
دامنه میتواند یکی از موارد “base”، “onelevel” یا “subtree” باشد. دامنه همانطور که در بخش 4.5.1.2 از http://tools.ietf.org/html/rfc4511 مشخص شده عمل میکند.
فیلتر باید یک فیلتر جستجوی معتبر LDAP طبق مشخصات http://www.ietf.org/rfc/rfc2254.txt باشد.
برای نمونههایی از این نحو، لطفاً به بخش مثالهای “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
لطفاً توجه داشته باشید که تعیین دامنه یا فیلتر برای جستجوها در یک سرور Active Directory که ممکن است نتایج زیادی به همراه داشته باشد و قابلیت Range Retrieval را در پاسخ فعال کند، پشتیبانی نمیشود.
ldap_group_search_base (string)
قالب نحو:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
دامنه میتواند یکی از موارد “base”، “onelevel” یا “subtree” باشد. دامنه همانطور که در بخش 4.5.1.2 از http://tools.ietf.org/html/rfc4511 مشخص شده عمل میکند.
فیلتر باید یک فیلتر جستجوی معتبر LDAP طبق مشخصات http://www.ietf.org/rfc/rfc2254.txt باشد.
برای نمونههایی از این نحو، لطفاً به بخش مثالهای “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
لطفاً توجه داشته باشید که تعیین دامنه یا فیلتر برای جستجوها در یک سرور Active Directory که ممکن است نتایج زیادی به همراه داشته باشد و قابلیت Range Retrieval را در پاسخ فعال کند، پشتیبانی نمیشود.
نکته
اگر گزینه “ldap_use_tokengroups” فعال باشد، جستجوها در Active Directory محدود نخواهند شد و همه عضویتهای گروه، حتی بدون نگاشت GID بازگردانده میشوند. توصیه میشود در صورتی که نام گروهها به درستی نمایش داده نمیشوند، این قابلیت را غیرفعال کنید.
ldap_sudo_search_base (string)
قالب نحو:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
دامنه میتواند یکی از موارد “base”، “onelevel” یا “subtree” باشد. دامنه همانطور که در بخش 4.5.1.2 از http://tools.ietf.org/html/rfc4511 مشخص شده عمل میکند.
فیلتر باید یک فیلتر جستجوی معتبر LDAP طبق مشخصات http://www.ietf.org/rfc/rfc2254.txt باشد.
برای نمونههایی از این نحو، لطفاً به بخش مثالهای “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
لطفاً توجه داشته باشید که تعیین دامنه یا فیلتر برای جستجوها در یک سرور Active Directory که ممکن است نتایج زیادی به همراه داشته باشد و قابلیت Range Retrieval را در پاسخ فعال کند، پشتیبانی نمیشود.
ldap_autofs_search_base (string)
قالب نحو:
search_base[?scope?[filter][?search_base?scope?[filter]]*]
دامنه میتواند یکی از موارد “base”، “onelevel” یا “subtree” باشد. دامنه همانطور که در بخش 4.5.1.2 از http://tools.ietf.org/html/rfc4511 مشخص شده عمل میکند.
فیلتر باید یک فیلتر جستجوی معتبر LDAP طبق مشخصات http://www.ietf.org/rfc/rfc2254.txt باشد.
برای نمونههایی از این نحو، لطفاً به بخش مثالهای “ldap_search_base” مراجعه کنید.
پیشفرض: مقدار ldap_search_base
لطفاً توجه داشته باشید که تعیین دامنه یا فیلتر برای جستجوها در یک سرور Active Directory که ممکن است نتایج زیادی به همراه داشته باشد و قابلیت Range Retrieval را در پاسخ فعال کند، پشتیبانی نمیشود.
جایگزینی هنگام خرابی (FAILOVER)
قابلیت جایگزینی هنگام خرابی به بکاندها اجازه میدهد تا در صورت خرابی سرور فعلی، بهطور خودکار به سرور دیگری سوییچ کنند.
سینتکس جایگزینی هنگام خرابی
فهرست سرورها بهصورت فهرستی جداشده با ویرگول مشخص میشود؛ هر تعداد فاصله در اطراف ویرگول مجاز است. سرورها به ترتیب اولویت فهرست میشوند. فهرست میتواند شامل هر تعداد سرور باشد.
برای هر گزینهٔ پیکربندی مجهز به قابلیت جایگزینی هنگام خرابی، دو متغیر وجود دارد: primary و backup. ایده این است که سرورهای فهرست اصلی (primary) ترجیح داده میشوند و سرورهای پشتیبان (backup) تنها در صورتی جستجو میشوند که هیچ سرور اصلیای در دسترس نباشد. اگر یک سرور پشتیبان انتخاب شود، مهلت زمانی ۳۱ ثانیهای تنظیم میشود. پس از این مهلت زمانی، SSSD بهطور دورهای تلاش میکند تا دوباره به یکی از سرورهای اصلی متصل شود. در صورت موفقیت، سرور فعال فعلی (پشتیبان) جایگزین خواهد شد.
سازوکار جایگزینی هنگام خرابی
سازوکار جایگزینی هنگام خرابی میان یک ماشین و یک سرویس تمایز قائل میشود. بکاند ابتدا تلاش میکند تا نام میزبان ماشین موردنظر را ارزیابی (resolve) کند؛ اگر این تلاش ناموفق باشد، ماشین آفلاین تلقی میشود. هیچ تلاش دیگری برای اتصال به این ماشین برای هر سرویس دیگری صورت نخواهد گرفت. اگر ارزیابی موفقیتآمیز باشد، بکاند تلاش میکند به سرویسی روی این ماشین متصل شود. اگر تلاش برای اتصال به سرویس شکست بخورد، تنها آن سرویس خاص آفلاین در نظر گرفته میشود و بکاند بهطور خودکار به سرویس بعدی سوییچ میکند. ماشین همچنان آنلاین تلقی شده و ممکن است برای سرویس دیگری دوباره امتحان شود.
تلاشهای بعدی برای اتصال به ماشینها یا سرویسهایی که بهعنوان آفلاین علامتگذاری شدهاند، پس از یک بازه زمانی مشخص انجام میشود؛ این مقدار در حال حاضر روی ۳۰ ثانیه کدگذاری ثابت (hard-coded) شده است.
اگر ماشین دیگری برای امتحان وجود نداشته باشد، کل بکاند به حالت آفلاین تغییر وضعیت میدهد و سپس هر ۳۰ ثانیه یک بار برای اتصال مجدد تلاش میکند.
مهلتهای زمانی و تنظیم دقیق جایگزینی هنگام خرابی
ارزیابی یک سرور جهت اتصال میتواند به سادگی اجرای یک پرسوجوی DNS تکی باشد یا شامل چندین مرحله شود، مانند یافتن سایت (site) صحیح یا آزمودن چندین نام میزبان در صورتی که برخی از سرورهای پیکربندیشده در دسترس نباشند. سناریوهای پیچیدهتر ممکن است مدتی طول بکشند و SSSD باید میان دادن زمان کافی برای اتمام فرایند ارزیابی و از سوی دیگر، تلاش نکردن بیش از حد طولانی پیش از رفتن به حالت آفلاین، تعادل برقرار کند. اگر گزارشهای رفع اشکال در SSSD نشان میدهند که ارزیابی سرور پیش از برقراری ارتباط با یک سرور زنده به پایان مهلت زمانی میرسد، میتوانید تغییر مهلتهای زمانی را در نظر بگیرید.
این بخش متغیرهای تنظیمی موجود را فهرست میکند. لطفاً به توضیحات آنها در صفحهٔ راهنمای sssd.conf(5) مراجعه کنید.
dns_resolver_server_timeout
پیشفرض: 1000
dns_resolver_op_timeout
پیشفرض: 3
dns_resolver_timeout
پیشفرض: 6
برای ارائهدهندگان مبتنی بر LDAP، عملیات ارزیابی بهعنوان بخشی از عملیات اتصال LDAP انجام میشود. بنابراین، مهلت زمانی “ldap_opt_timeout” نیز باید روی مقداری بزرگتر از “dns_resolver_timeout” تنظیم شود، که آن هم به نوبه خود باید روی مقداری بزرگتر از “dns_resolver_op_timeout” تنظیم گردد، که آن هم باید از “dns_resolver_server_timeout” بزرگتر باشد.
شناسایی سرویس (SERVICE DISCOVERY)
قابلیت شناسایی سرویس به بکاندها اجازه میدهد تا با استفاده از یک پرسوجوی ویژهٔ DNS بهطور خودکار سرورهای مناسب را برای اتصال پیدا کنند. این قابلیت برای سرورهای پشتیبان پشتیبانی نمیشود.
پیکربندی
اگر سروری مشخص نشده باشد، بکاند بهطور خودکار از شناسایی سرویس برای یافتن سرور استفاده میکند. بهطور اختیاری، کاربر میتواند با قرار دادن کلمهٔ کلیدی ویژهٔ “_srv_” در فهرست سرورها، از هر دو روش آدرسهای سرور ثابت و شناسایی سرویس استفاده کند. ترتیب اولویت حفظ میشود. این ویژگی برای مواردی مفید است که مثلاً کاربر ترجیح میدهد تا جای ممکن از شناسایی سرویس استفاده کند و در صورتی که هیچ سروری از طریق DNS کشف نشد، به یک سرور خاص رجوع کند.
نام دامنه
لطفاً برای جزئیات بیشتر به پارامتر “dns_discovery_domain” در صفحهٔ راهنمای sssd.conf(5) مراجعه کنید.
پروتکل
پرسوجوها معمولاً _tcp را بهعنوان پروتکل تعیین میکنند. موارد استثنا در توضیحات گزینهٔ مربوطه مستند شده است.
همچنین ببینید
برای اطلاعات بیشتر دربارهٔ سازوکار شناسایی سرویس، به RFC 2782 مراجعه کنید.
نگاشت شناسه (ID MAPPING)
قابلیت نگاشت شناسه به SSSD اجازه میدهد تا بدون نیاز به گسترش صفات کاربری توسط مدیران سیستم جهت پشتیبانی از صفات POSIX برای شناسههای کاربر و گروه، بهعنوان کلاینت Active Directory عمل کند.
نکته: هنگامی که ID-mapping فعال است، صفات uidNumber و gidNumber نادیده گرفته میشوند. این کار برای جلوگیری از احتمال تداخل بین مقادیر تخصیصیافته بهطور خودکار و مقادیر دستی است. اگر نیاز به استفاده از مقادیر تخصیصیافته به صورت دستی دارید، تمام مقادیر باید بهصورت دستی اختصاص یابند.
لطفاً توجه داشته باشید که تغییر گزینههای پیکربندی مربوط به نگاشت شناسه باعث تغییر شناسههای کاربر و گروه خواهد شد. در حال حاضر، SSSD از تغییر شناسهها پشتیبانی نمیکند، بنابراین پایگاهدادهٔ SSSD باید حذف شود. از آنجا که گذرواژههای ذخیرهشده در حافظهٔ موقت (کَش) نیز در پایگاهداده نگهداری میشوند، حذف پایگاهداده تنها زمانی باید انجام شود که سرورهای احراز هویت در دسترس باشند، در غیر این صورت ممکن است دسترسی کاربران قفل شود. به منظور ذخیرهٔ گذرواژه در کَش، باید یک احراز هویت انجام گیرد. استفاده از sss_cache(8) برای حذف پایگاهداده کافی نیست، بلکه این فرایند شامل موارد زیر است:
علاوه بر این، از آنجا که تغییر شناسهها ممکن است نیازمند تطبیق سایر ویژگیهای سیستم مانند مالکیت فایل و دایرکتوری باشد، توصیه میشود از قبل برنامهریزی کرده و پیکربندی نگاشت شناسه را بهطور کامل آزمایش کنید.
الگوریتم نگاشت
سامانهٔ Active Directory یک objectSID برای هر شیء کاربر و گروه در دایرکتوری فراهم میکند. این objectSID را میتوان به مؤلفههایی تجزیه کرد که هویت دامنهٔ Active Directory و شناسهٔ نسبی (RID) شیء کاربر یا گروه را نشان میدهند.
الگوریتم ID-mapping در SSSD دامنهای از UIDهای موجود را گرفته و آن را به بخشهای مؤلفهای هماندازه - موسوم به «اسلایس» (slices) - تقسیم میکند. هر اسلایس نشاندهندهٔ فضای در دسترس برای یک دامنهٔ Active Directory است.
هنگامی که یک مدخل کاربر یا گروه برای یک دامنهٔ خاص برای نخستین بار مشاهده میشود، SSSD یکی از اسلایسهای در دسترس را به آن دامنه اختصاص میدهد. به منظور تکرارپذیر بودن این تخصیص اسلایس در ماشینهای کلاینت مختلف، اسلایس بر اساس الگوریتم زیر انتخاب میشود:
رشتهٔ SID به الگوریتم murmurhash3 فرستاده میشود تا به یک مقدار درهمسازیشدهٔ ۳۲ بیتی تبدیل گردد. سپس باقیماندهٔ تقسیم این مقدار بر تعداد کل اسلایسهای موجود محاسبه میشود تا اسلایس مورد نظر انتخاب گردد.
نکته: احتمال وقوع تصادم در درهمسازی و باقیماندهٔ تقسیم بعدی وجود دارد. در این وضعیتها، اسلایسِ موجود بعدی انتخاب خواهد شد، اما ممکن است بازتولید همان مجموعه اسلایس دقیق روی سایر ماشینها امکانپذیر نباشد (زیرا ترتیبی که دیده میشوند اسلایس آنها را مشخص میکند). در این شرایط، توصیه میشود که یا از صفات صریح POSIX در Active Directory استفاده شود (غیرفعال کردن ID-mapping) یا یک دامنهٔ پیشفرض پیکربندی شود تا تضمین گردد حداقل یکی همیشه سازگار است. برای جزئیات به “پیکربندی” مراجعه کنید.
پیکربندی
حداقل پیکربندی (در بخش “[domain/DOMAINNAME]”:
ldap_id_mapping = True ldap_schema = ad
پیکربندی پیشفرض منجر به پیکربندی ۱۰٬۰۰۰ اسلایس میشود که هرکدام قادر به نگهداری تا ۲۰۰٬۰۰۰ شناسه هستند، که از ۲۰۰٬۰۰۰ شروع شده و تا ۲٬۰۰۰٬۲۰۰٬۰۰۰ ادامه مییابد. این مقدار باید برای اکثر محیطها کافی باشد.
پیکربندی
پیشرفته
ldap_idmap_range_min (عدد صحیح)
نکته: این گزینه با “min_id” متفاوت است، از این جهت که “min_id” برای فیلتر کردن خروجی درخواستها به این دامنه عمل میکند، در حالی که این گزینه محدودهٔ تخصیص شناسه را کنترل میکند. این تمایزی ظریف است، اما توصیهٔ عمومی این است که “min_id” کوچکتر یا مساوی با “ldap_idmap_range_min” باشد.
پیشفرض: 200000
ldap_idmap_range_max (عدد صحیح)
نکته: این گزینه با “max_id” متفاوت است، از این جهت که “max_id” برای فیلتر کردن خروجی درخواستها به این دامنه عمل میکند، در حالی که این گزینه محدودهٔ تخصیص شناسه را کنترل میکند. این تمایزی ظریف است، اما توصیهٔ عمومی این است که “max_id” بزرگتر یا مساوی با “ldap_idmap_range_max” باشد.
پیشفرض: 2000200000
ldap_idmap_range_size (عدد صحیح)
نکته: مقدار این گزینه باید دستکم به اندازهٔ بالاترین RID کاربری در نظر گرفته شده برای استفاده در سرور Active Directory باشد. جستجوی کاربر و ورود به سیستم برای هر کاربری که RID او بزرگتر از این مقدار باشد، شکست خواهد خورد.
برای نمونه، اگر آخرین کاربر اضافهشده در Active Directory دارای objectSid=S-1-5-21-2153326666-2176343378-3404031434-1107 باشد، “ldap_idmap_range_size” باید دستکم 1108 باشد، چرا که اندازهٔ محدوده برابر با بیشینهٔ RID منهای کمینهٔ RID بهعلاوهٔ یک است (برای مثال: 1108 = 1107 - 0 + 1).
برنامهریزی از پیش برای توسعهٔ آینده مهم است، چرا که تغییر این مقدار منجر به تغییر همهٔ نگاشتهای شناسه در سیستم خواهد شد و باعث میشود شناسههای محلی کاربران با شناسههای پیشین آنها متفاوت گردد.
پیشفرض: 200000
ldap_idmap_default_domain_sid (رشته)
پیشفرض: تنظیمنشده
ldap_idmap_default_domain (رشته)
پیشفرض: تنظیمنشده
ldap_idmap_autorid_compat (بولی)
هنگامی که این گزینه پیکربندی شود، تخصیص دامنهها از اسلایس صفر آغاز شده و با هر دامنهٔ اضافی، بهصورت یکنواخت افزایش مییابد.
نکته: این الگوریتم غیرقطعی (non-deterministic) است (به ترتیبی که کاربران و گروهها درخواست میشوند بستگی دارد). اگر این حالت برای سازگاری با ماشینهای اجراکنندهٔ winbind مورد نیاز است، توصیه میشود از گزینهٔ “ldap_idmap_default_domain_sid” نیز استفاده کنید تا تضمین شود دستکم یک دامنه بهطور پیوسته به اسلایس صفر تخصیص مییابد.
پیشفرض: False
ldap_idmap_helper_table_size (عدد صحیح)
نکته: هنگامی که SID به شناسهٔ UNIX نگاشت میشود و بخش RID مربوط به SID خارج از محدودهٔ اسلایسهای ثانویهٔ تولیدشده تاکنون باشد، ممکن است اسلایسهای ثانویهٔ اضافی تولید شوند. اگر مقدار ldap_idmap_helper_table_size برابر با 0 باشد، هیچ اسلایس ثانویهٔ اضافیای تولید نمیشود.
پیشفرض: 10
SIDهای شناختهشده (Well-Known SIDs)
SSSD از جستجوی نامهای Well-Known SIDها (یعنی SIDهایی با معانی خاص و ثابت) پشتیبانی میکند. از آنجا که کاربران و گروههای عمومی مرتبط با این Well-Known SIDها معادلی در محیط Linux/UNIX ندارند، هیچ شناسه POSIX ID برای این اشیاء در دسترس نیست.
فضای نام SID در مراجع (authorities) سازماندهی شده است که میتوان آنها را به عنوان دامنههای متفاوتی در نظر گرفت. مراجع مربوط به Well-Known SIDها عبارتند از:
نسخه با حروف بزرگ (capitalized) این نامها هنگام بازگرداندن نام کاملاً مشخص (fully qualified name) یک Well-Known SID به عنوان نام دامنه استفاده میشود.
از آنجا که برخی ابزارها امکان اصلاح اطلاعات کنترل دسترسی مبتنی بر SID را به جای استفاده مستقیم از SID با استفاده از نام فراهم میکنند، SSSD از جستجوی SID از طریق نام نیز پشتیبانی میکند. برای جلوگیری از تداخل، فقط از نامهای کاملاً مشخص میتوان برای جستجوی Well-Known SIDها استفاده کرد. در نتیجه نامهای دامنه “NULL AUTHORITY”، “WORLD AUTHORITY”، “LOCAL AUTHORITY”، “CREATOR AUTHORITY”، “MANDATORY LABEL AUTHORITY”، “AUTHENTICATION AUTHORITY”، “NT AUTHORITY” و “BUILTIN” نباید به عنوان نام دامنه در sssd.conf استفاده شوند.
مثال (EXAMPLE)
مثال زیر فرض میکند که SSSD به درستی پیکربندی شده و LDAP به عنوان یکی از دامنهها در بخش [domains] تنظیم شده است.
[domain/LDAP] id_provider = ldap auth_provider = ldap ldap_uri = ldap://ldap.mydomain.org ldap_search_base = dc=mydomain,dc=org ldap_tls_reqcert = demand cache_credentials = true
مثال فیلتر دسترسی LDAP (LDAP ACCESS FILTER EXAMPLE)
مثال زیر فرض میکند که SSSD به درستی پیکربندی شده و از ldap_access_order=lockout استفاده میکند.
[domain/LDAP] id_provider = ldap auth_provider = ldap access_provider = ldap ldap_access_order = lockout ldap_pwdlockout_dn = cn=ppolicy,ou=policies,dc=mydomain,dc=org ldap_uri = ldap://ldap.mydomain.org ldap_search_base = dc=mydomain,dc=org ldap_tls_reqcert = demand cache_credentials = true
نکات (NOTES)
توضیحات برخی از گزینههای پیکربندی در این صفحه راهنما بر اساس صفحه راهنمای ldap.conf(5) از توزیع OpenLDAP 2.4 است.
همچنین ببینید (SEE ALSO)
sssd(8), sssd.conf(5), sssd-ldap(5), sssd-ldap-attributes(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-idp(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(1), sss_ssh_knownhosts(1), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)
نویسندگان (AUTHORS)
توسعهدهندگان بالادستی SSSD - https://github.com/SSSD/sssd
| 06/09/2026 | SSSD |