התקנה והגדרה של SSO ב-Apigee

החל מגרסה OPDK 4.54.00, ארכיטקטורת ה-SSO עברה מודרניזציה. ה-identity broker‏ (Dex) מוטמע עכשיו ישירות ברכיב apigee-openldap, כך שאין צורך להתקין מודול נפרד מדור קודם של apigee-sso.

כדי להפעיל ולהגדיר את מודול ה-SSO ב-Apigee, צריך לבצע את הפעולות הבאות:

  1. יצירת משתמש מכונה לממשק המשתמש החדש של Edge: יוצרים משתמש מכונה שנדרש לממשק המשתמש החדש של Edge כדי להפעיל ממשקי API לניהול.
  2. הגדרת מאפיינים בקובץ התצורה הנפוץ: יוצרים קובץ תצורה אחד שמכיל את המאפיינים שנדרשים גם לשירות OpenLDAP (SSO) וגם לממשק המשתמש החדש של Edge.
  3. יצירת מסד נתונים של SSO ב-Postgres: יוצרים מסד נתונים ל-SSO במכונה של Apigee PostgreSQL.
  4. החלת הגדרות ה-SSO ב-OpenLDAP: מפעילים את קובץ התצורה כדי להתחיל את ה-SSO המשולב של Apigee בצומת OpenLDAP.
  5. הגדרת ממשק המשתמש החדש של Edge: מעדכנים את המאפיינים של ממשק המשתמש החדש של Edge כדי להשתמש ב-SSO החדש של Apigee.

כל אחד מהשלבים האלה מתואר בקטעים הבאים.

יצירת משתמש מכונה לממשק המשתמש

ממשק המשתמש החדש של Edge דורש משתמש מכונה כדי להפעיל Management API בקצה העורפי עבור פעולות מסוימות. לשם כך, נעשה שימוש בסקריפט שמותקן מראש בצומת apigee-openldap.

מידע נוסף על הסקריפט ועל משתמשי המכונה זמין במאמר שימוש בסקריפט apigee-machine-user.

משתמשים בפקודה הבאה בצומת apigee-openldap כדי ליצור משתמש מכונה לממשק המשתמש החדש של Edge, ומוודאים שמשתמשים באותם פרטי כניסה בדיוק כשמגדירים את המאפיין בקובץ התצורה בשלב הבא.

 /opt/apigee/apigee-openldap/bin/apigee-machineuser.sh add -u ui-machine-user@apigee.com -p Secret123
 

הגדרת מאפיינים בקובץ התצורה הנפוץ

כדי להפעיל את מודול SSO ב-Apigee ואת ממשק המשתמש החדש של Edge, צריך להגדיר קובץ תצורה משותף (לדוגמה, /opt/silent.conf). אפשר לשנות את הנתיב ואת שם הקובץ בהתאם לסביבה.

מוסיפים את מאפייני הגדרות הבסיס הבאים אל /opt/silent.conf:

‫
# ==========================================
# SSO Enablement
# ==========================================
ENABLE_SSO=y

# ==========================================
# SSO Hostname/IP and Port config for Dex
# ==========================================
SSO_PUBLIC_URL_SCHEME=http
SSO_PUBLIC_URL_HOSTNAME=localhost
SSO_PUBLIC_URL_PORT=9099

# ==========================================
# Static Client UI credentials
# ==========================================
MANAGEMENT_UI_SSO_CLIENT_ID=unifiedui
MANAGEMENT_UI_SSO_CLIENT_SECRET=secret123

# ==========================================
# Management UI & SSO redirect URLs
# ==========================================
MANAGEMENT_UI_SCHEME=http
MANAGEMENT_UI_IP=localhost
MANAGEMENT_UI_PORT=3001

# ==========================================
# Management Server parameters (Required for SSO registration)
# ==========================================
MSIP=localhost
ADMIN_EMAIL=admin@apigee.com
APIGEE_ADMINPW=Secret123

# ==========================================
# Machine user for UI
# ==========================================
UI_MACHINE_USER=ui-machine-user@apigee.com
UI_MACHINE_PWD=Secret123

# ==========================================
# Postgres connection parameters
# ==========================================
PG_HOST=postgres_host
PG_USER=apigee
PG_PWD=postgres_password

# ==========================================
# Other UI Parameters
# ==========================================
# Set to sso to enable SSO, default value is basic.
AUTH_MODE=sso

# Y to use internal LDAP for authentication, N to use external IDP
SSO_LOCAL_LDAP=y

MANAGEMENT_UI_APP_ENV=OPDK
MANAGEMENT_UI_SSO_ENABLED=y
MANAGEMENT_UI_SSO_CSRF_SECRET=secret
MANAGEMENT_UI_SSO_CSRF_EXPIRATION_HOURS=24
MANAGEMENT_UI_SSO_STRICT_TRANSPORT_SECURITY_AGE_HOURS=24
MANAGEMENT_UI_SSO_PUBLIC_KEY_CACHE_HOURS=0.5

הפצת מאפייני SSO

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

  • ‫/opt/silent.conf (או קובץ התצורה בהתאמה אישית): מכיל את מאפייני התצורה הבסיסיים של SSO ושל ממשק המשתמש החדש של Edge.
  • ‫/opt/apigee/customer/application/openldap.properties: מכיל מאפייני הגדרות נוספים של SSO לתכונות אופציונליות כמו SAML ו-HTTPS.

הסקריפט setup-sso ברכיב apigee-openldap מנתח את המשתנים משני הקבצים שלמעלה. בהתאם לתרחיש לדוגמה, צריך להגדיר את המאפיינים הרלוונטיים בקובצי התצורה.

השלבים הבאים הם אופציונליים, בהתאם לסביבה שלכם:

יצירת מסד נתונים של SSO ב-Postgres

בצומת שבו פועל apigee-postgresql (צומת ראשי בהגדרה ראשונית של גיבוי), יוצרים מסד נתונים ל-SSO:

/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-sso-db

החלת הגדרות SSO ב-OpenLDAP

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

כדי להפעיל ולהתחיל את מודול ה-SSO ב-Apigee:
  1. מתחברים לצומת שמארח את apigee-openldap.
  2. מריצים את הפקודה setup-sso ומעבירים את קובץ התצורה:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf

הגדרת ממשק המשתמש החדש של Edge

אחרי שמודול ה-SSO ב-Apigee פועל, צריך להגדיר את ממשק המשתמש החדש של Edge כדי לתקשר איתו.

אחרי שמפעילים ספק זהויות חיצוני בממשק המשתמש החדש של Edge, ממשק המשתמש החדש של Edge משתמש ב-OIDC/OAuth2 כדי להתחבר לשרת הניהול. אין צורך לדאוג לגבי תוקף הטוקנים בין ממשק המשתמש החדש של Edge לבין שרת הניהול של Edge. אסימונים שפג תוקפם מתרעננים באופן אוטומטי.

  1. מתחברים לצומת שמארח את ממשק המשתמש החדש של Edge.
  2. צריך לוודא שהקובץ /opt/silent.conf זמין בצומת הזה.
  3. מפעילים את ההגדרה באמצעות הסקריפט setup:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-ui setup -f /opt/silent.conf