يدعم rtCloud ثلاثة مناهج لـ Single Sign-On (SSO):

الخيارالأنسب لـ
Keycloak المدمجالمنظمات التي تريد خادم SSO مستقلاً بالكامل مجمَّعاً مع rtCloud
مزود OIDC خارجيالمنظمات التي تشغّل مسبقاً مزود هوية (Auth0، Authentik، Okta، Supabase، إلخ)
Azure Active Directoryالمنظمات التي تستخدم Microsoft 365 أو Azure AD

بدون SSO مُعدّ، يسجّل المستخدمون الدخول بحسابات rtCloud المحلية المُدارة عبر لوحة الإدارة.


Keycloak المدمج

يتضمن النشر حاوية Keycloak اختيارية تعمل جانب rtCloud. تأتي Keycloak مُعدّة مسبقاً بـ realm لـ rtSurvey وجاهزة للاستخدام.

المتطلبات

  • اسم نطاق مع HTTPS (تتطلب Keycloak HTTPS في الإنتاج)
  • على الأقل 4 GB RAM على الخادم (تضيف Keycloak ~512 MB من استخدام الذاكرة)

الإعداد

1. إعداد متغيرات البيئة في .env:

  # تفعيل حاوية Keycloak المدمجة
EMBED_KEYCLOAK=true

# عناوين URL لـ Keycloak — استخدم نطاقك الفعلي
KEYCLOAK_URL=https://rtcloud.example.com/auth
KC_HOSTNAME=https://rtcloud.example.com/auth
KC_HOSTNAME_STRICT=false

# إعدادات realm والعميل (تطابق ملف JSON المستورد للـ realm)
KEYCLOAK_REALM=rtsurvey
KEYCLOAK_CLIENT_ID=rtsurvey-app
KEYCLOAK_CLIENT_SECRET=your-client-secret-here

# بيانات اعتماد مسؤول Keycloak
KEYCLOAK_ADMIN_USER=admin
KEYCLOAK_ADMIN_PASSWORD=change_me_keycloak_admin_password

# قاعدة بيانات Keycloak (تُنشأ تلقائياً)
KEYCLOAK_DB=keycloak
KEYCLOAK_DB_USER=keycloak
KEYCLOAK_DB_PASSWORD=change_me_keycloak_db_password

# المنفذ الذي تستمع عليه Keycloak (جهة المضيف، عبر وكيل Nginx)
KEYCLOAK_PORT=8091
  

2. التشغيل مع ملف تعريف Keycloak المدمج:

  docker compose -f docker-compose.production.yml --profile embed-keycloak up -d
  

3. التحقق من سلامة Keycloak:

  docker compose -f docker-compose.production.yml ps
  

يجب أن تُظهر حاوية rtcloud-keycloak Up (healthy) بعد 2–3 دقائق.

4. الوصول إلى وحدة تحكم Keycloak الإدارية:

  https://rtcloud.example.com/auth/admin
  

سجّل الدخول بـ KEYCLOAK_ADMIN_USER وKEYCLOAK_ADMIN_PASSWORD.

ما هو مُعدّ مسبقاً

تبدأ Keycloak المدمجة بـ realm مستورد مسبقاً rtsurvey يتضمن:

  • إعداد عميل لتطبيق الويب
  • أدوار المستخدمين الافتراضية (admin، project_manager، enumerator، analyst)
  • إعدادات الجلسة والرمز المحسَّنة لـ rtSurvey

يمكنك إضافة مستخدمين مباشرةً في وحدة تحكم Keycloak الإدارية أو ربط Keycloak بمزود هوية أعلى (LDAP، SAML).

توجيه Nginx

عند استخدام سكريبتات النشر السحابي، يُعدّ Nginx لتوجيه كلتا الخدمتين عبر وكيل:

المسارالخلفية
/تطبيق rtCloud على 127.0.0.1:8080
/auth/Keycloak على 127.0.0.1:8090

مزود OIDC خارجي

ربط rtCloud بأي مزود هوية متوافق مع OpenID Connect. لا يتطلب هذا النهج حاوية Keycloak.

المزودون المدعومون

يعمل أي مزود متوافق مع OIDC، بما في ذلك:

  • Authentik
  • Auth0
  • Okta
  • Keycloak (نسخة خارجية)
  • Supabase
  • Google (لمنظمات Google Workspace)
  • GitHub (عبر تطبيقات OAuth مع امتداد OIDC)

الإعداد

1. سجّل rtCloud كعميل OIDC في مزود الهوية الخاص بك.

ستحتاج إلى:

  • معرّف عميل وسر عميل
  • تسجيل URI إعادة التوجيه: https://rtcloud.example.com/auth/callback
  • لدعم التطبيق المحمول، سجّل أيضاً: vn.rta.rtsurvey.auth://callback

2. إعداد متغيرات البيئة في .env:

  # عنوان URL اكتشاف OIDC (خاص بالمزود — راجع وثائق IdP الخاص بك)
OIDC_ISSUER_URL=https://your-identity-provider.com

# بيانات اعتماد العميل من مزود الهوية
OIDC_CLIENT_ID=rtcloud-app
OIDC_CLIENT_SECRET=your-client-secret-here

# النطاقات المطلوبة (openid وprofile وemail كافية في العادة)
OIDC_SCOPE=openid profile email

# URI إعادة التوجيه المسجَّل في مزود الهوية
OIDC_REDIRECT_URI=https://rtcloud.example.com/auth/callback

# اختياري: عميل منفصل للتطبيق المحمول
OIDC_MOBILE_CLIENT_ID=rtcloud-mobile
OIDC_MOBILE_REDIRECT_URI=vn.rta.rtsurvey.auth://callback

# اضبطه على true لإنشاء حسابات rtCloud تلقائياً لمستخدمي OIDC الجدد
OPEN_REGISTRATION=false
  

3. إعادة تشغيل حاوية التطبيق لتطبيق التغييرات:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

التوفير التلقائي للمستخدمين

عندما تكون OPEN_REGISTRATION=true، ينشئ rtCloud حساباً محلياً تلقائياً في المرة الأولى التي يسجّل فيها المستخدم الدخول عبر OIDC. يُملأ الحساب باسم المستخدم وبريده الإلكتروني من رمز المعرّف.

عندما تكون OPEN_REGISTRATION=false (الافتراضي)، يجب على مسؤول rtCloud إنشاء حساب المستخدم أولاً، وتُربط هوية OIDC عند تسجيل الدخول الأول.

نقاط نهاية مخصصة

إذا كان مزودك لا يدعم اكتشاف OIDC (.well-known/openid-configuration)، يمكنك ضبط نقاط النهاية يدوياً:

  OIDC_AUTHORIZATION_ENDPOINT=https://your-provider.com/oauth2/authorize
OIDC_TOKEN_ENDPOINT=https://your-provider.com/oauth2/token
OIDC_USERINFO_ENDPOINT=https://your-provider.com/oauth2/userinfo
  

Azure Active Directory

تكامل rtCloud مع مستأجر Microsoft Azure AD في منظمتك.

الإعداد

1. سجّل تطبيقاً جديداً في بوابة Azure:

  • اذهب إلى Azure Active DirectoryApp registrationsNew registration
  • الاسم: rtCloud
  • URI إعادة التوجيه: https://rtcloud.example.com/auth/callback (نوع Web)
  • بعد الإنشاء، دوّن Application (client) ID وDirectory (tenant) ID
  • تحت Certificates & secrets، أنشئ سراً جديداً للعميل

2. إعداد متغيرات البيئة في .env:

  AZURE_CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AZURE_TENANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  

3. إعادة تشغيل حاوية التطبيق:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

يمكن للمستخدمين في مستأجر Azure AD الآن تسجيل الدخول إلى rtCloud باستخدام بيانات اعتماد Microsoft الخاصة بهم.


تعطيل SSO

للعودة إلى المصادقة المحلية، احذف أو علّق جميع المتغيرات المتعلقة بـ SSO من .env، ثم أعد تشغيل حاوية التطبيق:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

إذا كنت تستخدم Keycloak المدمج، أوقفه بحذف خيار --profile embed-keycloak وتشغيل docker compose down متبوعاً بـ up -d بدون الملف الشخصي.

هل كانت هذه الصفحة مفيدة؟