יש להתקין SSO ב-Apigee לזמינות גבוהה

אתם יכולים להתקין כמה מופעים של מודול SSO ב-Apigee לזמינות גבוהה בשני תרחישים:

  • בסביבה של מרכז נתונים יחיד, צריך להתקין שני מופעים של מודול SSO ב-Apigee כדי ליצור סביבה של זמינות גבוהה. כלומר, המערכת ממשיכה לפעול אם אחד ממודולי ה-SSO מושבת.
  • בסביבה עם שני מרכזי נתונים, מתקינים את מודול SSO ב-Apigee בשני מרכזי הנתונים כדי שהמערכת תמשיך לפעול אם מודול SSO ב-Apigee במרכז נתונים אחד יפסיק לפעול.

התקנה של שני מודולים של Apigee SSO באותו מרכז נתונים

אתם פורסים שני מופעים של מודול SSO ב-Apigee, בצמתים שונים של apigee-openldap, במרכז נתונים אחד כדי לתמוך בזמינות גבוהה. במקרה כזה:

  • שני המופעים של מודול ה-SSO ב-Apigee צריכים להיות מחוברים לאותו שרת Postgres. ‫Apigee ממליצה להשתמש בשרת Postgres ייעודי למודול SSO ב-Apigee, ולא באותו שרת Postgres שהתקנתם עם Edge. שני המופעים צריכים להיות משותפים למסד הנתונים של apigee_dex כדי לשמור על המצב.
  • אין צורך בהפצה ידנית של מפתחות JWT: בניגוד לרכיב ה-UAA הקודם, מודול ה-SSO המודרני ב-Apigee מאחסן ומסנכרן את קבוצות מפתחות האינטרנט בפורמט JSON‏ (JWKS) ואת מצב OAuth2 באופן מקורי במסד הנתונים המשותף של PostgreSQL. אתם לא צריכים להעתיק באופן ידני מפתחות חתימה בין צמתים.
  • סנכרון פרטי הכניסה ל-OpenLDAP פנימי: אם אתם משתמשים ב-OpenLDAP פנימי שמוגדר כברירת מחדל, מודול SSO ב-Apigee משתמש בחשבון שירות ייעודי לקריאה בלבד (cn=sso-reader). כדי להגדיר זמינות גבוהה (Node 2), האדמין צריך להגדיר את אותו SSO_READER_PW ב-/opt/silent.conf בשני הצמתים, או להעתיק את /opt/apigee/data/apigee-openldap/sso-reader.key מ-Node 1 ל-Node 2 לפני שמריצים את setup-sso ב-Node 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
  • צריך להגדיר מאזן עומסים לפני שני המופעים של מודול SSO ב-Apigee:
    • מגדירים את מאזן העומסים כך שיבצע בדיקת תקינות של TCP או HTTP ב-SSO. ב-HTTP, צריך לכלול את /healthz:
      http_or_https://edge_sso_IP_DNS:9099/healthz

      מציינים את היציאה שהוגדרה על ידי מודול SSO ב-Apigee. יציאה 9099 היא ברירת המחדל.

    • חלק מההגדרות של מאזן העומסים תלויות בהפעלה של HTTPS במודול SSO ב-Apigee. מידע נוסף מופיע בקטעים הבאים.

גישת HTTP למודול SSO ב-Apigee

אם אתם משתמשים בגישת HTTP למודול SSO ב-Apigee, הגדירו את מאזן העומסים כך:

  • משתמשים במצב HTTP כדי להתחבר למודול SSO ב-Apigee.
  • האזנה לאותה יציאה כמו מודול SSO ב-Apigee.

כברירת מחדל, מודול SSO ב-Apigee מאזין לבקשות HTTP ביציאה 9099. אפשר גם להשתמש ב-SSO_PUBLIC_URL_PORT בקובץ /opt/silent.conf כדי להגדיר את היציאה. אם השתמשתם ב-SSO_PUBLIC_URL_PORT כדי לשנות את היציאה מיציאת ברירת המחדל, ודאו שמאזן העומסים מאזין ליציאה הזו.

לדוגמה, בכל מופע של SSO, מגדירים את היציאה ל-9033 על ידי הוספת השורה הבאה לקובץ התצורה:

SSO_PUBLIC_URL_PORT=9033

לאחר מכן מגדירים את מאזן העומסים כך שיאזין ליציאה 9033 ויעביר בקשות למכונות ה-SSO ביציאה 9033. כתובת ה-URL הציבורית של מודול SSO ב-Apigee בתרחיש הזה היא:

http://LB_DNS_NAME:9033

גישה באמצעות HTTPS למודול SSO ב-Apigee

אפשר להגדיר זמינות גבוהה עם HTTPS באחד משני המצבים הבאים. בשני התרחישים, פועלים לפי שלבי ההגדרה המפורטים במאמר בנושא הגדרת מודול SSO ב-Apigee לגישת HTTPS.

מצב 1: מאזן העומסים מסיים את ה-TLS ‏ (SSL_PROXY)

אם מאזן העומסים סוגר את חיבור ה-TLS, הוא צריך להעביר תנועת HTTP רגילה למכונות של מודול ה-SSO ב-Apigee.

  • מגדירים את SSO_PUBLIC_URL_SCHEME=https ואת SSO_PUBLIC_URL_PORT=443 (או את יציאת ה-HTTPS הציבורית של מאזן העומסים) בקובץ /opt/silent.conf.
  • מגדירים את מאזן העומסים לשימוש במצב HTTP כדי להתחבר למופעי מודול SSO ב-Apigee בקצה העורפי.
  • מגדירים את מאזן העומסים להעברת בקשות למופעי מודול SSO ב-Apigee ביציאת ה-HTTP המקומית שלהם (ברירת מחדל: 9099).

מצב 2: מודול SSO ב-Apigee מסיים את TLS ‏ (SSL_TERMINATION)

אם רוצים שמודול SSO ב-Apigee יסיימו את חיבורי ה-TLS ישירות, מאזן העומסים צריך להעביר אליהם את תעבורת הנתונים המוצפנת.

  • מגדירים את SSO_PUBLIC_URL_SCHEME=https ו-SSO_PUBLIC_URL_PORT=9443 (או את היציאה המאובטחת שבחרתם) בקובץ /opt/silent.conf.
  • מגדירים את מאזן העומסים לשימוש במצב TCP (לא במצב HTTP) כדי להתחבר לקצה העורפי, וכך מאפשרים ל-מודול SSO ב-Apigee לסיים את ה-TLS.
  • מגדירים את מאזן העומסים להאזנה באותה יציאה כמו מודול SSO ב-Apigee, ולהעברת בקשות למופעי מודול SSO ב-Apigee ביציאה המאובטחת שלהם (לדוגמה, 9443).

התקנת מודול SSO ב-Apigee בכמה מרכזי נתונים

בסביבה של כמה מרכזי נתונים, מתקינים מופע של מודול SSO ב-Apigee (באמצעות apigee-openldap) בכל מרכז נתונים. מופע אחד של SSO מטפל בכל התנועה. אם המופע הזה מושבת, אפשר להעביר את התנועה למופע השני של ה-SSO.

לפני שמתקינים את מודול SSO ב-Apigee בשני מרכזי נתונים, צריך:

  • כתובת ה-IP או שם הדומיין של שרת ה-Postgres הראשי.

    בסביבה עם כמה מרכזי נתונים, בדרך כלל מתקינים שרת Postgres אחד בכל מרכז נתונים ומגדירים אותם במצב שכפול Master-Standby. בדוגמה הזו, מרכז הנתונים 1 מכיל את שרת Postgres הראשי ומרכז הנתונים 2 מכיל את שרת Postgres המשני. מידע נוסף זמין במאמר הגדרת רפליקציה של המתנה ראשית ל-Postgres.

  • רשומת DNS אחת שמפנה למופע אחד של SSO. לדוגמה, יוצרים רשומת DNS בפורמט הבא, שמפנה למכונה של ה-SSO במרכז הנתונים הראשון:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • פרטי כניסה מסונכרנים של קורא OpenLDAP. אם אתם משתמשים ב-OpenLDAP הפנימי, אתם צריכים לוודא ששני מרכזי הנתונים משתמשים בדיוק באותו SSO_READER_PW או משתפים את אותו קובץ sso-reader.key כדי למנוע חוסר סנכרון של האשכול במהלך ההגדרה.

כשמגדירים את ה-SSO ב-Apigee בכל מרכז נתונים, מפנים את שתי ההגדרות ל-Postgres Master במרכז נתונים 1:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

בנוסף, צריך להגדיר את שני מרכזי הנתונים כך שישתמשו ברשומת ה-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

אם מודול SSO ב-Apigee (או Postgres Master שלו) במרכז נתונים 1 מושבת, אפשר לעבור למופע SSO במרכז נתונים 2 בלי לאבד סשנים פעילים של OAuth:

  1. ממירים את שרת ה-Postgres Standby במרכז הנתונים 2 ל-Master, כמו שמתואר במאמר טיפול במעבר לגיבוי (failover) של מסד נתונים של PostgreSQL.
  2. מעדכנים את רשומת ה-DNS כך ש-my-sso.domain.com תפנה למכונה של ה-SSO במרכז הנתונים השני:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. מעדכנים את הקובץ /opt/silent.conf של מודול SSO ב-Apigee במרכז נתונים 2 כך שיפנה לשרת ה-Postgres הראשי החדש במרכז נתונים 2:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. מגדירים מחדש ומפעילים מחדש את מודול SSO ב-Apigee במרכז הנתונים 2 כדי לעדכן את החיבור באופן מקורי:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf