استفاده از حافظه خارجی Using External Storage
سازمان ها می توانند پایگاه داده های اطلاعاتی حاوی اطلاعات گذرواژه ها و سایر اطلاعات را داشته باشند. به طور معمول، نمی توان ذخیره سازی داده های موجود را به استقرار Keycloak منتقل کرد، بنابراین keycloak می تواند پایگاه های داده کاربر خارجی موجود را فدارل(federate) کند.
Keycloak از LDAP و Active Directory پشتیبانی می کند و همچنین می توان با استفاده از Keycloak User Storage SPI پسوند هایی را برای هر پایگاه داده کاربر سفارشی کدنویسی کرد.
LDAP : پروتکلی که بیشترین استفاده آن برای احراز هویت می باشد. همچنین فایروال های سخت افزاری، روتر ها و سرورها به راحتی از LDAP پشتیبانی می کنند.
هنگامی که کاربر سعی می کند وارد سیستم شود، Keycloak فضای ذخیره سازی آن کاربر را بررسی می کند تا آن کاربر را پیدا کند. در صورتی که Keycloak کاربر را پیدا نکند، Keycloak فضای ذخیره سازی Provider روی هر ارایه دهنده فضای ذخیره سازی کاربر برای قلمرو (Realm) تکرار می شود تا زمانیکه مطابقت پیدا کند. سپس داده های ذخیره سازی خارجی به یک مدل کاربر استاندارد که زمان اجرا Keycloak مصرف می کند، نگاشت می شود. سپس این مدل کاربر به ادعاهای توکن OIDC (OpenID Connect) و ویژگی های ادعایی SAML نگاشت می شود.
پایگاه های اطلاعاتی کاربر خارجی به ندرت دارای داده های لازم برای پشتیبانی از همه ویژگی های Keycloak هستند، بنابراین ارائه دهنده فضای ذخیره سازی کاربر می تواند موارد را به صورت محلی وارد کنند به صورت دورهای با ذخیره سازی داده های خارجی همگام شوند. این رویکرد به قابلیت های ارایه دهنده بستگی دارد. به عنوان مثال، ذخیره اطلاعات کاربر خارجی ما ممکن است از OTP پشتیبانی نکند، بستگی به Provider ، OTP می تواند توسط Keycloak مدیریت و ذخیره شود.
اضافه نمودن Provider
برای اضافه کردن یک Provider ذخیره سازی، مراحل زیر را انجام دهید:
در منو روی User Federation کلیک کنید.
نوع Provider را از لیست Add Provider انتخاب کرده و Keycloak ما را به صفحه پیکربندی آن Provider می آورد.
- جلوگیری از شکست یا اشکال در Provider
اگر Provider فضای ذخیره سازی کاربر با مشکل مواجه شود، ممکن است نتوان وارد سیستم شد و کاربران را در کنسول مدیریت مشاهده کرد. Keycloak هنگام استفاده از Storage Provider برای جستجوی کاربر، خرابی ها را تشخیص نمی دهد، بنابراین فراخوانی را لغو می کند. اگر Provider فضای ذخیرهسازی با اولویت بالا داشته باشیم که در حین جستجوی کاربر ناموفق است، ورود به سیستم یا جستجوی کاربر با یک استثنا شکست میخورد و به Provider پیکربندیشده بعدی خراب نمیشود.
Keycloak ابتدا پایگاه داده کاربر محلی Keycloak را جستجو می کند تا کاربران را قبل از هر LDAP یا Provider ذخیره سازی کاربر سفارشی حل کند. در صورت بروز مشکل در اتصال به LDAP و بکاندهای خود، یک حساب سرپرست ذخیره شده در پایگاه داده کاربر محلی Keycloak ایجاد کنید.
هر LDAP و Provider فضای ذخیرهسازی کاربر سفارشی یک کلید فعال در صفحه کنسول مدیریت خود دارد. غیرفعال کردن Provider فضای ذخیرهسازی کاربر، Provider را هنگام انجام پرسوجوها نادیده میگیرد، بنابراین میتوانید حسابهای کاربری را در Provider دیگری با اولویت کمتر مشاهده کرده و وارد شد. اگر Providerما از استراتژی Import استفاده میکند و غیرفعال است، کاربران وارد شده همچنان برای جستجو در حالت فقط خواندنی در دسترس هستند.
هنگامی که جستجوی Provider فضای ذخیرهسازی با شکست مواجه میشود، Keycloak با شکست مواجه نمیشود، زیرا پایگاههای داده کاربر اغلب نامهای کاربری تکراری یا ایمیلهای تکراری بین آنها دارند. نامهای کاربری و ایمیلهای تکراری میتوانند مشکلاتی ایجاد کنند، زیرا کاربر از یک منبع داده خارجی بارگیری میشود، درحالیکه سرپرست انتظار دارد از منبع داده دیگری بارگیری شود.