| SSSD-KRB5(5) | File Formats and Conventions | SSSD-KRB5(5) |
نام (NAME)
sssd-krb5 - ارائهدهنده Kerberos برای SSSD
توضیحات (DESCRIPTION)
این صفحه راهنما به شرح پیکربندی بکاند احراز هویت Kerberos 5 برای sssd(8) میپردازد. برای مرجع دقیق ساختار نحوی (سینتکس)، لطفاً به بخش “FILE FORMAT” در صفحه راهنمای sssd.conf(5) مراجعه کنید.
بکاند احراز هویت Kerberos 5 شامل ارائهدهندههای auth و chpass است. این بکاند برای عملکرد صحیح باید با یک ارائهدهنده هویت جفت شود (برای نمونه، id_provider = ldap). برخی از اطلاعات مورد نیاز بکاند احراز هویت Kerberos 5 باید توسط ارائهدهنده هویت تأمین شود، مانند نام کاربر ارشد کربروس کاربر (UPN). پیکربندی ارائهدهنده هویت باید دارای مدخلی برای مشخص کردن UPN باشد. لطفاً برای جزئیات نحوه پیکربندی این مورد، به صفحه راهنمای ارائهدهنده هویت مربوطه مراجعه کنید.
این بکاند همچنین کنترل دسترسی را بر پایه پرونده .k5login در دایرکتوری خانگی کاربر فراهم میکند. برای جزئیات بیشتر به k5login(5) مراجعه کنید. لطفاً توجه داشته باشید که یک پرونده .k5login خالی، تمام دسترسیها را برای این کاربر رد خواهد کرد. برای فعالسازی این ویژگی، از 'access_provider = krb5' در پیکربندی SSSD خود استفاده کنید.
در صورتی که UPN در بکاند هویت در دسترس نباشد، sssd یک UPN را با استفاده از قالب username@krb5_realm ایجاد خواهد کرد.
گزینههای پیکربندی (CONFIGURATION OPTIONS)
اگر ماژول احراز هویت (auth-module) krb5 در یک دامنه SSSD استفاده شود، گزینههای زیر باید استفاده شوند. برای جزئیات پیکربندی یک دامنه SSSD، به بخش “DOMAIN SECTIONS” در صفحه راهنمای sssd.conf(5) مراجعه کنید.
krb5_server, krb5_backup_server (string)
هنگام استفاده از شناسایی سرویس برای سرورهای KDC یا kpasswd، ابتدا SSSD مدخلهای DNS را که _udp را به عنوان پروتکل مشخص میکنند جستجو کرده و در صورت پیدا نشدن به _tcp بازمیگردد.
این گزینه در نسخههای پیشین SSSD با نام “krb5_kdcip” نامیده میشد. در حالی که این نام قدیمی در حال حاضر شناسایی میشود، به کاربران توصیه میشود پروندههای پیکربندی خود را برای استفاده از “krb5_server” بهروزرسانی کنند.
krb5_realm (string)
krb5_kpasswd, krb5_backup_kpasswd (string)
برای اطلاعات بیشتر درباره جایگزینی هنگام خرابی و افزونگی سرورها، به بخش “جایگزینی هنگام خرابی (FAILOVER)” مراجعه کنید. نکته: حتی اگر سرور kpasswd دیگری برای امتحان باقی نمانده باشد، در صورتی که احراز هویت در برابر KDC همچنان امکانپذیر باشد، بکاند به حالت آفلاین تغییر وضعیت نمیدهد.
پیشفرض: استفاده از KDC
krb5_ccachedir (string)
پیشفرض: /tmp
krb5_ccname_template (string)
%u
%U
%p
%r
%h
%d
%P
%%
اگر قالب با 'XXXXXX' به پایان برسد، از mkstemp(3) برای ایجاد نام پرونده یکتا به روشی امن استفاده میشود.
هنگام استفاده از انواع KEYRING، تنها سازوکار پشتیبانیشده “KEYRING:persistent:%U” است که از دستهکلید هسته لینوکس (Linux kernel keyring) برای ذخیره گواهینامهها بر پایه هر UID استفاده میکند. این گزینه همچنین انتخاب توصیهشده است، زیرا امنترین و پیشبینیپذیرترین روش محسوب میشود.
مقدار پیشفرض نام حافظه موقت گواهینامه از نمایه ذخیرهشده در پرونده پیکربندی سراسری krb5.conf در بخش [libdefaults] تأمین میشود. نام این گزینه default_ccache_name است. برای اطلاعات بیشتر در مورد قالب گسترش تعریفشده توسط krb5.conf، به بند PARAMETER EXPANSION در krb5.conf(5) مراجعه کنید.
نکته: لطفاً آگاه باشید که قالب گسترش ccache در libkrb5 از krb5.conf(5) توالیهای گسترش متفاوتی را نسبت به SSSD به کار میبرد.
پیشفرض: (از libkrb5)
krb5_keytab (string)
پیشفرض: keytab سیستم، معمولاً /etc/krb5.keytab
krb5_store_password_if_offline (boolean)
نکته: این ویژگی فقط در لینوکس موجود است. گذرواژههای ذخیرهشده به این روش به صورت متن ساده در دستهکلید هسته نگهداری میشوند و به طور بالقوه برای کاربر ریشه (با دشواری) قابل دسترسی هستند.
پیشفرض: false
krb5_use_fast (string)
never هرگز از FAST استفاده نکند. این معادل تنظیم نکردن این گزینه است.
try برای استفاده از FAST تلاش کند. اگر سرور از FAST پشتیبانی نکند، احراز هویت بدون آن ادامه مییابد.
demand استفاده از FAST الزامی باشد. در صورتی که سرور به fast نیاز نداشته باشد، احراز هویت با شکست مواجه میشود.
پیشفرض: تنظیم نشده، یعنی از FAST استفاده نمیشود.
نکته: برای استفاده از FAST یک keytab یا پشتیبانی از PKINIT ناشناس مورد نیاز است.
نکته: SSSD فقط از FAST با MIT Kerberos نسخه 1.8 و بالاتر پشتیبانی میکند. اگر SSSD با نسخه قدیمیتری از MIT Kerberos استفاده شود، استفاده از این گزینه یک خطای پیکربندی محسوب میشود.
krb5_fast_principal (string)
krb5_fast_use_anonymous_pkinit (boolean)
پیشفرض: false
krb5_use_kdcinfo (boolean)
برای اطلاعات بیشتر درباره پلاگین مکانیاب، به صفحه راهنمای sssd_krb5_locator_plugin(8) مراجعه کنید.
پیشفرض: true
krb5_kdcinfo_lookahead (string)
گزینه krb5_kdcinfo_lookahead شامل دو عدد است که با دو نقطه از هم جدا شدهاند. عدد اول نشاندهنده تعداد سرورهای اصلی مورد استفاده و عدد دوم مشخصکننده تعداد سرورهای پشتیبان است.
برای نمونه 10:0 بدین معنی است که تا ۱۰ سرور اصلی به sssd_krb5_locator_plugin(8) تحویل داده میشوند، اما هیچ سرور پشتیبانی داده نخواهد شد.
پیشفرض: 3:1
krb5_use_enterprise_principal (boolean)
پیشفرض: false (ارائهدهنده AD: برابر true)
ارائهدهنده IPA در صورتی که تشخیص دهد سرور قادر به رسیدگی به کاربران ارشد سازمانی است و این گزینه به طور صریح در پرونده پیکربندی تنظیم نشده باشد، این گزینه را روی 'true' تنظیم خواهد کرد.
krb5_use_subdomain_realm (boolean)
پیشفرض: false
krb5_map_user (string)
مثال:
krb5_realm = REALM krb5_map_user = joe:juser,dick:richard
“joe” و “dick” نامهای کاربری یونیکس هستند و “juser” و “richard” بخشهای اصلی (primaries) کاربران ارشد کربروس میباشند. برای کاربر “joe” یا “dick”، SSSD تلاش میکند به عنوان “juser@REALM” یا “richard@REALM” دستور kinit را اجرا کند.
پیشفرض: تنظیم نشده
krb5_auth_timeout (integer)
پیشفرض: 6
krb5_validate (boolean)
پیشفرض: false (ارائهدهنده IPA و AD: برابر true)
لطفاً توجه داشته باشید که اعتبارسنجی بلیت، اولین گام هنگام بررسی PAC است (برای جزئیات به 'pac_check' در صفحه راهنمای sssd.conf(5) مراجعه کنید). در صورت غیرفعال بودن اعتبارسنجی بلیت، بررسیهای PAC نیز نادیده گرفته خواهند شد.
krb5_renewable_lifetime (string)
s برای ثانیه
m برای دقیقه
h برای ساعت
d برای روز.
اگر هیچ واحدی مشخص نشود، s فرض میشود.
نکته: ترکیب واحدها امکانپذیر نیست. برای تنظیم طول عمر قابل تمدید روی یک ساعت و نیم، به جای '1h30m' از '90m' استفاده کنید.
پیشفرض: تنظیم نشده، یعنی TGT قابل تمدید نیست
krb5_lifetime (string)
s برای ثانیه
m برای دقیقه
h برای ساعت
d برای روز.
اگر هیچ واحدی مشخص نشود s فرض میشود.
نکته: ترکیب واحدها امکانپذیر نیست. برای تنظیم طول عمر روی یک ساعت و نیم، لطفاً به جای '1h30m' از '90m' استفاده کنید.
پیشفرض: تنظیم نشده، یعنی طول عمر پیشفرض بلیت که روی KDC پیکربندی شده است.
krb5_renew_interval (string)
s برای ثانیه
m برای دقیقه
h برای ساعت
d برای روز.
اگر هیچ واحدی مشخص نشود، s فرض میشود.
نکته: ترکیب واحدها امکانپذیر نیست. برای تنظیم طول عمر قابل تمدید روی یک ساعت و نیم، به جای '1h30m' از '90m' استفاده کنید.
اگر این گزینه تنظیم نشده باشد یا 0 باشد، تمدید خودکار غیرفعال است.
پیشفرض: تنظیم نشده
krb5_canonicalize (boolean)
پیشفرض: false
جایگزینی هنگام خرابی (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 مراجعه کنید.
مثال (EXAMPLE)
مثال زیر فرض میکند که SSSD به درستی پیکربندی شده است و FOO یکی از دامنهها در بخش [sssd] است. این مثال تنها پیکربندی احراز هویت Kerberos را نشان میدهد و شامل هیچ ارائهدهنده هویتی نیست.
[domain/FOO] auth_provider = krb5 krb5_server = 192.168.1.1 krb5_realm = EXAMPLE.COM
همچنین ببینید (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)
The SSSD upstream - https://github.com/SSSD/sssd
| 06/09/2026 | SSSD |