คุณติดตั้ง Apigee SSO หลายอินสแตนซ์เพื่อความพร้อมใช้งานสูงใน 2 สถานการณ์ต่อไปนี้
- ในสภาพแวดล้อมศูนย์ข้อมูลเดียว ให้ติดตั้ง Apigee SSO 2 อินสแตนซ์เพื่อสร้างสภาพแวดล้อมที่มีความพร้อมใช้งานสูง ซึ่งหมายความว่าระบบจะทำงานต่อไปได้หากโมดูล SSO โมดูลใดโมดูลหนึ่งหยุดทำงาน
- ในสภาพแวดล้อมที่มีศูนย์ข้อมูล 2 แห่ง ให้ติดตั้ง Apigee SSO ในศูนย์ข้อมูลทั้ง 2 แห่งเพื่อให้ระบบทำงานต่อไปได้หาก Apigee SSO ในศูนย์ข้อมูลแห่งใดแห่งหนึ่งหยุดทำงาน
ติดตั้งโมดูล Apigee SSO 2 โมดูลในศูนย์ข้อมูลเดียวกัน
คุณติดตั้งใช้งาน Apigee SSO 2 อินสแตนซ์ในโหนด apigee-openldap ที่ต่างกันในศูนย์ข้อมูลเดียวเพื่อรองรับ
ความพร้อมใช้งานสูง ในสถานการณ์นี้จะมีผลดังต่อไปนี้
- Apigee SSO ทั้ง 2 อินสแตนซ์ต้องเชื่อมต่อกับเซิร์ฟเวอร์ Postgres เดียวกัน Apigee ขอแนะนำให้ใช้เซิร์ฟเวอร์ Postgres ที่เฉพาะเจาะจงสำหรับ Apigee SSO และไม่ใช่เซิร์ฟเวอร์ Postgres เดียวกันกับที่คุณติดตั้งด้วย Edge ทั้ง 2 อินสแตนซ์ต้องใช้ฐานข้อมูล
apigee_dexร่วมกันเพื่อการคงสถานะ - ไม่จำเป็นต้องแจกจ่ายคีย์ JWT ด้วยตนเอง: Apigee SSO ที่ปรับปรุงใหม่จะจัดเก็บและซิงค์ JSON Web Key Sets (JWKS) และสถานะ OAuth2 ในฐานข้อมูล PostgreSQL ที่แชร์โดยค่าเริ่มต้น ซึ่งแตกต่างจากคอมโพเนนต์ UAA แบบเดิม คุณไม่จำเป็นต้องคัดลอกคีย์การลงชื่อในโหนดต่างๆ ด้วยตนเอง
- การซิงโครไนซ์ข้อมูลเข้าสู่ระบบสำหรับ OpenLDAP ภายใน: หากคุณใช้ OpenLDAP ภายในเริ่มต้น Apigee SSO จะใช้บัญชีบริการแบบอ่านอย่างเดียวที่เฉพาะเจาะจง (
cn=sso-reader) สำหรับ HA (โหนด 2) ผู้ดูแลระบบต้องตั้งค่าSSO_READER_PWเดียวกันใน/opt/silent.confในโหนดทั้ง 2 หรือคัดลอก/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 2 อินสแตนซ์ โดยทำดังนี้
- กำหนดค่าตัวจัดสรรภาระงานให้ทำการตรวจสอบสถานะ TCP หรือ HTTP ใน SSO สำหรับ HTTP ให้ใส่
/healthzhttp_or_https://edge_sso_IP_DNS:9099/healthz
ระบุพอร์ตตามที่ Apigee SSO ตั้งค่าไว้ โดยค่าเริ่มต้นคือพอร์ต 9099
- การตั้งค่าตัวจัดสรรภาระงานบางอย่างจะขึ้นอยู่กับว่าคุณเปิดใช้ HTTPS ใน Apigee SSO หรือไม่ ดูข้อมูลเพิ่มเติมได้ในส่วนต่อไปนี้
- กำหนดค่าตัวจัดสรรภาระงานให้ทำการตรวจสอบสถานะ TCP หรือ HTTP ใน SSO สำหรับ HTTP ให้ใส่
การเข้าถึง 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
เพื่อเปลี่ยนพอร์ตจากค่าเริ่มต้น โปรดตรวจสอบว่าตัวจัดสรรภาระงานรับฟังในพอร์ตนั้น
ตัวอย่างเช่น ในอินสแตนซ์ SSO แต่ละรายการ คุณตั้งค่าพอร์ตเป็น 9033 โดยเพิ่มรายการต่อไปนี้ลงใน ไฟล์การกำหนดค่า
SSO_PUBLIC_URL_PORT=9033
จากนั้นกำหนดค่าตัวจัดสรรภาระงานให้รับฟังในพอร์ต 9033 และส่งต่อคำขอไปยังอินสแตนซ์ SSO ในพอร์ต 9033 URL ผู้ออกใบรับรองสาธารณะของ Apigee SSO ในสถานการณ์นี้คือ
http://LB_DNS_NAME:9033
การเข้าถึง Apigee SSO ผ่าน HTTPS
คุณกำหนดค่า HA ด้วย HTTPS ได้โดยใช้โหมดใดโหมดหนึ่งต่อไปนี้ ในทั้ง 2 สถานการณ์ ให้ทำตามขั้นตอนการตั้งค่าโดยละเอียดในหัวข้อ กำหนดค่า Apigee SSO สำหรับการเข้าถึง HTTPS
โหมด 1: ตัวจัดสรรภาระงานสิ้นสุด TLS (SSL_PROXY)
หากตัวจัดสรรภาระงานสิ้นสุดการเชื่อมต่อ TLS ตัวจัดสรรภาระงานจะต้องส่งต่อการรับส่งข้อมูล 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 สิ้นสุด TLS (SSL_TERMINATION)
หากต้องการให้อินสแตนซ์ Apigee SSO สิ้นสุดการเชื่อมต่อ TLS โดยตรง ตัวจัดสรรภาระงานจะต้องส่งต่อการรับส่งข้อมูลที่เข้ารหัสไปยังอินสแตนซ์เหล่านั้น
- ตั้งค่า
SSO_PUBLIC_URL_SCHEME=httpsและSSO_PUBLIC_URL_PORT=9443(หรือพอร์ตที่ปลอดภัยที่คุณเลือก) ในไฟล์/opt/silent.conf - กำหนดค่าตัวจัดสรรภาระงานให้ใช้โหมด TCP (ไม่ใช่โหมด HTTP) เพื่อเชื่อมต่อกับแบ็กเอนด์ ซึ่งจะช่วยให้ Apigee SSO สิ้นสุด TLS ได้
- กำหนดค่าตัวจัดสรรภาระงานให้รับฟังในพอร์ตเดียวกับ Apigee SSO และส่งต่อคำขอไปยังอินสแตนซ์ Apigee SSO ในพอร์ตที่ปลอดภัย (เช่น
9443)
ติดตั้ง Apigee SSO ในศูนย์ข้อมูลหลายแห่ง
ในสภาพแวดล้อมที่มีศูนย์ข้อมูลหลายแห่ง ให้ติดตั้ง Apigee SSO 1 อินสแตนซ์ (ผ่าน apigee-openldap) ในศูนย์ข้อมูลแต่ละแห่ง
โดยอินสแตนซ์ SSO 1 รายการจะจัดการการรับส่งข้อมูลทั้งหมด หากอินสแตนซ์นั้นหยุดทำงาน คุณสามารถ
เปลี่ยนการรับส่งข้อมูลไปยังอินสแตนซ์ SSO รายการที่ 2 ได้
คุณต้องมีสิ่งต่อไปนี้ก่อนที่จะติดตั้ง Apigee SSO ในศูนย์ข้อมูล 2 แห่ง
- ที่อยู่ IP หรือชื่อโดเมนของเซิร์ฟเวอร์ Postgres หลัก
ในสภาพแวดล้อมที่มีศูนย์ข้อมูลหลายแห่ง โดยปกติคุณจะติดตั้งเซิร์ฟเวอร์ Postgres 1 เครื่องในศูนย์ข้อมูลแต่ละแห่ง และกำหนดค่าเซิร์ฟเวอร์เหล่านั้นในโหมดการจำลองแบบหลัก-สำรอง ในตัวอย่างนี้ ศูนย์ข้อมูล 1 มีเซิร์ฟเวอร์ Postgres หลัก และศูนย์ข้อมูล 2 มีเซิร์ฟเวอร์ Postgres สำรอง ดูข้อมูลเพิ่มเติมได้ที่หัวข้อ ตั้งค่าการจำลองแบบหลัก-สำรองสำหรับ Postgres
- รายการ DNS รายการเดียวที่ชี้ไปยังอินสแตนซ์ SSO 1 รายการ ตัวอย่างเช่น คุณสร้างรายการ DNS
ในรูปแบบต่อไปนี้ ซึ่งชี้ไปยังอินสแตนซ์ SSO ในศูนย์ข้อมูล 1
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- ข้อมูลเข้าสู่ระบบของผู้อ่าน OpenLDAP ที่ซิงค์แล้ว หากคุณใช้ OpenLDAP ภายใน คุณต้องตรวจสอบว่าศูนย์ข้อมูลทั้ง 2 แห่งใช้
SSO_READER_PWเดียวกันหรือแชร์ไฟล์sso-reader.keyเดียวกันเพื่อป้องกันไม่ให้คลัสเตอร์ไม่ซิงค์กันระหว่างการตั้งค่า
เมื่อกำหนดค่า Apigee SSO ในศูนย์ข้อมูลแต่ละแห่ง ให้กำหนดค่าทั้ง 2 รายการให้ชี้ไปยัง Postgres หลัก ในศูนย์ข้อมูล 1
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432นอกจากนี้ คุณต้องกำหนดค่าศูนย์ข้อมูลทั้ง 2 แห่งให้ใช้รายการ DNS ที่แชร์เป็น 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การจัดการการเฟลโอเวอร์ของ SSO
หากอินสแตนซ์ Apigee SSO (หรือ Postgres หลัก) ในศูนย์ข้อมูล 1 หยุดทำงาน คุณสามารถเปลี่ยนไปใช้อินสแตนซ์ SSO ในศูนย์ข้อมูล 2 ได้โดยไม่สูญเสียเซสชัน OAuth ที่ใช้งานอยู่ โดยทำดังนี้
- แปลงเซิร์ฟเวอร์ Postgres สำรองในศูนย์ข้อมูล 2 เป็นเซิร์ฟเวอร์หลักตามที่อธิบายไว้ใน หัวข้อการจัดการการเฟลโอเวอร์ของฐานข้อมูล PostgreSQL
- อัปเดตระเบียน DNS ให้ชี้
my-sso.domain.comไปยังอินสแตนซ์ SSO ใน ศูนย์ข้อมูล 2 โดยทำดังนี้my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- อัปเดตไฟล์
/opt/silent.confสำหรับ Apigee SSO ในศูนย์ข้อมูล 2 ให้ชี้ไปยังเซิร์ฟเวอร์ Postgres หลัก ใหม่ในศูนย์ข้อมูล 2 โดยทำดังนี้## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2 - กำหนดค่าและรีสตาร์ท Apigee SSO ในศูนย์ข้อมูล 2 อีกครั้งเพื่ออัปเดตการเชื่อมต่อโดยค่าเริ่มต้น โดยทำดังนี้
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf