Rails and Keycloak، مجوز احراز هویت، بخش اول

Summarize this content to 400 words in Persian Lang
اول از همه، Keycloak چیست؟ و چرا می خواهید از آن با Rails استفاده کنید؟
Keycloak چیست؟
Keycloak یک منبع باز هویت و مدیریت دسترسی تحت CNCF است.
این به چه معناست؟به عبارت ساده: Keycloak هویت بازدیدکنندگان شما را پیدا میکند و مطمئن میشود که آنها همان چیزی هستند که ادعا میکنند، و شاید به آنها دسترسی مناسب به منابع خاصی بدهد.
Keycloak چه کاری برای من انجام می دهد؟
این به عنوان یک سیستم احراز هویت مستقل برای همه برنامه های شما، Rails، Django، Nodes و غیره عمل می کند.برنامه شما یک کلاینت OpenID است که به Keycloak اعتماد دارد.Keycloak به شما کمک می کند تا همه منطق احراز هویت را از برنامه خود دور نگه دارید.به عنوان مثال:
میتوانید ورود به سیستم Google، Microsoft، Gihtub را در Keycloak تنظیم کنید و همه برنامههای شما آنها را به صورت رایگان دریافت خواهند کرد.
احراز هویت وب، ثبت نام کاربر، فراموشی رمز عبور و غیره …
Keycloak بسیار قابل تنظیم است. شما می توانید رفتار Keycloak را بدون استقرار تغییر دهید. شما می توانید Keycloak را با استفاده از:
رابط وب Keycloak
Terraform یا opentofu با استفاده از terraform-provider
REST API
کتابخانه های شخص ثالث که از API های Keycloak REST استفاده می کنند، برای مثال Keycloak Admin Ruby
Keycloak همچنین دارای مضمون بسیار بالایی است.
آیا باید از Keycloak با Ruby on Rails استفاده کنم؟
احراز هویت
احراز هویت به این معناست: مطمئن شوید که کسی در واقع همان چیزی است که ادعا می کند.
گزینه های متعددی برای احراز هویت برای Rails وجود دارد، به عنوان مثال:
گزینه 1:
می توانید همه چیز را ساده نگه دارید و از Rails ساخته شده در authenticate_by استفاده کنید.
class User ActiveRecord::Base
has_secure_password
end
User.create(name: “John Doe”, email: “jdoe@example.com”, password: “abc123”)
User.authenticate_by(email: “jdoe@example.com”, password: “abc123”).name
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
گزینه 2:
از deise gem استفاده کنید که احتمالاً مشهورترین سیستم احراز هویت ریل است.
گزینه 3:
از revise gem استفاده کنید که بسیار شبیه به deise gem است.
هر گزینه ای را که انتخاب کنید، اشتباه نخواهید کرد. اما اگر میخواهید کاربرانتان با استفاده از همان اعتبارنامهها به سایر برنامههایتان وارد سیستم شوند، چه میشود.
می توانید از نگین دروازه بان استفاده کنید. که می تواند برنامه Rails شما را به ارائه دهنده هویت تبدیل کند. اما این بدان معنی است که یکی از برنامه های کاربردی شما تنها منبع حقیقت برای مدیریت کاربران خواهد بود.
مجوز
مجوز به معنای اعطای دسترسی کاربران به منابع خاص پس از احراز هویت موفقیت آمیز است.
چندین گزینه وجود دارد، به عنوان مثال:
CanCanCan.
کارشناس
هر دو گزینه های عالی هستند، آنها برای Rails پخته شده اند. و هر کدام طرفداران خاص خود را دارند.
آیا Keycloak می تواند به طور کامل جایگزین سیستم های مجوز Rails شود؟
نهCanCanCan و Pundit مزیت دسترسی به پایگاه داده را دارند، آنها می توانند دسترسی دقیق را به هر کاربر ارائه دهند.
آیا Keycloak می تواند از سیستم های مجوز Rails پشتیبانی کند؟
اگر Keycloak کاربران را در گروههایی طبقهبندی کرده باشد و به گروهها نقش داده شود، Keycloak میتواند یک لایه امنیتی اضافی برای APIها ارائه دهد.
ما مجوز Keycloak را برای APIها در قسمت 3 این مجموعه تنظیم خواهیم کرد.
در قسمت دوم این مجموعه به موارد زیر خواهیم پرداخت:
راه اندازی Keycloak با استفاده از docker و (terraform یا opentofu)
یک برنامه آزمایشی Rails ایجاد کنید و آن را با Keycloak با استفاده از omniauth تنظیم کنید.
در قسمت سوم این مجموعه به شرح زیر خواهیم پرداخت:
راه اندازی ریل با Keycloak برای مجوز
اول از همه، Keycloak چیست؟ و چرا می خواهید از آن با Rails استفاده کنید؟
Keycloak چیست؟
Keycloak یک منبع باز هویت و مدیریت دسترسی تحت CNCF است.
این به چه معناست؟
به عبارت ساده: Keycloak هویت بازدیدکنندگان شما را پیدا میکند و مطمئن میشود که آنها همان چیزی هستند که ادعا میکنند، و شاید به آنها دسترسی مناسب به منابع خاصی بدهد.
Keycloak چه کاری برای من انجام می دهد؟
این به عنوان یک سیستم احراز هویت مستقل برای همه برنامه های شما، Rails، Django، Nodes و غیره عمل می کند.
برنامه شما یک کلاینت OpenID است که به Keycloak اعتماد دارد.
Keycloak به شما کمک می کند تا همه منطق احراز هویت را از برنامه خود دور نگه دارید.
به عنوان مثال:
- میتوانید ورود به سیستم Google، Microsoft، Gihtub را در Keycloak تنظیم کنید و همه برنامههای شما آنها را به صورت رایگان دریافت خواهند کرد.
- احراز هویت وب، ثبت نام کاربر، فراموشی رمز عبور و غیره …
Keycloak بسیار قابل تنظیم است. شما می توانید رفتار Keycloak را بدون استقرار تغییر دهید.
شما می توانید Keycloak را با استفاده از:
- رابط وب Keycloak
- Terraform یا opentofu با استفاده از terraform-provider
- REST API
- کتابخانه های شخص ثالث که از API های Keycloak REST استفاده می کنند، برای مثال Keycloak Admin Ruby
Keycloak همچنین دارای مضمون بسیار بالایی است.
آیا باید از Keycloak با Ruby on Rails استفاده کنم؟
احراز هویت
احراز هویت به این معناست: مطمئن شوید که کسی در واقع همان چیزی است که ادعا می کند.
گزینه های متعددی برای احراز هویت برای Rails وجود دارد، به عنوان مثال:
گزینه 1:
می توانید همه چیز را ساده نگه دارید و از Rails ساخته شده در authenticate_by استفاده کنید.
class User ActiveRecord::Base
has_secure_password
end
User.create(name: "John Doe", email: "jdoe@example.com", password: "abc123")
User.authenticate_by(email: "jdoe@example.com", password: "abc123").name
گزینه 2:
از deise gem استفاده کنید که احتمالاً مشهورترین سیستم احراز هویت ریل است.
گزینه 3:
از revise gem استفاده کنید که بسیار شبیه به deise gem است.
هر گزینه ای را که انتخاب کنید، اشتباه نخواهید کرد.
اما اگر میخواهید کاربرانتان با استفاده از همان اعتبارنامهها به سایر برنامههایتان وارد سیستم شوند، چه میشود.
می توانید از نگین دروازه بان استفاده کنید. که می تواند برنامه Rails شما را به ارائه دهنده هویت تبدیل کند. اما این بدان معنی است که یکی از برنامه های کاربردی شما تنها منبع حقیقت برای مدیریت کاربران خواهد بود.
مجوز
مجوز به معنای اعطای دسترسی کاربران به منابع خاص پس از احراز هویت موفقیت آمیز است.
چندین گزینه وجود دارد، به عنوان مثال:
-
CanCanCan.
-
کارشناس
هر دو گزینه های عالی هستند، آنها برای Rails پخته شده اند. و هر کدام طرفداران خاص خود را دارند.
آیا Keycloak می تواند به طور کامل جایگزین سیستم های مجوز Rails شود؟
نه
CanCanCan و Pundit مزیت دسترسی به پایگاه داده را دارند، آنها می توانند دسترسی دقیق را به هر کاربر ارائه دهند.
آیا Keycloak می تواند از سیستم های مجوز Rails پشتیبانی کند؟
اگر Keycloak کاربران را در گروههایی طبقهبندی کرده باشد و به گروهها نقش داده شود، Keycloak میتواند یک لایه امنیتی اضافی برای APIها ارائه دهد.
ما مجوز Keycloak را برای APIها در قسمت 3 این مجموعه تنظیم خواهیم کرد.
در قسمت دوم این مجموعه به موارد زیر خواهیم پرداخت:
- راه اندازی Keycloak با استفاده از docker و (terraform یا opentofu)
- یک برنامه آزمایشی Rails ایجاد کنید و آن را با Keycloak با استفاده از omniauth تنظیم کنید.
در قسمت سوم این مجموعه به شرح زیر خواهیم پرداخت:
- راه اندازی ریل با Keycloak برای مجوز