CodeCrafters
774 subscribers
91 photos
50 videos
42 files
170 links
Download Telegram
در ادامه مبحث میکروسرویس رسیدیم به sso و اکنون با یک پلتفرم جامع بابتش آشنا خواهیم شد


در پست قبل گفتیم تمامی سرویس‌ها و برنامه‌های ما نیاز به احراز هویت دارن و با استفاده از sso تمام صفحات ورود رو در یک صفحه جا میدیم، برای اینکار یک پلتفرم رایگان و پر استفاده وجود دارد از شرکت readhat با نام keycloak


در واقع keycloak یک ابزار رایگان شناسایی هویت و مدیریت دسترسی میباشد(IAM) identity and access management ، فرآیند احراز هویت رو برای سرویس‌های IT ساده میکند

هدف از ابزار IAM اطمینان حاصل کردن از این مورد است که مردم به منابع درستی دسترسی دارن، که معمولاً اجرای SSO, فدراسیون هویت (identity federation) و احراز هویت قوی (authentication strong) رو امکان پذیر می کند

همه شما استفاده از مدیریت هویت و دسترسی (IAM) را می دانید.کاربرد اصلی راه حل IAM این است که به عنوان یک Identity Provider (IdP) عمل می کند، به این معنی که هویت های دیجیتالی کاربر و همچنین فاکتورهای احراز هویت آنها را ایجاد، نگهداری و مدیریت می کند

اما این سوالات پیش میاد
خود keycloak چیست؟؟
ویژگی و سودمندی آن چیست؟؟
چگونه تاثیر گذاره؟؟

ما به این سوالات پاسخ میدیم

نخست keycloak چیست؟؟
یک ابزار برای IAM هستش که مجوز Apache رو داره و توسط شرکت redhat برای sso طراحی شده است

با keycloak شما میتونید در تایم کوتاهی سرویس خودتون رو امن و احرازهویت رو به برنامه خود اضافه کنید

با استفاده از کنسول ادمین keycloak ،کمپانی‌ها میتونن با شبکه‌های اجتماعی سریعا وارد بشن، اینجا کد یا برنامه‌ای تغییر نمیکنه، تمامی این موارد نیازمند انتخاب شبکه اجتماعی میباشد، ادمین‌ها میتونن تمام جنبه‌های keycloak رو به سادگی مدیریت کنند، برای مثال فعال و غیرفعال کردن ویژگی‌های آن


ویژگی‌های keycloak
در واقع keycloak از سه نوع پروتکل oidc, oauth2, saml پشتیبانی میکند

این ابزار بصورت کامل از SSO که مخفف single-sign on و single-sign out میباشد پشتیبانی میکند

کنسول ادمین
یک رابط کاربری گرافیکی مبتنی بر وب توسط Keycloak ارائه شده است، که در آن می‌توانید تمام تنظیمات مورد نیاز خود را با «کلیک کنید» آنطور که می‌خواهید کار کند تنظیم کنید


دسترسی و هویت شناسی کاربر
ما میتونیم بگیم که keycloak یک ابزار مستقل برای مدیریت هویت و دسترسی کاربران است، که به ما اجازه داشتن یک دیتابیس از کاربران، نقش‌ها و گروه‌ها رو میده، ما می‌تونیم از این اطلاعات بیشتر برای احراز هویت کاربران در برنامه‌هامون استفاده کنیم و بخش‌هایی از آن را بر اساس نقش‌های از پیش تعریف‌شده ایمن کنیم

میتواند نقش یک پروکسی رو بین کاربران و ارائه دهندگان هویت سنجی خارجی رو ایفا کنه
مهمترین ویژگی آن اجازه دادن به ارائه دهندگان احراز هویت خارجی می باشد و شما میتوانید موارد رو در کنسول ادمین آن کنترل کنید

مزایای keycloak
۱-سریع و منعطف:
جامعه ان نشان داده که بسیار سریع با تغییرات دنیای مهندسی خودش رو وفق میده و در کل طراحی keycloak خودش رو برای رویکرد agile آماده و مناسب کرده

۲-نرم افزار منبع باز:
شما میتوانید به تمامی کدهای برنامه بصورت رایگان دسترسی داشته باشید و از آن استفاده نمایید

۳-پشتیبانی و ثابت شده:
جامعه عظیم و پشتیبانی بزرگی از آن حمایت میکند که سریع میتوانند به شما بازخورد دهند

۴-احراز هویت و مجوز دسترسی:
با حداقل ترین تلاش و سریع احراز هویت و افزایش امنیت را به سازمان و برنامه‌های خود میتوانید اضافه کنید

۵-مدیریت سیستم:
حساب های کاربران را به طور یکپارچه مدیریت و داده ها و همچنین جلسات را حفظ می کند

۶-ماژول و مستقل:
می توان از آن به عنوان یک عنصر زیرساخت IT یا به عنوان یک راه حل مستقل استفاده کرد


#microservice
#sso #keycloak


@code_crafters
👍4🔥4
در ادامه مبحث sso و کار با ابزار keycloak و آشنایی با محیط آن میرسیم به این موضوع که چگونه با پایتون با این ابزار کار کنیم


یکی از بهترین کتابخانه‌های اون رو در زیر براتون میزارم

https://pypi.org/project/python-keycloak/

دلیل استفاده از این پکیج جهت کار کردن روی سطح پایینتری از کی‌کلاک جهت ترکیب ان با drf و پیاده سازی کردن اندپوینت‌هایی جهت ساخت ui مخصوص خود و جدا شدن از محیط ui خود کی‌کلاک ،در پست قبلی یاد گرفتیم که چگونه realm, client, user بسازیم که دسترسی داشته باشیم از این داده درون این پکیج هم استفاده کنید جهت کار کردن و اعتبار سنجی

اگر به ارور نوع grant برخوردید ابتدا با کنسول لاگین خود کی‌کلاک ورود کرده و مرحله تغییر پسورد رو پشت سر بگذارید، اگر میخواهید به این قسمت برنخورید هنگام ساخت یوزر زمانیکه به تب credentials میروید و برای یوزرتون پسورد ست میکنید گزینه Temporary رو غیر فعال کنید

لازم بذکر میباشد که پکیج جامع django all auth نیز از کی‌کلاک پشتیبانی میکند، دلیل استفاده من از کتابخانه بالاتر انتخاب شخصی و مناسب با درخواست شرکت می‌باشد و نیاز به کد زدن در سطح پایینتری داشتم با امکان کنترل بیشتر بر روی flow موجود در طراحی سیستم


سعی میکنم یک نمونه پروژه کوچیک بسازم و بالا بیارم تا بتونیم درک سریعی از ترکیب موارد بالا رو باهم داشته باشیم و در گیتهاب پابلیک کنم


#microservice
#sso #keycloak


@code_crafters