Lightweight Directory Access Protocol LDAP And Active Directory
Keycloak شامل یک Provider LDAP/AD است. می توان چندین سرور LDAP مختلف را در یک قلمرو Keycloak فدرال کرد و ویژگی های کاربر LDAP را در مدل کاربر مشترک Keycloak ترسیم کرد.
به طور پیش فرض، Keycloak نام کاربری، ایمیل، نام و نام خانوادگی حساب کاربری را ترسیم می کند، اما می توان نگاشت های اضافی را نیز پیکربندی کنید. ارائهدهنده LDAP/AD Keycloak از تأیید اعتبار رمز عبور با استفاده از پروتکلهای LDAP/AD و حالتهای ذخیرهسازی، ویرایش و همگامسازی پشتیبانی میکند.
نکته : پروتکل LDAP نسخه سبک تر شده پروتکل DAP میباشد و هر دو آنها به عنوان بخشی از استاندارد X.500 هستند که استاندارد Directory Services میباشد. به زبان ساده LDAP پروتکلی است که به ما در پیدا کردن اطلاعات و پرونده های مربوطه و مورد نیازمان چه درون یک سازمان چه درون اینترنت کمک میکند و این فرایند را راحت تر میسازد.
حالت ذخیره سازی
Keycloak کاربران را از LDAP به پایگاه داده کاربر محلی Keycloak وارد می کند. این کپی از پایگاه داده کاربر بر حسب تقاضا یا از طریق یک کار پس زمینه دوره ای همگام می شود. یک استثنا برای همگام سازی رمزهای عبور وجود دارد. Keycloak هرگز رمز عبور وارد نمی کند. تأیید رمز عبور همیشه در سرور LDAP رخ می دهد.
مزیت همگام سازی این است که همه ویژگی های Keycloak به طور موثر کار می کنند زیرا هر گونه اطلاعات اضافی مورد نیاز برای هر کاربر به صورت محلی ذخیره می شود. نقطه ضعف این است که هر بار که Keycloak برای اولین بار از یک کاربر خاص درخواست می کند، Keycloak یک Insert پایگاه داده مربوطه را انجام می دهد.
می توان بدون وارد کردن کاربران به پایگاه داده کاربر Keycloak از LDAP با Keycloak استفاده کنید. سرور LDAP از مدل کاربر معمولی که Keycloak زمان اجرا استفاده می کند، نسخه پشتیبان تهیه می کند. اگر LDAP از داده هایی که یک ویژگی Keycloak نیاز دارد پشتیبانی نکند، آن ویژگی کار نخواهد کرد. مزیت این رویکرد این است که ما از منبعی برای وارد کردن و همگام سازی کپی های کاربران LDAP در پایگاه داده کاربران Keycloak استفاده نمی کنیم.
سوئیچ Import Users در صفحه پیکربندی LDAP این حالت ذخیره سازی را کنترل می کند. برای وارد کردن کاربران، این سوئیچ را روی ON قرار می دهیم.
اگر Import Users را غیرفعال کنیم، نمیتوان ویژگیهای نمایه کاربر را در پایگاه داده Keycloak ذخیره کنید. همچنین، نمیتوان فرادادهها(MetaData) را ذخیره کرد، به جز ابردادههای نمایه کاربر که به LDAP نگاشت شدهاند. این ابرداده میتواند شامل نگاشت نقش، نوشتن گروهی و سایر ابردادههای مبتنی بر پیکربندی Mappers LDAP باشد.
هنگامی که سعی می کنیم داده های کاربر نوشته شده non-LDAP را تغییر دهیم، به روز رسانی کاربر امکان پذیر نیست. برای مثال، نمیتوانید کاربر LDAP mapped را غیرفعال کنید، مگر اینکه پرچم فعال کاربر به یک ویژگی LDAP نگاشت شود.
حالت ویرایش Edit Mode
کاربران و مدیران می توانند MetaData کاربر را تغییر دهند، کنسول حساب و مدیران را از طریق کنسول مدیریت تغییر دهند. پیکربندی حالت ویرایش در صفحه پیکربندی LDAP، امتیازات بهروزرسانی LDAP کاربر را مشخص میکند.
فقط خواندنی ReadOnly
ما نمی توانیم نام کاربری، ایمیل، نام، نام خانوادگی و سایر ویژگی های Mapped شده را تغییر دهیم. هر زمانی که کاربر سعی می کند این فیلدها را به روز کند، Keycloak خطایی را نشان می دهد. به روز رسانی رمز عبور پشتیبانی نمی شود.
قابل نوشتن Writable
میتوانیم نام کاربری، ایمیل، نام، نام خانوادگی و سایر ویژگیها و گذرواژههای نوشته شده را تغییر دهیم و آنها را بهطور خودکار با فروشگاه LDAP همگامسازی کنیم.
غیر همگام UnSynced
Keycloak تغییرات نام کاربری، ایمیل، نام، نام خانوادگی و گذرواژهها را در ذخیرهسازی محلی Keycloak ذخیره میکند، بنابراین مدیر باید این دادهها را با LDAP همگامسازی کند. در این حالت، استقرارهای Keycloak می توانند ابرداده های کاربر را در سرورهای LDAP فقط خواندنی به روز کنند. این گزینه هنگام وارد کردن کاربران از LDAP به پایگاه داده کاربر محلی Keycloak نیز اعمال می شود.
وقتی Keycloak، Provider LDAP را ایجاد میکند، Keycloak همچنین مجموعهای از mappersهای اولیه LDAP را ایجاد میکند. Keycloak این نقشهبردارها را بر اساس ترکیبی از سوییچهای Vendor، Edit Mode و Import Users پیکربندی میکند. برای مثال، زمانی که حالت ویرایش UNSYNCED است، Keycloak mappers را طوری پیکربندی میکند که یک ویژگی کاربر خاص را از پایگاه داده بخوانند و نه از سرور LDAP. با این حال، اگر بعداً حالت ویرایش را تغییر دهیم، پیکربندی Mapper تغییر نمیکند، زیرا تشخیص تغییر پیکربندی در حالت UNSYNCED غیرممکن است. هنگام ایجاد ارائه دهنده LDAP، حالت ویرایش را تعیین کنید. این موضوع در مورد سوئیچ Import کاربران نیز اعمال می شود.
سایر گزینه های پیکربندی
نام نمایشی کنسول Console Configuration options
نام ارائه دهنده برای نمایش در کنسول مدیریت.
اولویت Priority
اولویت ارائه دهنده هنگام جستجوی کاربران یا افزودن کاربر.
همگام سازی ثبت ها Sync Registrations
اگر قصد داریم کاربران جدیدی که توسط Keycloak ایجاد شدهاند به LDAP اضافه شوند، این سوئیچ را روشن می کنیم.
تأیید اعتبار Kerberos را مجاز می کنیم
احراز هویت Kerberos/SPNEGO را در قلمرو با داده های کاربر ارائه شده از LDAP فعال کنید. برای اطلاعات بیشتر به بخش Kerberos مراجعه کنید.
اتصال به LDAP از طریق SSL
Connecting to LDAP over SSL
هنگامی که یک URL اتصال امن را به منبع LDAP خود پیکربندی می کنیم (به عنوان مثال, ldaps://myhost.com:636)، Keycloak از SSL برای برقراری ارتباط با سرور LDAP استفاده می کند. یک Truststore در سمت سرور Keycloak پیکربندی کنید تا Keycloak بتواند به اتصال SSL به LDAP اعتماد کند.
با Truststore SPI، ذخیره جهانی را برای Keycloak پیکربندی کنید. برای اطلاعات بیشتر در مورد پیکربندی ذخیره جهانی، به راهنمای نصب و پیکربندی سرور مراجعه کنید. اگر Truststore SPI را پیکربندی نکنید، Truststore به مکانیسم پیشفرض ارائهشده توسط جاوا بازمیگردد، که میتواند فایل ارائهشده توسط ویژگی سیستم javax.net.ssl.trustStore یا فایل cacerts از JDK باشد، اگر ویژگی سیستم باشد. تنظیم نشده است.
ویژگی پیکربندی Use Truststore SPI، در پیکربندی ارائه دهنده فدراسیون LDAP، Truststore SPI را کنترل می کند. بهطور پیشفرض، Keycloak ویژگی را روی Only for ldaps تنظیم میکند که برای اکثر استقرارها کافی است. اگر URL اتصال به LDAP فقط با ldaps شروع شود، Keycloak از Truststore SPI استفاده می کند.
مهدی اخلاقی 30 خرداد 1401