হাই অ্যাভেলিবিলিটির জন্য Apigee SSO ইনস্টল করা

দুটি পরিস্থিতিতে উচ্চ উপলভ্যতার জন্য আপনি Apigee SSO-এর একাধিক ইনস্ট্যান্স ইনস্টল করেন:

  • একটি ডেটা সেন্টার এনভায়রনমেন্টে, উচ্চ উপলভ্যতা এনভায়রনমেন্ট তৈরি করতে দুটি Apigee SSO ইনস্ট্যান্স ইনস্টল করুন, যার অর্থ হল একটি SSO মডিউল বন্ধ হয়ে গেলেও সিস্টেমটি কাজ করা চালিয়ে যাবে।
  • দুটি ডেটা সেন্টার আছে এমন এনভায়রনমেন্টে, দুটি ডেটা সেন্টারেই Apigee SSO ইনস্টল করুন যাতে একটি ডেটা সেন্টারে Apigee SSO কাজ না করলেও সিস্টেম কাজ করা চালিয়ে যেতে পারে।

একই ডেটা সেন্টারে দুটি Apigee SSO মডিউল ইনস্টল করুন

হাই অ্যাভেলিবিলিটি নিশ্চিত করতে, আপনি একটি ডেটা সেন্টারে, আলাদা আলাদা apigee-openldap নোডে, Apigee SSO-এর দুটি ইনস্ট্যান্স ডেপ্লয় করেন। এই পরিস্থিতিতে:

  • Apigee SSO-এর দুটি ইনস্ট্যান্সকেই একই Postgres সার্ভারের সাথে কানেক্ট করতে হবে। Apigee SSO-এর জন্য ডেডিকেটেড Postgres সার্ভার ব্যবহার করার সাজেশন Apigee দেয়, Edge-এর সাথে ইনস্টল করা Postgres সার্ভার ব্যবহার করার সাজেশন দেয় না। স্টেট পারসিস্টেন্সের জন্য দুটি ইনস্ট্যান্সকেই apigee_dex ডেটাবেস শেয়ার করতে হবে।
  • JWT কী ম্যানুয়ালি ডিস্ট্রিবিউট করার প্রয়োজন নেই: পুরনো UAA কম্পোনেন্টের মতো নয়, আধুনিক Apigee SSO শেয়ার করা PostgreSQL ডেটাবেসে নেটিভভাবে JSON ওয়েব কী সেট (JWKS) এবং OAuth2 স্টেট স্টোর ও সিঙ্ক করে। আপনাকে নোড জুড়ে ম্যানুয়ালি সই করার কী কপি করতে হবে না।
  • ইন্টার্নাল OpenLDAP-এর জন্য ক্রেডেনশিয়াল সিঙ্ক করা: আপনি ডিফল্ট ইন্টার্নাল OpenLDAP ব্যবহার করলে, Apigee SSO একটি ডেডিকেটেড শুধু-পড়ার-জন্য পরিষেবা অ্যাকাউন্ট (cn=sso-reader) ব্যবহার করে। HA (Node 2)-এর জন্য, অ্যাডমিনকে অবশ্যই দুটি নোডেই /opt/silent.conf-এ একই SSO_READER_PW সেট করতে হবে অথবা Node 2-এ setup-sso রান করার আগে Node 1 থেকে Node 2-এ /opt/apigee/data/apigee-openldap/sso-reader.key কপি করতে হবে।

    ম্যানুয়ালি কীফাইল কপি করতে, নোড ২-এ নিম্নলিখিত কমান্ড এক্সিকিউট করুন:

    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-এর দুটি ইনস্ট্যান্সের সামনে আপনার একটি লোড ব্যালেন্সার প্রয়োজন:
    • SSO-তে TCP বা HTTP হেল্থ চেক করার জন্য লোড ব্যালেন্সার কনফিগার করুন। HTTP-এর জন্য, /healthz অন্তর্ভুক্ত করুন:
      http_or_https://edge_sso_IP_DNS:9099/healthz

      Apigee SSO-এর সেট করা পোর্ট উল্লেখ করুন। ডিফল্ট পোর্ট হল ৯০৯৯।

    • আপনি Apigee SSO-তে HTTPS চালু করেছেন কিনা তার উপর কিছু লোড ব্যালেন্সার সেটিংস নির্ভর করে। আরও তথ্যের জন্য নিম্নলিখিত বিভাগগুলি দেখুন।

Apigee SSO-তে HTTP অ্যাক্সেস

আপনি যদি Apigee SSO-তে HTTP অ্যাক্সেস ব্যবহার করেন, তাহলে লোড ব্যালেন্সারকে এগুলি করার জন্য কনফিগার করুন:

  • Apigee SSO-এর সাথে কানেক্ট করতে HTTP মোড ব্যবহার করুন।
  • Apigee SSO-এর মতো একই পোর্টে শুনুন।

ডিফল্ট হিসেবে, Apigee SSO পোর্ট 9099-এ HTTP অনুরোধের জন্য অপেক্ষা করে। বিকল্প হিসেবে, পোর্ট সেট করতে আপনার /opt/silent.conf ফাইলে SSO_PUBLIC_URL_PORT ব্যবহার করতে পারেন। আপনি ডিফল্ট পোর্ট পরিবর্তন করার জন্য SSO_PUBLIC_URL_PORT ব্যবহার করে থাকলে, নিশ্চিত করুন যে লোড ব্যালেন্সার সেই পোর্টে শুনছে।

যেমন, প্রতিটি SSO ইনস্ট্যান্সে আপনি কনফিগারেশন ফাইলে নিম্নলিখিতগুলি যোগ করে পোর্টটি ৯০৩৩-এ সেট করেছেন:

SSO_PUBLIC_URL_PORT=9033

তারপর আপনি পোর্ট ৯০৩৩-এ শোনার জন্য লোড ব্যালেন্সার কনফিগার করেন এবং পোর্ট ৯০৩৩-এ SSO ইন্সট্যান্সে অনুরোধ ফরওয়ার্ড করেন। এই পরিস্থিতিতে Apigee SSO-এর পাবলিক ইস্যুকারী URL হল:

http://LB_DNS_NAME:9033

Apigee SSO-তে HTTPS অ্যাক্সেস

আপনি নিম্নলিখিত দুটি মোডের মধ্যে যেকোনও একটি ব্যবহার করে HTTPS-এর সাথে HA কনফিগার করতে পারবেন। দুটি ক্ষেত্রেই, HTTPS অ্যাক্সেসের জন্য Apigee SSO কনফিগার করুন লিঙ্কে গিয়ে সেট-আপ করার বিস্তারিত ধাপ অনুসরণ করুন।

মোড ১: লোড ব্যালেন্সার TLS (SSL_PROXY) বন্ধ করে দেয়

আপনার লোড ব্যালেন্সার TLS কানেকশন বন্ধ করে দিলে, সেটিকে অবশ্যই Apigee SSO ইনস্ট্যান্সে সাধারণ HTTP ট্রাফিক ফরওয়ার্ড করতে হবে।

  • আপনার /opt/silent.conf ফাইলে SSO_PUBLIC_URL_SCHEME=https ও SSO_PUBLIC_URL_PORT=443 (অথবা আপনার লোড ব্যালেন্সারের পাবলিক HTTPS পোর্ট) সেট করুন।
  • ব্যাকএন্ড Apigee SSO ইনস্ট্যান্সের সাথে কানেক্ট করতে HTTP মোড ব্যবহার করার জন্য লোড ব্যালেন্সার কনফিগার করুন।
  • স্থানীয় HTTP বাইন্ড পোর্টে (ডিফল্ট: 9099) Apigee SSO ইনস্ট্যান্সে অনুরোধ ফরওয়ার্ড করার জন্য লোড ব্যালেন্সার কনফিগার করুন।

মোড ২: Apigee SSO, TLS (SSL_TERMINATION) বন্ধ করে দেয়

আপনি যদি চান যে Apigee SSO ইনস্ট্যান্স সরাসরি TLS কানেকশন বন্ধ করুক, তাহলে লোড ব্যালেন্সারকে অবশ্যই এনক্রিপ্ট করা ট্রাফিক তাদের কাছে পাঠাতে হবে।

  • আপনার /opt/silent.conf ফাইলে SSO_PUBLIC_URL_SCHEME=https এবং SSO_PUBLIC_URL_PORT=9443 (অথবা আপনার বেছে নেওয়া সুরক্ষিত পোর্ট) সেট করুন।
  • ব্যাকএন্ডের সাথে কানেক্ট করার জন্য লোড ব্যালেন্সারকে TCP মোড (HTTP মোড নয়) ব্যবহার করার জন্য কনফিগার করুন, এর ফলে Apigee SSO, TLS বন্ধ করতে পারবে।
  • Apigee SSO-এর মতো একই পোর্টে শোনার জন্য লোড ব্যালেন্সার কনফিগার করুন এবং এর সুরক্ষিত পোর্টে (যেমন, 9443) Apigee SSO ইনস্ট্যান্সের কাছে অনুরোধ ফরওয়ার্ড করুন।

একাধিক ডেটা সেন্টারে Apigee SSO ইনস্টল করা

একাধিক ডেটা সেন্টার এনভায়রনমেন্টে, আপনি প্রতিটি ডেটা সেন্টারে একটি Apigee SSO ইনস্ট্যান্স (apigee-openldap-এর মাধ্যমে) ইনস্টল করেন। একটি SSO ইনস্ট্যান্স সব ট্রাফিক ম্যানেজ করে। সেই ইনস্ট্যান্স বন্ধ হয়ে গেলে, আপনি দ্বিতীয় SSO ইনস্ট্যান্সে ট্রাফিক সুইচ করতে পারবেন।

দুটি ডেটা সেন্টারে Apigee SSO ইনস্টল করার আগে, আপনার নিম্নলিখিতগুলি প্রয়োজন:

  • মাস্টার Postgres সার্ভারের IP অ্যাড্রেস বা ডোমেন নাম।

    একাধিক ডেটা সেন্টার এনভায়রনমেন্টে, আপনি সাধারণত প্রতিটি ডেটা সেন্টারে একটি Postgres সার্ভার ইনস্টল করেন এবং সেগুলিকে মাস্টার-স্ট্যান্ডবাই রেপ্লিকেশন মোডে কনফিগার করেন। এই উদাহরণের জন্য, ডেটা সেন্টার ১-এ মাস্টার Postgres সার্ভার এবং ডেটা সেন্টার ২-এ স্ট্যান্ডবাই আছে। আরও তথ্যের জন্য, Postgres-এর জন্য প্রাইমারি-স্ট্যান্ডবাই রেপ্লিকেশন সেট-আপ করুন নিবন্ধটি দেখুন।

  • একটি SSO ইনস্ট্যান্সকে পয়েন্ট করে এমন একটি ডিএনএস এন্ট্রি। যেমন, আপনি নিম্নলিখিত ফর্ম্যাটে একটি DNS এন্ট্রি তৈরি করেন, যা ডেটা সেন্টার ১-এ SSO ইনস্ট্যান্সকে পয়েন্ট করে:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • সিঙ্ক করা OpenLDAP রিডার ক্রেডেনশিয়াল। আপনি ইন্টার্নাল OpenLDAP ব্যবহার করলে, সেট-আপের সময় ক্লাস্টার ডিসিঙ্ক্রোনাইজেশন প্রতিরোধ করতে, দুটি ডেটা সেন্টারই যাতে একই SSO_READER_PW ব্যবহার করে বা একই sso-reader.key ফাইল শেয়ার করে তা আপনাকে নিশ্চিত করতে হবে।

আপনি প্রতিটি ডেটা সেন্টারে Apigee SSO কনফিগার করার সময়, দুটি কনফিগারেশনকেই ডেটা সেন্টার ১-এর Postgres Master -এর দিকে পয়েন্ট করেন:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

এছাড়াও, সর্বজনীনভাবে অ্যাক্সেসযোগ্য ইস্যুকারী URL হিসেবে শেয়ার করা DNS এন্ট্রি ব্যবহার করার জন্য আপনাকে দুটি ডেটা সেন্টারই কনফিগার করতে হবে। যেহেতু setup-sso স্ক্রিপ্ট অটোমেটিক ইস্যুকারীর URL তৈরি করে এবং পোর্ট যোগ করে, তাই পোর্ট যোগ করা আটকাতে আপনাকে /opt/silent.conf-এর পরিবর্তে সরাসরি /opt/apigee/customer/application/openldap.properties-এ সঠিক URL সেট করতে হবে, যদি এটির প্রয়োজন না হয়:

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

SSO ফেইলওভার ম্যানেজ করা

ডেটা সেন্টার ১-এ Apigee SSO ইনস্ট্যান্স (বা এর Postgres Master) বন্ধ হয়ে গেলে, আপনি অ্যাক্টিভ OAuth সেশন না হারিয়েই ডেটা সেন্টার ২-এ SSO ইনস্ট্যান্সে পাল্টে নিতে পারবেন:

  1. PostgreSQL ডেটাবেস ফেলওভার ম্যানেজ করা-তে যেভাবে বর্ণনা করা হয়েছে সেইভাবে ডেটা সেন্টার ২-এ Postgres স্ট্যান্ডবাই সার্ভারকে মাস্টার সার্ভারে কনভার্ট করুন।
  2. ডেটা সেন্টার ২-এ SSO ইনস্ট্যান্সে my-sso.domain.com পয়েন্ট করতে আপনার ডিএনএস রেকর্ড আপডেট করুন:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. ডেটা সেন্টার ২-এ Apigee SSO-এর জন্য আপনার /opt/silent.conf ফাইল আপডেট করুন যাতে ডেটা সেন্টার ২-এ নতুন Postgres Master সার্ভারকে পয়েন্ট করে:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. ডেটা সেন্টার ২-এ Apigee SSO আবার কনফিগার ও রিস্টার্ট করুন যাতে এর কানেকশন নেটিভভাবে আপডেট করা যায়:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf