ติดตั้ง SSO ของ Apigee เพื่อให้มีความพร้อมใช้งานสูง

คุณติดตั้ง Apigee SSO หลายอินสแตนซ์เพื่อความพร้อมใช้งานสูงใน 2 สถานการณ์ต่อไปนี้

  • ในสภาพแวดล้อมศูนย์ข้อมูลเดียว ให้ติดตั้งอินสแตนซ์ Apigee SSO 2 รายการเพื่อสร้างสภาพแวดล้อมที่มีความพร้อมใช้งานสูง ซึ่งหมายความว่าระบบจะยังคงทำงานต่อไปหากโมดูล Apigee SSO รายการใดรายการหนึ่งหยุดทำงาน
  • ในสภาพแวดล้อมที่มีศูนย์ข้อมูล 2 แห่ง ให้ติดตั้ง Apigee SSO ในศูนย์ข้อมูลทั้ง 2 แห่งเพื่อให้ระบบทำงานต่อไปได้หากโมดูล Apigee SSO โมดูลใดโมดูลหนึ่งหยุดทำงาน

ติดตั้งโมดูล Apigee SSO 2 โมดูลในศูนย์ข้อมูลเดียวกัน

คุณติดตั้งใช้งาน Apigee SSO 2 อินสแตนซ์ในโหนดที่ต่างกันในศูนย์ข้อมูลเดียวเพื่อรองรับความพร้อมใช้งานสูง ในสถานการณ์นี้จะมีผลดังต่อไปนี้

  • อินสแตนซ์ทั้ง 2 รายการของ Apigee SSO ต้องเชื่อมต่อกับเซิร์ฟเวอร์ Postgres เดียวกัน Apigee ขอแนะนำให้ใช้เซิร์ฟเวอร์ Postgres เฉพาะสำหรับ Apigee SSO และไม่ใช่เซิร์ฟเวอร์ Postgres เดียวกันกับที่คุณติดตั้งด้วย Edge
  • Apigee SSO ทั้ง 2 อินสแตนซ์ต้องใช้คู่คีย์ JWT เดียวกันตามที่ระบุไว้ในพร็อพเพอร์ตี้ SSO_JWT_SIGNING_KEY_FILEPATH และ SSO_JWT_VERIFICATION_KEY_FILEPATH ในไฟล์การกำหนดค่า ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าพร็อพเพอร์ตี้เหล่านี้ได้ที่หัวข้อติดตั้งและกำหนดค่า Apigee SSO
  • คุณต้องมีตัวจัดสรรภาระงานที่ด้านหน้าของอินสแตนซ์ Apigee SSO 2 รายการ ดังนี้
    • ตัวจัดสรรภาระงานต้องรองรับความต่อเนื่องของคุกกี้ที่สร้างโดยแอปพลิเคชัน และคุกกี้เซสชันต้องมีชื่อว่า JSESSIONID
    • กำหนดค่าตัวจัดสรรภาระงานเพื่อตรวจสอบประสิทธิภาพการทำงานของ TCP หรือ HTTP ใน Apigee SSO สำหรับ TCP ให้ใช้ URL ของ Apigee SSO ดังนี้
      http_or_https://edge_sso_IP_DNS:9099

      ระบุพอร์ตตามที่ Apigee SSO กำหนด โดยค่าเริ่มต้นคือพอร์ต 9099

      สำหรับ HTTP ให้ใส่ /healthz:

      http_or_https://edge_sso_IP_DNS:9099/healthz
    • การตั้งค่าตัวจัดสรรภาระงานบางอย่างจะขึ้นอยู่กับว่าคุณเปิดใช้ HTTPS ใน Apigee SSO หรือไม่ ดูข้อมูลเพิ่มเติมได้ในส่วนต่อไปนี้

การเข้าถึง HTTP ไปยัง Apigee SSO

หากคุณใช้การเข้าถึง HTTP ไปยัง Apigee SSO ให้กำหนดค่าตัวจัดสรรภาระงานดังนี้

  • ใช้โหมด HTTP เพื่อเชื่อมต่อกับ Apigee SSO
  • ฟังบนพอร์ตเดียวกับ Apigee SSO

    โดยค่าเริ่มต้น Apigee SSO จะคอยตรวจหาคำขอ HTTP ในพอร์ต 9099 นอกจากนี้ คุณยังใช้ SSO_TOMCAT_PORT เพื่อตั้งค่าพอร์ต SSO ของ Apigee ได้ด้วย หากคุณใช้ SSO_TOMCAT_PORT เพื่อเปลี่ยนพอร์ต Apigee SSO จากค่าเริ่มต้น ให้ตรวจสอบว่าตัวจัดสรรภาระงานฟังพอร์ตนั้นอยู่

ตัวอย่างเช่น ในอินสแตนซ์ Apigee SSO แต่ละรายการ คุณตั้งค่าพอร์ตเป็น 9033 โดยเพิ่มข้อมูลต่อไปนี้ลงในไฟล์การกำหนดค่า

SSO_TOMCAT_PORT=9033

จากนั้นคุณจะกำหนดค่าตัวจัดสรรภาระงานให้คอยฟังพอร์ต 9033 และส่งต่อคำขอไปยังอินสแตนซ์ Edge SSO ในพอร์ต 9033 URL สาธารณะของ Apigee SSO ในสถานการณ์นี้คือ

http://LB_DNS_NAME:9033

การเข้าถึง HTTPS ไปยัง Apigee SSO

คุณสามารถกำหนดค่าอินสแตนซ์ Apigee SSO ให้ใช้ HTTPS ได้ ในสถานการณ์นี้ ให้ทำตามขั้นตอนในหัวข้อกำหนดค่า Apigee SSO สำหรับการเข้าถึง HTTPS ในขั้นตอนการเปิดใช้ HTTPS คุณได้ตั้งค่า SSO_TOMCAT_PROFILE ในไฟล์การกำหนดค่า Apigee SSO ดังที่แสดงด้านล่าง

SSO_TOMCAT_PROFILE=SSL_TERMINATION

นอกจากนี้ คุณยังเลือกตั้งค่าพอร์ตที่ Apigee SSO ใช้สำหรับการเข้าถึง HTTPS ได้ด้วย โดยทำดังนี้

SSO_TOMCAT_PORT=9443

จากนั้นกำหนดค่าตัวจัดสรรภาระงานให้ทำดังนี้

  • ใช้โหมด TCP ไม่ใช่โหมด HTTP เพื่อเชื่อมต่อกับ Apigee SSO
  • ฟังในพอร์ตเดียวกันกับ Apigee SSO ตามที่กำหนดโดย SSO_TOMCAT_PORT

จากนั้นกำหนดค่าตัวจัดสรรภาระงานเพื่อส่งต่อคำขอไปยังอินสแตนซ์ Apigee SSO ในพอร์ต 9433 URL สาธารณะของ Apigee SSO ในสถานการณ์นี้คือ

https://LB_DNS_NAME:9443

ติดตั้ง Apigee SSO ในศูนย์ข้อมูลหลายแห่ง

ในสภาพแวดล้อมที่มีศูนย์ข้อมูลหลายแห่ง คุณจะต้องติดตั้งอินสแตนซ์ Apigee SSO ในศูนย์ข้อมูลแต่ละแห่ง จากนั้นอินสแตนซ์ Apigee SSO รายการเดียวจะจัดการการเข้าชมทั้งหมด หากอินสแตนซ์ Apigee SSO นั้นหยุดทำงาน คุณจะเปลี่ยนไปใช้อินสแตนซ์ Apigee SSO รายการที่ 2 ได้

ก่อนติดตั้ง Apigee SSO ในศูนย์ข้อมูล 2 แห่ง คุณต้องมีสิ่งต่อไปนี้

  • ที่อยู่ IP หรือชื่อโดเมนของเซิร์ฟเวอร์ Postgres หลัก

    ในสภาพแวดล้อมศูนย์ข้อมูลหลายแห่ง โดยทั่วไปคุณจะติดตั้งเซิร์ฟเวอร์ Postgres 1 เซิร์ฟเวอร์ในศูนย์ข้อมูลแต่ละแห่ง และกำหนดค่าในโหมดการจำลองแบบ Master-Standby ในตัวอย่างนี้ ศูนย์ข้อมูล 1 มีเซิร์ฟเวอร์ Postgres หลัก และศูนย์ข้อมูล 2 มีเซิร์ฟเวอร์สแตนด์บาย ดูข้อมูลเพิ่มเติมได้ที่ตั้งค่าการจำลองแบบ Master-Standby สำหรับ Postgres

  • รายการ DNS รายการเดียวที่ชี้ไปยังอินสแตนซ์ SSO ของ Apigee 1 รายการ ตัวอย่างเช่น คุณสร้างรายการ DNS ในแบบฟอร์มด้านล่างที่ชี้ไปยังอินสแตนซ์ Apigee SSO ในศูนย์ข้อมูล 1 ดังนี้
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • Apigee SSO ทั้ง 2 อินสแตนซ์ต้องใช้คู่คีย์ JWT เดียวกันตามที่ระบุไว้ในพร็อพเพอร์ตี้ SSO_JWT_SIGNING_KEY_FILEPATH และ SSO_JWT_VERIFICATION_KEY_FILEPATH ในไฟล์การกำหนดค่า ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าพร็อพเพอร์ตี้เหล่านี้ได้ที่หัวข้อติดตั้งและกำหนดค่า Apigee SSO

เมื่อติดตั้ง Apigee SSO ในศูนย์ข้อมูลแต่ละแห่ง คุณจะกำหนดค่าทั้ง 2 รายการให้ใช้ Postgres Master ในศูนย์ข้อมูล 1 ดังนี้

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

นอกจากนี้ คุณยังกำหนดค่าศูนย์ข้อมูลทั้ง 2 แห่งให้ใช้รายการ DNS เป็น URL ที่เข้าถึงได้แบบสาธารณะ ดังนี้

# Externally accessible URL of Apigee SSO
SSO_PUBLIC_URL_HOSTNAME=my-sso.domain.com
# Default port is 9099.
SSO_PUBLIC_URL_PORT=9099

หาก Apigee SSO ในศูนย์ข้อมูล 1 ไม่ทำงาน คุณสามารถเปลี่ยนไปใช้อินสแตนซ์ Apigee SSO ในศูนย์ข้อมูล 2 ได้โดยทำดังนี้

  1. แปลงเซิร์ฟเวอร์ Postgres Standby ในศูนย์ข้อมูล 2 เป็นเซิร์ฟเวอร์หลักตามที่อธิบายไว้ในหัวข้อการจัดการเฟลโอเวอร์ของฐานข้อมูล PostgreSQL
  2. อัปเดตระเบียน DNS เพื่อชี้ my-sso.domain.com ไปยังอินสแตนซ์ Apigee SSO ในศูนย์ข้อมูล 2 ดังนี้
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. อัปเดตไฟล์การกำหนดค่าสำหรับ Apigee SSO ในศูนย์ข้อมูล 2 เพื่อชี้ไปยังเซิร์ฟเวอร์ Postgres Master ใหม่ในศูนย์ข้อมูล 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-sso restart