PAM_SSS_GSS(8) SSSD Manual pages PAM_SSS_GSS(8)

pam_sss_gss - ماژول PAM برای احراز هویت GSSAPI در SSSD

pam_sss_gss.so [debug]

ماژول pam_sss_gss.so کاربر را از طریق GSSAPI و با همکاری SSSD احراز هویت می‌کند.

این ماژول تلاش خواهد کرد تا با استفاده از نام سرویس مبتنی بر میزبان GSSAPI به صورت host@hostname کاربر را احراز هویت کند که به پرینسیپال کربروس host/hostname@REALM ترجمه می‌شود. بخش REALM از نام پرینسیپال کربروس توسط سازوکارهای داخلی کربروس مشتق می‌شود و می‌تواند صراحتاً در پیکربندی بخش [domain_realm] در /etc/krb5.conf تنظیم شود.

از SSSD برای ارائه نام سرویس دلخواه و اعتبارسنجی مدارک هویتی کاربر با استفاده از فراخوانی‌های GSSAPI استفاده می‌شود. اگر بلیت سرویس از قبل در حافظه موقت مدارک کربروس موجود باشد یا اگر بتوان از بلیت اعطای بلیت (TGT) کاربر برای دریافت بلیت سرویس صحیح استفاده کرد، کاربر احراز هویت خواهد شد.

اگر pam_gssapi_check_upn روی True (پیش‌فرض) تنظیم شده باشد، SSSD ملزم می‌سازد که مدارک هویتی استفاده‌شده برای دریافت بلیت‌های سرویس بتوانند با کاربر مرتبط شوند. این بدان معناست که پرینسیپالِ مالک مدارک کربروس باید با نام پرینسیپال کاربر (UPN) تعریف‌شده در LDAP مطابقت داشته باشد.

برای فعال‌سازی احراز هویت GSSAPI در SSSD، گزینه pam_gssapi_services را در بخش [pam] یا بخش دامنه در sssd.conf تنظیم کنید. مدارک سرویس باید در keytab متعلق به SSSD ذخیره شوند (اگر از ارائه‌دهنده ipa یا ad استفاده می‌کنید از قبل موجود است). مکان keytab را می‌توان با گزینه krb5_keytab تنظیم کرد. برای جزئیات بیشتر درباره این گزینه‌ها، sssd.conf(5) و sssd-krb5(5) را ببینید.

برخی از استقرارهای کربروس اجازه می‌دهند نشانگرهای احراز هویت به یک روش پیش‌احراز هویت خاص که توسط کاربر برای دریافت بلیت اعطای بلیت استفاده شده است، مرتبط شوند. pam_sss_gss.so اجازه می‌دهد تا وجود نشانگرهای احراز هویت در بلیت‌های سرویس، پیش از امکان دسترسی به یک سرویس PAM خاص الزامی شود.

اگر pam_gssapi_indicators_map در بخش [pam] یا بخش دامنه در sssd.conf تنظیم شده باشد، SSSD وجود هرگونه نشانگر پیکربندی‌شده در بلیت سرویس را بررسی خواهد کرد.

debug

اطلاعات اشکال‌زدایی را چاپ می‌کند.

تنها نوع ماژول auth ارائه شده است.

PAM_SUCCESS

عملیات PAM با موفقیت به پایان رسید.

PAM_USER_UNKNOWN

کاربر برای سرویس احراز هویت شناخته‌شده نیست یا احراز هویت GSSAPI پشتیبانی نمی‌شود.

PAM_AUTH_ERR

خطای احراز هویت.

PAM_AUTHINFO_UNAVAIL

دسترسی به اطلاعات احراز هویت امکان‌پذیر نیست. این ممکن است به دلیل خطای شبکه یا سخت‌افزار باشد.

PAM_SYSTEM_ERR

یک خطای سیستمی رخ داد. فایل‌های لاگ SSSD ممکن است حاوی اطلاعات بیشتری درباره این خطا باشند.

مورد کاربرد اصلی، ارائه احراز هویت بدون گذرواژه در sudo بدون نیاز به غیرفعال‌سازی کامل احراز هویت است. برای دستیابی به این هدف، ابتدا احراز هویت GSSAPI را برای sudo در sssd.conf فعال کنید:

[domain/MYDOMAIN]
pam_gssapi_services = sudo, sudo-i

سپس ماژول را در پشته PAM مورد نظر فعال کنید (برای نمونه /etc/pam.d/sudo و /etc/pam.d/sudo-i).

...
auth sufficient pam_sss_gss.so
...

لاگ‌های SSSD، خروجی اشکال‌زدایی pam_sss_gss و syslog ممکن است حاوی اطلاعات مفیدی درباره خطا باشند. در اینجا برخی مشکلات رایج آورده شده است:

۱. متغیر محیطی KRB5CCNAME را تنظیم کرده‌ام و احراز هویت کار نمی‌کند: بسته به نسخه sudo شما، ممکن است sudo این متغیر را به محیط PAM ارسال نکند. افزودن KRB5CCNAME به env_keep در /etc/sudoers یا در گزینه‌های پیش‌فرض قوانین sudo در LDAP را امتحان کنید.

۲. احراز هویت کار نمی‌کند و syslog حاوی "Server not found in Kerberos database" است: احتمالاً کربروس قادر به حل قلمرو (realm) صحیح برای بلیت سرویس بر اساس نام میزبان نیست. افزودن مستقیم نام میزبان به [domain_realm] در /etc/krb5.conf مانند زیر را امتحان کنید:

۳. احراز هویت کار نمی‌کند و syslog حاوی "No Kerberos credentials available" است: شما هیچ مدرکی که بتوان از آن برای دریافت بلیت سرویس مورد نیاز استفاده کرد ندارید. از kinit استفاده کنید یا از طریق SSSD برای دریافت آن مدارک احراز هویت نمایید.

۴. احراز هویت کار نمی‌کند و لاگ sssd-pam در SSSD حاوی "User with UPN [$UPN] was not found." یا "UPN [$UPN] does not match target user [$username]." است: از مدارکی استفاده می‌کنید که نمی‌توانند به کاربری که در حال احراز هویت است نگاشت شوند. استفاده از kswitch را برای انتخاب پرینسیپال دیگر امتحان کنید، مطمئن شوید که با SSSD احراز هویت کرده‌اید یا غیرفعال‌سازی pam_gssapi_check_upn را در نظر بگیرید.

[domain_realm]
.myhostname = MYREALM

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)

The SSSD upstream - https://github.com/SSSD/sssd

06/09/2026 SSSD