احراز هویت با SSO در راکتچت
بازارچه ابریخواندن 5 دقیقه
با اتصال RocketChat به Keycloak از طریق Custom OAuth ورود به RocketChat با همان حساب Keycloak (SSO) انجام میشود.
پیشنیازها
- یک سرویس فعال RocketChat و دسترسی ادمین
- یک سرویس فعال Keycloak
گام اول: ساخت Client در Keycloak
- از مسیر Clients > Create client، یک Client جدید ساخته میشود؛ برای مثال با Client ID
rocketchat. - Client authentication روی حالت فعال (Confidential) قرار میگیرد و Standard flow فعال باقی میماند.
- در Valid redirect URIs، آدرس زیر اضافه میشود:
https://your-rocketchat-domain.xyz/_oauth/keycloak
- پس از Save، از تب Credentials، مقدار Client secret کپی میشود.
گام دوم: ساخت نقشها و تخصیص به کاربران
نقشهای RocketChat (مثلاً admin) در Keycloak بهصورت Client Roles روی همین Client ساخته میشوند؛ مشابه روشی که برای Grafana استفاده شد:
- از تب Roles همین Client، با دکمه Create role، نقشی با همان نام دقیق نقش موردنظر در RocketChat ساخته میشود؛ برای مثال
admin.
-
برای تخصیص نقش به هرکاربر، از مسیر Users، کاربر موردنظر انتخاب و از تب Role mapping، روی Assign role کلیک میشود؛ در پنجره بازشده، با فعال کردن Filter by clients، نقشهای همین Client قابل انتخاباند.
-
از تب Client scopes همین Client، روی Scope اختصاصی کلیک میشود؛ از تب Mappers، روی Configure a new mapper و سپس User Client Role کلیک میشود.
-
تنظیمات این Mapper:
فیلد مقدار Name یک نام دلخواه، مثلاً rocketchat-rolesClient ID همین Client ( rocketchat)Token Claim Name یک نام دلخواه، مثلاً rolesMultivalued روشن Add to ID token / Add to access token / Add to userinfo روشن
گام سوم: افزودن Custom OAuth در RocketChat
- از مسیر Administration > Settings > OAuth، روی Add custom OAuth کلیک شده و یک نام (مثلاً
keycloak) وارد میشود. - Enable فعال میشود و مقادیر زیر بر اساس آدرس Keycloak و realm مربوطه تکمیل میشوند:
| فیلد | مقدار |
|---|---|
| URL | https://your-keycloak-domain/realms/<realm-name>/protocol |
| Token Path | /openid-connect/token |
| Token Sent Via | Header |
| Identity Path | /openid-connect/userinfo |
| Authorize Path | /openid-connect/auth |
| Scope | openid |
| Id | همان Client ID ساختهشده در Keycloak (مثلاً rocketchat) |
| Secret | Client Secret کپیشده از Keycloak |
توضیح کامل هرکدام از این فیلدها در مستند رسمی «Custom OAuth Setup» آمده است.
- برای همگامسازی نقشها، طبق مستند رسمی RocketChat، سه فیلد زیر هم در همین صفحه تکمیل میشوند:
| فیلد | مقدار |
|---|---|
| Roles/Groups field name | همان مقدار Token Claim Name از گام قبل، مثلاً roles |
| Merge Roles from SSO | روشن |
| Roles to Sync | نام نقشهایی که باید همگام شوند، مثلاً admin |
-
برای نگاشت اطلاعات پروفایل کاربر، فیلدهای زیر تکمیل میشوند:
فیلد مقدار Key Field UsernameUsername field preferred_usernameEmail field emailName field nameAvatar field خالی میماند
-
سایر گزینههای همین صفحه:
فیلد مقدار Merge users روشن Merge users from distinct services خاموش Map Roles/Groups to channels خاموش Show Button on Login Page روشن
- با Save changes تنظیمات ذخیره و با Refresh OAuth Services provider فعال میشود.
گام چهارم: ورود با SSO
پس از این مرحله، دکمه ورود با Keycloak در صفحه لاگین RocketChat نمایش داده میشود.
راهنماییهای مرتبط
این راهنمایی کاربردی بود؟
با ثبت بازخوردتان در بهبود کیفیت مستندات مشارکت داشته باشید.