Instal SSO Apigee untuk ketersediaan tinggi

Anda menginstal beberapa instance Apigee SSO untuk ketersediaan tinggi dalam dua skenario:

  • Dalam lingkungan pusat data tunggal, instal dua instance Apigee SSO untuk membuat lingkungan ketersediaan tinggi, yang berarti sistem akan terus beroperasi jika salah satu modul SSO tidak berfungsi.
  • Di lingkungan dengan dua pusat data, instal Apigee SSO di kedua pusat data agar sistem terus beroperasi jika Apigee SSO di salah satu pusat data mengalami kegagalan.

Menginstal dua modul Apigee SSO di pusat data yang sama

Anda men-deploy dua instance Apigee SSO, pada node apigee-openldap yang berbeda, di satu pusat data untuk mendukung ketersediaan tinggi. Dalam skenario ini:

  • Kedua instance Apigee SSO harus terhubung ke server Postgres yang sama. Apigee merekomendasikan penggunaan server Postgres khusus untuk Apigee SSO, bukan server Postgres yang sama dengan yang Anda instal dengan Edge. Kedua instance harus menggunakan database apigee_dex yang sama untuk persistensi status.
  • Tidak diperlukan distribusi kunci JWT manual: Tidak seperti komponen UAA lama, Apigee SSO yang dimodernisasi menyimpan dan menyinkronkan JSON Web Key Set (JWKS) dan status OAuth2 secara native di database PostgreSQL bersama. Anda tidak perlu menyalin kunci penandatanganan secara manual di seluruh node.
  • Sinkronisasi kredensial untuk OpenLDAP internal: Jika Anda menggunakan OpenLDAP internal default, Apigee SSO menggunakan akun layanan hanya baca khusus (cn=sso-reader). Untuk HA (Node 2), admin harus menetapkan SSO_READER_PW yang sama di /opt/silent.conf pada kedua node, atau menyalin /opt/apigee/data/apigee-openldap/sso-reader.key dari Node 1 ke Node 2 sebelum menjalankan setup-sso di Node 2.

    Untuk menyalin file kunci secara manual, jalankan perintah berikut di Node 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
  • Anda memerlukan load balancer di depan dua instance Apigee SSO:
    • Konfigurasi load balancer untuk melakukan health check TCP atau HTTP pada SSO. Untuk HTTP, sertakan /healthz:
      http_or_https://edge_sso_IP_DNS:9099/healthz

      Tentukan port seperti yang ditetapkan oleh Apigee SSO. Port 9099 adalah port default.

    • Beberapa setelan load balancer bergantung pada apakah Anda mengaktifkan HTTPS di Apigee SSO. Lihat bagian berikut untuk mengetahui informasi selengkapnya.

Akses HTTP ke Apigee SSO

Jika Anda menggunakan akses HTTP ke Apigee SSO, konfigurasi load balancer untuk:

  • Gunakan mode HTTP untuk terhubung ke Apigee SSO.
  • Memproses di port yang sama dengan Apigee SSO.

Secara default, Apigee SSO memproses permintaan HTTP di port 9099. Secara opsional, Anda dapat menggunakan SSO_PUBLIC_URL_PORT dalam file /opt/silent.conf untuk menetapkan port. Jika Anda menggunakan SSO_PUBLIC_URL_PORT untuk mengubah port dari default, pastikan load balancer memproses port tersebut.

Misalnya, di setiap instance SSO, Anda menetapkan port ke 9033 dengan menambahkan baris berikut ke file konfigurasi:

SSO_PUBLIC_URL_PORT=9033

Kemudian, Anda mengonfigurasi load balancer untuk memproses port 9033 dan meneruskan permintaan ke instance SSO di port 9033. URL Penerbit publik Apigee SSO dalam skenario ini adalah:

http://LB_DNS_NAME:9033

Akses HTTPS ke Apigee SSO

Anda dapat mengonfigurasi HA dengan HTTPS menggunakan salah satu dari dua mode berikut. Dalam kedua skenario, ikuti langkah-langkah penyiapan mendetail di Mengonfigurasi Apigee SSO untuk akses HTTPS.

Mode 1: Load balancer menghentikan TLS (SSL_PROXY)

Jika load balancer Anda menghentikan koneksi TLS, load balancer harus meneruskan traffic HTTP biasa ke instance Apigee SSO.

  • Tetapkan SSO_PUBLIC_URL_SCHEME=https dan SSO_PUBLIC_URL_PORT=443 (atau port HTTPS publik load balancer Anda) di file /opt/silent.conf Anda.
  • Konfigurasikan load balancer untuk menggunakan mode HTTP agar terhubung ke instance Apigee SSO backend.
  • Konfigurasikan load balancer untuk meneruskan permintaan ke instance Apigee SSO di port binding HTTP lokalnya (default: 9099).

Mode 2: Apigee SSO menghentikan TLS (SSL_TERMINATION)

Jika Anda ingin instance Apigee SSO menghentikan koneksi TLS secara langsung, load balancer harus meneruskan traffic terenkripsi ke instance tersebut.

  • Tetapkan SSO_PUBLIC_URL_SCHEME=https dan SSO_PUBLIC_URL_PORT=9443 (atau port aman yang Anda pilih) di file /opt/silent.conf.
  • Konfigurasikan load balancer untuk menggunakan mode TCP (bukan mode HTTP) agar terhubung ke backend, sehingga Apigee SSO dapat menghentikan TLS.
  • Konfigurasikan load balancer untuk memproses port yang sama dengan Apigee SSO, dan teruskan permintaan ke instance Apigee SSO di port amannya (misalnya, 9443).

Menginstal Apigee SSO di beberapa pusat data

Dalam lingkungan beberapa pusat data, Anda menginstal instance Apigee SSO (melalui apigee-openldap) di setiap pusat data. Satu instance SSO menangani semua traffic. Jika instance tersebut tidak berfungsi, Anda dapat mengalihkan traffic ke instance SSO kedua.

Sebelum menginstal Apigee SSO di dua pusat data, Anda memerlukan hal berikut:

  • Alamat IP atau nama domain server Master Postgres.

    Di lingkungan beberapa pusat data, Anda biasanya menginstal satu server Postgres di setiap pusat data dan mengonfigurasinya dalam mode replikasi Master-Standby. Untuk contoh ini, pusat data 1 berisi server Postgres Master dan pusat data 2 berisi Standby. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan replikasi utama-standby untuk Postgres.

  • Satu entri DNS yang mengarah ke satu instance SSO. Misalnya, Anda membuat entri DNS dalam formulir berikut, yang mengarah ke instance SSO di pusat data 1:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • Kredensial Pembaca OpenLDAP yang Disinkronkan. Jika menggunakan OpenLDAP internal, Anda harus memastikan kedua pusat data menggunakan SSO_READER_PW yang sama persis atau berbagi file sso-reader.key yang sama untuk mencegah desinkronisasi cluster selama penyiapan.

Saat mengonfigurasi SSO Apigee di setiap pusat data, Anda mengarahkan kedua konfigurasi ke Postgres Master di pusat data 1:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

Anda juga harus mengonfigurasi kedua pusat data untuk menggunakan entri DNS bersama sebagai URL Penerbit yang dapat diakses secara publik. Karena skrip setup-sso otomatis membuat URL penerbit dan menambahkan port, Anda harus menetapkan URL yang tepat secara langsung di /opt/apigee/customer/application/openldap.properties, bukan /opt/silent.conf, untuk mencegah port ditambahkan jika tidak diperlukan:

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

Menangani failover SSO

Jika instance Apigee SSO (atau Postgres Master-nya) di pusat data 1 tidak berfungsi, Anda dapat beralih ke instance SSO di pusat data 2 tanpa kehilangan sesi OAuth yang aktif:

  1. Konversikan server Postgres Standby di pusat data 2 ke Master seperti yang dijelaskan dalam Menangani failover database PostgreSQL.
  2. Perbarui data DNS Anda agar mengarahkan my-sso.domain.com ke instance SSO di pusat data 2:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. Perbarui file /opt/silent.conf untuk SSO Apigee di pusat data 2 agar mengarah ke server Master Postgres baru di pusat data 2:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. Konfigurasi ulang dan mulai ulang SSO Apigee di pusat data 2 untuk memperbarui koneksinya secara native:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf