تثبيت تطبيق Apigee الدخول المُوحَّد (SSO) للتعرُّف على مدى التوفُّر العالي

يمكنك تثبيت عدة مثيلات من Apigee SSO لتحقيق أعلى مستوى من توفُّر الخدمة في سيناريوهَين:

  • في بيئة مركز بيانات واحد، يمكنك تثبيت مثيلَين من Apigee SSO لإنشاء بيئة عالية التوفُّر، ما يعني أنّ النظام سيستمر في العمل إذا تعطّل أحد وحدات الدخول المُوحَّد.
  • في بيئة تحتوي على مركزَي بيانات، يمكنك تثبيت Apigee SSO في كلا مركزَي البيانات حتى يستمر النظام في العمل إذا تعطّل Apigee SSO في أحد مركزَي البيانات.

تثبيت وحدتَي Apigee SSO في مركز البيانات نفسه

يمكنك نشر مثيلَين من Apigee SSO على عقدتَي apigee-openldap مختلفتَين في مركز بيانات واحد لتحقيق أعلى مستوى من توفُّر الخدمة. في هذا السيناريو:

  • يجب ربط كلا مثيلَي Apigee SSO بخادم Postgres نفسه. تنصح Apigee باستخدام خادم Postgres مخصّص لـ Apigee SSO وليس خادم Postgres نفسه الذي ثبَّتته مع Edge. يجب أن يشترك كلا المثيلَين في قاعدة بيانات apigee_dex للحفاظ على الحالة.
  • لا يلزم توزيع مفاتيح JWT يدويًا: على عكس مكوّن UAA القديم، يخزِّن Apigee SSO الحديث مجموعات مفاتيح الويب JSON (JWKS) وحالة OAuth2 ويُزامِنها بشكل أصلي في قاعدة بيانات PostgreSQL المشترَكة. لست بحاجة إلى نسخ مفاتيح التوقيع يدويًا بين العُقد.
  • مزامنة بيانات الاعتماد لـ OpenLDAP الداخلي: إذا كنت تستخدم OpenLDAP الداخلي التلقائي، يستخدِم Apigee SSO حساب خدمة مخصّصًا للقراءة فقط (cn=sso-reader). لتحقيق أعلى مستوى من توفُّر الخدمة (العقدة 2)، على المشرف إما ضبط SSO_READER_PW نفسه في /opt/silent.conf على كلا العقدتَين، أو نسخ /opt/apigee/data/apigee-openldap/sso-reader.key من العقدة 1 إلى العقدة 2 قبل تشغيل setup-sso على العقدة 2.

    لنسخ ملف المفتاح يدويًا، نفِّذ الأوامر التالية على العقدة 2:

    scp node1_ip:/opt/apigee/data/apigee-openldap/sso-reader.key /opt/apigee/data/apigee-openldap/sso-reader.key
    chown apigee:apigee /opt/apigee/data/apigee-openldap/sso-reader.key
    chmod 600 /opt/apigee/data/apigee-openldap/sso-reader.key
  • تحتاج إلى موازنة حمل أمام مثيلَي Apigee SSO:
    • اضبط موازنة الحمل لإجراء فحص سلامة TCP أو HTTP على الدخول المُوحَّد. بالنسبة إلى HTTP، أضِف /healthz:
      http_or_https://edge_sso_IP_DNS:9099/healthz

      حدِّد المنفذ كما ضبطه Apigee SSO. المنفذ 9099 هو المنفذ التلقائي.

    • تعتمد بعض إعدادات موازنة الحمل على ما إذا كنت قد فعّلت بروتوكول HTTPS على Apigee SSO. راجِع الأقسام التالية لمزيد من المعلومات.

الوصول إلى Apigee SSO عبر HTTP

إذا كنت تستخدم الوصول إلى Apigee SSO عبر HTTP، اضبط موازنة الحمل على ما يلي:

  • استخدِم وضع HTTP للاتصال بـ Apigee SSO.
  • استخدِم المنفذ نفسه الذي يستخدمه Apigee SSO.

يستمع Apigee SSO تلقائيًا لطلبات HTTP على المنفذ 9099. يمكنك اختياريًا استخدام SSO_PUBLIC_URL_PORT في ملف /opt/silent.conf لضبط المنفذ. إذا استخدمت SSO_PUBLIC_URL_PORT لتغيير المنفذ من المنفذ التلقائي، تأكَّد من أنّ موازنة الحمل تستمع على هذا المنفذ.

على سبيل المثال، يمكنك ضبط المنفذ على 9033 على كل مثيل من مثيلات الدخول المُوحَّد من خلال إضافة ما يلي إلى ملف الإعدادات:

SSO_PUBLIC_URL_PORT=9033

بعد ذلك، اضبط موازنة الحمل للاستماع على المنفذ 9033 وإعادة توجيه الطلبات إلى مثيلات الدخول المُوحَّد على المنفذ 9033. عنوان URL العلني للمصدر في Apigee SSO في هذا السيناريو هو:

http://LB_DNS_NAME:9033

الوصول إلى Apigee SSO عبر HTTPS

يمكنك ضبط أعلى مستوى من توفُّر الخدمة باستخدام HTTPS بأحد الوضعَين التاليَين. في كلا السيناريوهَين، اتّبِع خطوات الإعداد التفصيلية في مقالة ضبط Apigee SSO للوصول عبر HTTPS.

الوضع 1: موازنة الحمل تنهي بروتوكول أمان طبقة النقل (SSL_PROXY)

إذا كانت موازنة الحمل تنهي اتصال بروتوكول أمان طبقة النقل، يجب أن تعيد توجيه حركة مرور HTTP العادية إلى مثيلات Apigee SSO.

  • اضبط SSO_PUBLIC_URL_SCHEME=https وSSO_PUBLIC_URL_PORT=443 (أو منفذ HTTPS العلني لموازنة الحمل) في ملف /opt/silent.conf.
  • اضبط موازنة الحمل لاستخدام وضع HTTP للاتصال بمثيلات Apigee SSO في الخلفية.
  • اضبط موازنة الحمل لإعادة توجيه الطلبات إلى مثيلات Apigee SSO على منفذ ربط HTTP المحلي (تلقائيًا: 9099).

الوضع 2: Apigee SSO ينهي بروتوكول أمان طبقة النقل (SSL_TERMINATION)

إذا كنت تريد أن تنهي مثيلات Apigee SSO اتصالات بروتوكول أمان طبقة النقل مباشرةً، يجب أن تمرِّر موازنة الحمل حركة المرور المشفرة إليها.

  • اضبط SSO_PUBLIC_URL_SCHEME=https وSSO_PUBLIC_URL_PORT=9443 (أو المنفذ الآمن الذي اخترته) في ملف /opt/silent.conf.
  • اضبط موازنة الحمل لاستخدام وضع TCP (وليس وضع HTTP) للاتصال بالخلفية، ما يسمح لـ Apigee SSO بإنهاء بروتوكول أمان طبقة النقل.
  • اضبط موازنة الحمل للاستماع على المنفذ نفسه الذي يستخدمه Apigee SSO، وإعادة توجيه الطلبات إلى مثيلات Apigee SSO على المنفذ الآمن (على سبيل المثال، 9443).

تثبيت Apigee SSO في مراكز بيانات متعددة

في بيئة تحتوي على مراكز بيانات متعددة، يمكنك تثبيت مثيل من Apigee SSO (عبر apigee-openldap) في كل مركز بيانات. يتعامل أحد مثيلات الدخول المُوحَّد مع كل حركة المرور. إذا تعطّل هذا المثيل، يمكنك نقل حركة المرور إلى مثيل الدخول المُوحَّد الثاني.

قبل تثبيت Apigee SSO في مركزَي بيانات، تحتاج إلى ما يلي:

  • عنوان IP أو اسم نطاق خادم Postgres الرئيسي

    في بيئة تحتوي على مراكز بيانات متعددة، يمكنك عادةً تثبيت خادم Postgres واحد في كل مركز بيانات وضبطه في وضع النسخ المتماثل "الرئيسي-الاحتياطي". في هذا المثال، يحتوي مركز البيانات 1 على خادم Postgres الرئيسي ويحتوي مركز البيانات 2 على الخادم الاحتياطي. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إعداد النسخ المتماثل "الرئيسي-الاحتياطي" لـ Postgres.

  • إدخال واحد في نظام أسماء النطاقات يشير إلى أحد مثيلات الدخول المُوحَّد على سبيل المثال، يمكنك إنشاء إدخال في نظام أسماء النطاقات بالصيغة التالية، والذي يشير إلى مثيل الدخول المُوحَّد في مركز البيانات 1:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • بيانات اعتماد القارئ في OpenLDAP التي تمت مزامنتها إذا كنت تستخدم OpenLDAP الداخلي، عليك التأكّد من أنّ كلا مركزَي البيانات يستخدمان SSO_READER_PW نفسه تمامًا أو يشتركان في ملف sso-reader.key نفسه لمنع إلغاء مزامنة المجموعة أثناء الإعداد.

عند ضبط Apigee SSO في كل مركز بيانات، يمكنك توجيه كلا الإعدادَين إلى خادم Postgres الرئيسي في مركز البيانات 1:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

عليك أيضًا ضبط كلا مركزَي البيانات لاستخدام إدخال نظام أسماء النطاقات المشترَك كعنوان URL للمصدر الذي يمكن الوصول إليه علنًا. بما أنّ النص البرمجي setup-sso ينشئ عنوان URL للمصدر تلقائيًا ويضيف المنفذ، عليك ضبط عنوان URL الدقيق مباشرةً في /opt/apigee/customer/application/openldap.properties بدلاً من /opt/silent.conf لمنع إضافة المنفذ إذا لم يكن مطلوبًا:

# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.com

التعامل مع عملية الانتقال إلى نظام احتياطي في الدخول المُوحَّد

إذا تعطّل مثيل Apigee SSO (أو خادم Postgres الرئيسي) في مركز البيانات 1، يمكنك الانتقال إلى مثيل الدخول المُوحَّد في مركز البيانات 2 بدون فقدان جلسات OAuth النشطة:

  1. حوِّل خادم Postgres الاحتياطي في مركز البيانات 2 إلى خادم رئيسي كما هو موضّح في مقالة التعامل مع عملية الانتقال إلى نظام احتياطي في قاعدة بيانات PostgreSQL.
  2. عدِّل سجلّ نظام أسماء النطاقات للإشارة من my-sso.domain.com إلى مثيل الدخول المُوحَّد في مركز البيانات 2:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. عدِّل ملف /opt/silent.conf لـ Apigee SSO في مركز البيانات 2 للإشارة إلى خادم Postgres الرئيسي الجديد في مركز البيانات 2:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. أعِد ضبط Apigee SSO وأعِد تشغيله في مركز البيانات 2 لتعديل اتصاله بشكل أصلي:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf