SSO

كيفية إعداد الدخول الموحّد (SSO) عبر SAML2.

SSO

يتوفّر الدخول الموحّد (عبر SAML2) في OpenReplay Enterprise Edition فقط.

إعداد موفّر الهوية (IDP)

Section titled إعداد موفّر الهوية (IDP)

في لوحة تحكّم موفّر الهوية الخاص بك، أنشئ تطبيقًا جديدًا باسم openreplay (يمكنك استخدام هذه الأيقونة). في صفحة الإعداد، تأكّد من ضبط القيمة التالية (يُرجى التأكّد من استبدال YOUR_DOMAIN بالقيمة الصحيحة، على سبيل المثال https://openreplay.mycompany.com):

المتغيّرالقيمة
ACS URL (يُسمّى أيضًا Single Sign On URL أو Consumer URL)YOUR_DOMAIN/api/sso/saml2/acs/
Entity ID (يُسمّى أيضًا Audience)YOUR_DOMAIN/api/sso/saml2/metadata/
Single Logout URL (يُسمّى أيضًا SLO URL)YOUR_DOMAIN/api/sso/saml2/sls/ (اختياري)
Name ID (يكون أحيانًا قابلاً للتهيئة في قسم ‘Attribute Statements’ أو قسم ‘Parameters’)Email أو EmailAddress أو urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress، وذلك بحسب موفّر الهوية الخاص بك
SAML initiatorاضبطه على Service Provider (اختياري)

في قسم ‘Attribute Statements’ أو قسم ‘Parameters’، يُرجى التأكّد من تعريف الحقول التالية:

الحقلالقيمة
tenantKeyTENANT_KEY يمكن العثور على قيمته في Dashboard ضمن ‘Preferences’ > ‘Account’ (يجب عدم إضافة هذه السمة إذا كنت تستخدم خطّة Cloud Dedicated الخاصة بنا)
firstNameuser.firstName
lastNameuser.lastName
internalIdالمعرّف الداخلي أو user.email (معرّف المستخدم في نظام إدارة الهويات الخاص بك) (اختياري)
groupsيمثّل دور المستخدم وصلاحية المسؤول الخاصة به في OpenReplay، وبحسب موفّر الهوية الخاص بك قد يكون user.role أو group، وما إلى ذلك (اختياري، القيمة الافتراضية = member بدون صلاحية مسؤول)، ولتبسيط إدارة أدوار OpenReplay من جانب موفّر الهوية (IdP)، يمكنك إنشاء مجموعة باسم OpenReplay-admin تضمّ المستخدمين الذين يملكون صلاحية المسؤول، ومجموعة باسم OpenReplay-member تضمّ المستخدمين الذين يحملون الدور ‘member’

ينبغي أن تتوفّر لديك الآن جميع القيم المطلوبة للخطوة/القسم التالي.

إذا كنت تستخدم خطّة Cloud dedicated الخاصة بنا، فانتقل إلى Console ثم انقر على المثيل (instance) واضبط المتغيّرات ضمن قسم SSO.

أما إذا كنت تشغّل Enterprise Edition الخاصة بنا، فشغّل openreplay -e، ثم أزِل التعليق وحدِّث متغيّرات البيئة أدناه في قسم chalice:

المتغيّرالوصف
idp_entityIdقيمة entityId الخاصة بموفّر الهوية لديك، ويُشار إليها أيضًا بـ Issuer URL
idp_sso_urlقيمة singleSignOnService الخاصة بموفّر الهوية لديك، ويُشار إليها أيضًا بـ SAML 2.0 Endpoint (HTTP)
idp_x509certقيمة x509cert، ويجب أن تكون سلسلة نصّية من سطر واحد، بدون فواصل أسطر. يمكنك استخدام هذه الأداة لتنسيق قيمتك
idp_nameاسم موفّر الهوية (اختياري)
idp_sls_urlقيمة singleLogoutService الخاصة بموفّر الهوية لديك، ويُشار إليها أيضًا بـ SLO Endpoint (HTTP) (اختياري)
enforce_SSOإذا ضُبط على true، فستُحظر جميع عمليات الاتصال باستخدام اسم المستخدم وكلمة المرور (اختياري، القيمة الافتراضية=false)
idp_group_prefixesبادئات أسماء مجموعات موفّر الهوية (IdP) (اختياري، القيمة الافتراضية=OpenReplay-,or-)

بعد ذلك، احفظ واخرج باستخدام :wq لتسري التغييرات:

هذا الأمر اختياري، إذ يمكنك إضافة شهادة x509 لمزيد من الأمان في الدخول الموحّد (SSO):

  1. شغّل هذا الأمر على خادمك أو على جهازك الآمن (يمكنك تغيير مدّة صلاحية شهادتك وفقًا لاحتياجاتك):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout openreplay-sso.key -out openreplay-sso.crt
  1. على خادمك، شغّل openreplay -e
  2. ضمن قسم chalice، أضِف متغيّرات البيئة التالية:
  • sp_crt: يجب أن تكون سلسلة نصّية من سطر واحد، بدون فواصل أسطر، من ملف ‘openreplay-sso.crt’ المُولَّد (يمكنك استخدام هذه الأداة لتنسيق قيمتك)
  • sp_key: يجب أن تكون سلسلة نصّية من سطر واحد، بدون فواصل أسطر، من ملف ‘openreplay-sso.key’ المُولَّد
  1. احفظ واخرج باستخدام :wq لتسري التغييرات
  2. أضِف ملف ‘openreplay-sso.crt’ المُولَّد إلى إعداد تطبيق موفّر الهوية الخاص بك

مثال باستخدام Okta

Section titled مثال باستخدام Okta
  1. سجّل الدخول إلى لوحة إدارة Okta وانتقل إلى ‘Applications’ > ‘Applications’
  2. اضغط على ‘Create new app integration’، ثم اختر SAML 2.0 واضغط على ‘Next’
  3. اضبط ‘App Name’ على OpenReplay (يمكنك رفع هذه الأيقونة) لتطبيقك) ثم اضغط على ‘Next’
  4. اضبط:
  • Single sign on URL على YOUR_DOMAIN/api/sso/saml2/acs/
  • Audience URI (SP Entity ID) على YOUR_DOMAIN/api/sso/saml2/metadata/
  • Name ID format على EmailAddress
  1. اضغط على Next، واختر ‘This is an internal app that we have created’ ثم اضغط على ‘Finish’
  2. في علامة التبويب Sign On، مرِّر للأسفل واضغط على ‘Show legacy configuration’ ثم اضغط على ‘Edit’
  3. عرِّف الحقول أدناه في ‘Profile Attribute Statements’:
  • tenantKey: التنسيق Basic واضبط القيمة على TENANT_KEY، وتُوجَد في لوحة OpenReplay ضمن ‘Preferences’ > ‘Account’ (يجب عدم إضافة هذه السمة إذا كنت تستخدم خطّة Cloud Dedicated الخاصة بنا)
  • firstName: التنسيق Basic واضبط القيمة على user.firstName
  • lastName: التنسيق Basic واضبط القيمة على user.lastName
  • internalId: التنسيق Basic واضبط القيمة على user.email
  1. عرِّف الحقل أدناه في ‘Group Attribute Statement’ (هذا اختياري):
  • groups: التنسيق Basic المرشّح Match Regex القيمة OpenReplay-* (أو يمكنك تحديد مرشّح وتعبير منتظم مختلفين وفقًا لاحتياجاتك)
  1. اضغط على ‘save’ ومرِّر للأعلى إلى اليمين واضغط على ‘View Setup Instructions’ لرؤية إعداد SAML2 الخاص بك

إذا كنت تستخدم خطّة Cloud dedicated الخاصة بنا، فانتقل إلى Console ثم انقر على المثيل (instance) واضبط المتغيّرات ضمن قسم SSO.

أما إذا كنت تشغّل Enterprise Edition الخاصة بنا:

  1. اتصل عبر SSH بتثبيت OpenReplay الخاص بك وشغّل openreplay -e
  2. ضمن قسم chalice، أزِل التعليق ثم اضبط متغيّرات البيئة التالية:
  • idp_entityId: Identity Provider Issuer
  • idp_sso_url: Identity Provider Single Sign-On URL
  • idp_x509cert: شهادة X.509، ويجب أن تكون سلسلة نصّية من سطر واحد، بدون فواصل أسطر (يمكنك استخدام هذه الأداة لتنسيق قيمتك)
  • idp_name: Okta
  1. أخيرًا، احفظ واخرج باستخدام :wq لتسري التغييرات

مثال باستخدام Azure Active Directory

Section titled مثال باستخدام Azure Active Directory
  1. سجّل الدخول إلى بوّابة Azure الخاصة بك وانتقل إلى ‘Azure Active Directory’
  2. اضغط على ’+ Add’، واختر ‘Enterprise application’ ثم انقر على ‘Create your own application’
  3. اضبط ‘App Name’ على OpenReplay ثم اختر ‘Integrate any other application you don’t find in the gallery (Non-gallery)’ واضغط على ‘Create’
  4. انتقل إلى ‘Single sign-on’ في القائمة الجانبية اليسرى واضبط القيم أدناه في كتلة ‘Basic SAML Configuration’:
  • Identifier (Entity ID) على YOUR_DOMAIN/api/sso/saml2/metadata/
  • Reply URL (Assertion Consumer Service URL) على YOUR_DOMAIN/api/sso/saml2/acs/
  • Logout URL على YOUR_DOMAIN/api/sso/saml2/sls/
  1. أضِف المطالبات (claims) أدناه في كتلة ‘Attribute & Claims’ وتأكّد من ترك حقل ‘Namespace’ فارغًا لكلٍّ منها:
  • tenantKey: اضبط القيمة على TENANT_KEY، وتُوجَد في لوحة OpenReplay ضمن ‘Preferences’ > ‘Account’ (يجب عدم إضافة هذه السمة/المطالبة إذا كنت تستخدم خطّة Cloud Dedicated الخاصة بنا)
  • firstName: اضبط القيمة على user.givenname
  • lastName: اضبط القيمة على user.surname
  • internalId: اضبط القيمة على user.mail
  1. انتقل إلى ‘Users and groups’ وعيِّن المستخدمين الذين تختارهم للتطبيق

إذا كنت تستخدم خطّة Cloud dedicated الخاصة بنا، فانتقل إلى Console ثم انقر على المثيل (instance) واضبط المتغيّرات ضمن قسم SSO (تُوجَد القيم في ‘Azure Active Directory’ > ‘OpenReplay’ > ‘Single sign-on’).

أما إذا كنت تشغّل Enterprise Edition الخاصة بنا:

  1. اتصل عبر SSH بتثبيت OpenReplay الخاص بك وشغّل openreplay -e
  2. ضمن قسم chalice، أزِل التعليق ثم اضبط متغيّرات البيئة التالية (تُوجَد القيم في ‘Azure Active Directory’ > ‘OpenReplay’ > ‘Single sign-on’):
  • idp_entityId: Azure AD Identifier
  • idp_sso_url: Login URL
  • idp_sls_url: Logout URL
  • idp_x509cert: شهادة X.509، ويجب أن تكون سلسلة نصّية من سطر واحد، بدون فواصل أسطر (يمكنك استخدام هذه الأداة لتنسيق قيمتك)
  • idp_name: Active Directory
  1. أخيرًا، احفظ واخرج باستخدام :wq لتسري التغييرات

مثال باستخدام Google Workspace (المعروف سابقًا بـ G Suite)

Section titled مثال باستخدام Google Workspace (المعروف سابقًا بـ G Suite)

إضافة سمات مخصّصة:

Section titled إضافة سمات مخصّصة:
  1. في وحدة تحكّم مسؤول Google، انتقل إلى ‘Directory’ > ‘Users’ > ‘More options’ > ‘Manage custom attributes’.
  2. انقر على ‘Add Custom Attribute’.
  3. اضبط الحقول التالية:
  • Category: ‘OpenReplay’
  • Custom fields:
  • Name: ‘role’
  • Info type: ‘Text’
  • Visibility: ‘Visible to user and admin’
  • No. of values: ‘Single-value’
  • Custom fields:
  • Name: ‘adminPrivileges’
  • Info type: ‘Yes or No’
  • Visibility: ‘Visible to user and admin’
  • No. of values: ‘Single-value’
  1. انقر على ‘Add’
  2. لإضافة قيم إلى السمات المخصّصة الجديدة، انتقل إلى ‘Users’
  3. اختر المستخدم (المستخدمين) المطلوب
  4. انقر على ‘User information’ ثم عدِّل قسم ‘OpenReplay’
  5. غيِّر قيمة role إلى الدور المطلوب في ‘OpenReplay’ (يجب أن يطابق الدور ذلك المُنشأ في لوحة OpenReplay ضمن ‘Preferences’ > ‘Roles’)
  6. غيِّر قيمة adminPrivileges إلى ‘Yes’ إذا كان يُسمح للمستخدم بامتلاك صلاحيات مسؤول في OpenReplay
  7. انقر على ‘Save’
  1. سجّل الدخول إلى وحدة تحكّم مسؤول Google وانتقل إلى ‘Apps’
  2. اضغط على ‘Web and mobile apps’ ثم انقر على ‘Add app’ > ‘Add custom SAML app’
  3. اضبط ‘App name’ على OpenReplay (يمكنك رفع هذه الأيقونة من أجل ‘App icon”) ثم اضغط على ‘Continue’
  4. انسخ ‘SSO URL’ و’Entity ID’ و’Certificate’ ثم انقر على ‘Continue’ (سنستخدم هذه القيم في الخطوة 11)
  5. اضبط:
  • ACS URL على YOUR_DOMAIN/api/sso/saml2/acs/TENANT_KEY/ (TENANT_KEY يُوجَد في لوحة OpenReplay ضمن ‘Preferences’ > ‘Account’، لكن إذا كنت تستخدم خطّة Cloud Dedicated الخاصة بنا، فاترك قيمة tenantKey فارغة)
  • Entity ID على YOUR_DOMAIN/api/sso/saml2/metadata/
  • Name ID format على Email
  • Name ID على Basic information > Primary Email
  1. انقر على ‘Continue’ ثم اضغط على ‘Add Mapping’ لإضافة السمات أدناه:
  • Basic information > First Name -> firstName
  • Basic information > Last Name -> lastName
  • Basic information > Primary Email -> internalId
  • OpenReplay > groups -> groups
  1. انقر على ‘Finish’
  2. في وحدة تحكّم مسؤول Google، انتقل إلى ‘Apps’ > ‘Web and mobile apps’ واختر ‘OpenReplay’
  3. انقر على ‘User access’، واختر ‘ON for everyone’ ثم اضغط على ‘Save’

إذا كنت تستخدم خطّة Cloud dedicated الخاصة بنا، فانتقل إلى Console ثم انقر على المثيل (instance) واضبط المتغيّرات ضمن قسم SSO.

أما إذا كنت تشغّل Enterprise Edition الخاصة بنا:

  1. اتصل عبر SSH بتثبيت OpenReplay الخاص بك وشغّل openreplay -e
  2. ضمن قسم chalice > env، أزِل التعليق واضبط السمات التالية باستخدام القيم من الخطوة 4:
  • idp_sso_url: الصق قيمة ‘SSO URL’
  • idp_entityId: الصق قيمة ‘Entity ID’
  • idp_x509cert: استخدم هذه الأداة لتنسيق الشهادة المنسوخة/المُنزَّلة
  • idp_name: اضبط القيمة على G-Suite
  • idp_tenantKey: TENANT_KEY يُوجَد في لوحة OpenReplay ضمن ‘Preferences’ > ‘Account’
  1. أخيرًا، احفظ واخرج باستخدام :wq لتسري التغييرات

مثال باستخدام JumpCloud

Section titled مثال باستخدام JumpCloud
  1. سجّل الدخول إلى لوحة إدارة JumpCloud وفي القائمة اليسرى، انتقل إلى ‘SSO’
  2. اضغط على ’+ Add New Application’، ثم اختر ‘Custom SAML App’
  3. اضبط ‘Display Label’ على OpenReplay (يمكنك رفع هذه الأيقونة لتطبيقك) ثم انتقل إلى علامة التبويب ‘SSO’
  4. اضبط:
  • IdP Entity ID على openreplay/TENANT_KEY (TENANT_KEY يُوجَد في لوحة OpenReplay ضمن ‘Preferences’ > ‘Account’، لكن إذا كنت تستخدم خطّة Cloud Dedicated الخاصة بنا، فاترك قيمة tenantKey فارغة)
  • SP Entity ID على YOUR_DOMAIN/api/sso/saml2/metadata/
  • ACS URL على YOUR_DOMAIN/api/sso/saml2/acs/
  • SAMLSubject NameID على email
  • SAMLSubject NameID Format: على urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
  • Signature Algorithm على RSA-SHA256
  • فعِّل Sign Assertion
  • IDP URL بحيث ينتهي بـ openreplay-TENANT_KEY (لا يمكن تغيير هذه القيمة لاحقًا، وإذا كنت تستخدم خطّة Cloud Dedicated الخاصة بنا، فاترك جزء tenantKey فارغًا)
  1. إذا اتّبعت تعليمات شهادة OpenReplay، فيمكنك رفع ملف ‘openreplay-sso.crt’ المُولَّد بالضغط على ‘Upload SP Certificate’، وإلا فتجاهل هذه الخطوة
  2. عرِّف الحقول أدناه في ‘USER ATTRIBUTE MAPPING’ بالضغط على زرّ ‘add attribute’:
  • firstName: اضبط القيمة على firstname
  • lastName: اضبط القيمة على lastname
  • internalId: اضبط القيمة على email
  • groups: اختياري، دور المستخدم وصلاحية المسؤول الخاصة به في OpenReplay، فإذا كانت قيمة ثابتة لجميع المستخدمين، فينبغي أن تعرّفها في الخطوة التالية، وإلا فعليك إضافة سمة نصّية جديدة إلى مجموعة JumpCloud، وتسميتها OpenReplay-groups وضبط القيمة على اسم الدور، ثم في إعداد SSO، اختر ‘Custom User or Group Attribute’ واضبط القيمة على OpenReplay-groups.
  1. عرِّف الحقول أدناه في ‘CONSTANT ATTRIBUTES’ بالضغط على زرّ ‘add attribute’:
  • tenantKey: اضبط القيمة على TENANT_KEY، وتُوجَد في لوحة OpenReplay ضمن ‘Preferences’ > ‘Account’ (يجب عدم إضافة هذه السمة إذا كنت تستخدم خطّة Cloud Dedicated الخاصة بنا)
  • groups: اختياري، تجاهله إذا عُرِّف في الخطوة السابقة، دور المستخدم وصلاحية المسؤول الخاصة به في OpenReplay، ويجب أن يطابق اسم الدور المُعرَّف مسبقًا في OpenReplay (القيمة الافتراضية = member بدون صلاحية مسؤول)
  1. في هذه المرحلة، يمكنك الانتقال إلى علامة التبويب ‘User Groups’، واختيار مجموعة المستخدمين الذين سيُتاح لهم الوصول إلى OpenReplay، أو يمكنك فعل ذلك لاحقًا
  2. اضغط على ‘activate’ و’continue’ في النافذة المنبثقة للتأكيد
  3. اضغط على أيقونة تطبيق OpenReplay الجديد، ثم من القائمة المنسدلة اليسرى ‘IDP Certificate Valid’ اختر ‘Download certificate’

إذا كنت تستخدم خطّة Cloud dedicated الخاصة بنا، فانتقل إلى Console ثم انقر على المثيل (instance) واضبط المتغيّرات ضمن قسم SSO.

أما إذا كنت تشغّل Enterprise Edition الخاصة بنا:

  1. اتصل عبر SSH بتثبيت OpenReplay الخاص بك وشغّل openreplay -e
  2. ضمن قسم chalice، أزِل التعليق ثم اضبط متغيّرات البيئة التالية:
  • idp_entityId: openreplay/TENANT_KEY
  • idp_sso_url: https://sso.jumpcloud.com/saml2/openreplay-TENANT_KEY
  • idp_x509cert: الشهادة المُنزَّلة، ويجب أن تكون سلسلة نصّية من سطر واحد، بدون فواصل أسطر (يمكنك استخدام هذه الأداة لتنسيق قيمتك)
  • idp_name: JumpCloud
  1. أخيرًا، احفظ واخرج باستخدام :wq لتسري التغييرات

توفير SCIM (نظام إدارة الهوية عبر النطاقات، System for Cross-domain Identity Management)

Section titled توفير SCIM (نظام إدارة الهوية عبر النطاقات، System for Cross-domain Identity Management)

يدعم Openreplay خيار توفير هويات المستخدمين في Enterprise Edition.

للتكامل مع خدمة SCIM الخاصة بـ Openreplay، ما عليك سوى تمكين توفير SCIM في لوحة تحكّم موفّر الهوية الخاص بك. يُرجى التأكّد من ضبط القيم التالية لضمان تكامل سلس:

المتغيّرالوصف
SCIM connector base URLYOUR_DOMAIN/api/sso/scim/v2/
User unique identifier field nameemail
Support provisioning actionsPush new users, Push profile updates, Push groups
Authentication modeOAuth2
Access token endpointYOUR_DOMAIN/api/sso/scim/v2/token/
Authorization endpointYOUR_DOMAIN/api/sso/scim/v2/authorize/
Client idTENANT_KEY يمكن العثور على قيمته في Dashboard ضمن ‘Preferences’ > ‘Account’
Client secretيمكن العثور على قيمته بتنفيذ هذا الاستعلام في قاعدة بيانات Postgres الخاصة بك: SELECT tenant_secret FROM tenants WHERE tenant_key = 'TENANT_KEY';

بعد ضبط هذه القيم، اتّبع الإرشادات من لوحة تحكّم موفّر الهوية الخاص بك لاختبار التكامل وتفويض التطبيق.

بعد ذلك، ستتمكّن من توفير هويات المستخدمين باستخدام Openreplay بصفته موفّر خدمة SCIM.

ملاحظة: على الرغم من أن Openreplay يعمل بصفته موفّر خدمة SCIM، فإنه لا يدعم تقسيم المستخدمين إلى مجموعات متعدّدة (أي يمكن أن ينتمي كل مستخدم إلى مجموعة واحدة فقط). وإذا لم يُلتزَم بذلك، فقد يُسنَد المستخدم إلى عدد من المشاريع أقلّ أو أكثر من المتوقّع، وقد تكون لديه أذونات أقلّ أو أكثر في تطبيق Openreplay.

مثال باستخدام Okta

Section titled مثال باستخدام Okta

في تطبيق SAML 2.0 الخاص بك، نفّذ ما يلي

  1. انقر على علامة التبويب General
  2. في قسم App Settings، انقر على Edit
  3. في حقل Provisioning، اختر SCIM، وانقر على Save

اختيار خيارات التوفير

Section titled اختيار خيارات التوفير
  1. انقر على علامة التبويب Provisioning. تظهر إعدادات اتصال SCIM ضمن Settings > Integration.
  2. في Settings > Integration، انقر على Edit.
  3. حدِّد قيمة SCIM connector base URL واسم حقل المعرّف الفريد لمستخدميك المذكوران أعلاه.
  4. ضمن Supported provisioning actions، اختر إجراءات التوفير المذكورة أعلاه.
  5. اضبط القائمة المنسدلة Authentication Mode على القيمة المذكورة أعلاه.
  6. اضبط Access token endpoint وAuthorization endpoint وClient id وClient secret كما هو مذكور أعلاه.
  7. انقر على Save.
  8. انقر على Authentiate application.
  9. في علامة التبويب Provisioning، انقر على To App.
  10. انقر على Edit، وفعِّل Create Users وUpdate User Attributes وDeactivate Users واحفظ التغييرات.
  • قبل بدء الخطوة التالية، نوصي بإنشاء مجموعات جديدة في Okta، باسم OpenReplay-admin حيث تدرج المستخدمين الذين يملكون صلاحية المسؤول في OpenReplay، وOpenReplay-members حيث تدرج المستخدمين الذين يحملون الدور member في OpenReplay، …
  1. انتقل إلى علامة التبويب Push Groups، وانقر على + Push Groups (بحسب الاسم أو بحسب القاعدة)، واختر المجموعة التي تريد دفعها إلى OpenReplay، واضغط على save
  • في هذه المرحلة، تمثّل المجموعات المدفوعة الأدوار وصلاحية المسؤول في OpenReplay، وهي لا تتضمّن قائمة المستخدمين المُوفَّرين لـ OpenReplay.
  1. انتقل إلى علامة التبويب Assignmets، وأضِف المستخدمين بالطريقة التي تناسبك (باستخدام الأشخاص أو المجموعات)

وصل الردّ عبر http بدلاً من https

Section titled وصل الردّ عبر http بدلاً من https

هذا أمر شائع جدًّا، ويعود إلى عدم وجود ترويسة ‘X-Forwarded-Proto’ في الطلب. ولحلّ ذلك، تأكّد من أن موازِن الحمل (Load Balancer) يمرّر الترويسة بشكل صحيح إلى خلفية OpenReplay، وشغّل openreplay -e، وضمن قسم ingress-nginx > config، أزِل التعليق عن السطر use-forwarded-headers: true.