הגדרה של SAML IdP

במפרט ה-SAML מוגדרות שלוש ישויות:

  • המשתמש הראשי (משתמש בממשק המשתמש החדש של Edge)
  • ספק השירות (מודול SSO ב-Apigee)
  • ספק זהויות (מחזיר טענת נכוֹנוּת ב-SAML)

כשה-SAML מופעל, המשתמש (משתמש בממשק המשתמש החדש של Edge) מבקש גישה לספק השירות (מודול ה-SSO ב-Apigee). לאחר מכן, מודול SSO ב-Apigee (בתפקיד שלו כסוכן זהויות מאוחד) מבקש ומקבל הצהרת זהות מספק הזהויות של SAML, ומשתמש בהצהרה הזו כדי ליצור את הטוקנים של OIDC ו-OAuth2 שנדרשים לגישה לממשק המשתמש החדש של Edge. לאחר מכן המשתמש מופנה חזרה לממשק המשתמש החדש של Edge.

התהליך הוא כזה:

תהליך אימות SAML

בתרשים הזה:

  1. המשתמש מנסה לגשת לממשק המשתמש החדש של Edge על ידי שליחת בקשה לכתובת ה-URL להתחברות לממשק המשתמש של Edge. לדוגמה: https://edge_management_ui_IP_DNS:3001
  2. בקשות לא מאומתות מופנות למודול SSO ב-Apigee.
  3. ה-SSO מפנה את הבקשה ל-SAML IDP. לדוגמה, https://idp.customer.com.
  4. אם המשתמש לא מחובר לספק הזהויות, הוא מתבקש להתחבר.
  5. המשתמש מתחבר לחשבון.
  6. המשתמש מאומת על ידי ה-SAML IDP, שיוצר טענת נכונות (assertion) של SAML 2.0 ומחזיר אותה למודול SSO ב-Apigee.
  7. מודול ה-SSO ב-Apigee מאמת את טענת הנכוֹנוּת (assertion), מחלץ את זהות המשתמש מטענת הנכוֹנוּת, יוצר את אסימוני האימות של OIDC/OAuth2 לממשק המשתמש החדש של Edge ומפנה את המשתמש לדף הראשי של ממשק המשתמש החדש של Edge בכתובת ה-URL הבאה:
    https://edge_management_ui_IP_DNS:3001/edge

דפדפן Edge תומך בספקי זהויות רבים, כולל Okta ו-Microsoft Active Directory Federation Services‏ (ADFS). בקטע הבא מוסבר איך עושים את זה ב-Okta.

כדי להגדיר את ה-IDP ב-SAML, צריך כתובת אימייל ב-Edge כדי לזהות את המשתמש. לכן, ספק הזהויות חייב להחזיר כתובת אימייל כחלק מהצהרת הזהות.

בנוסף, תצטרכו להגדיר את ספק הזהויות עם הפרטים הבאים כדי לוודא שהוא יכול לתקשר עם ה-SSO ב-Apigee:

הגדרה תיאור
כתובת ה-URL של Assertion Consumer Service (כתובת ה-URL של הכניסה באמצעות חשבון אחד)

זוהי כתובת ה-URL להפניה אוטומטית חזרה למודול SSO ב-Apigee אחרי שהמשתמש מזין את פרטי הכניסה ל-IDP. הפורמט הוא:

protocol://apigee_sso_IP_DNS:port/callback

לדוגמה:

http://1.2.3.4:9099/callback
מזהה הישות של ספק השירות (או URI של קהל)

כברירת מחדל, מודול SSO ב-Apigee מצפה שמזהה הישות של ספק השירות יהיה apigee-saml-login-opdk.

אם משנים את ברירת המחדל הזו על ידי הגדרת המאפיין lib_settings_saml_entity_issuer בהגדרות האישיות, צריך לציין כאן את מזהה הישות המותאם אישית.

הגדרת Okta

כדי להגדיר את Okta:

  1. מתחברים ל-Okta.
  2. בוחרים באפשרות Applications (אפליקציות) ואז בוחרים את אפליקציית ה-SAML.
  3. בוחרים בכרטיסייה הקצאות כדי להוסיף משתמשים לאפליקציה. המשתמשים האלה יוכלו להתחבר לממשק המשתמש החדש של Edge ולבצע קריאות ל-Edge API. אבל קודם צריך להוסיף כל משתמש לארגון ב-Edge ולציין את התפקיד שלו. מידע נוסף זמין במאמר רישום משתמשי Edge חדשים.
  4. בוחרים בכרטיסייה Sign on (כניסה) כדי לקבל את כתובת ה-URL של המטא-נתונים של ספק הזהויות. תצטרכו את הערך הזה כדי להגדיר את הגדרות ה-SAML בקובץ /opt/apigee/customer/application/openldap.properties.
  5. בוחרים בכרטיסייה General כדי להגדיר את אפליקציית Okta, כמו שמופיע בטבלה הבאה:
    הגדרה תיאור
    כתובת URL של כניסה יחידה (SSO)

    מציינת את כתובת ה-URL להפניה חזרה ל-SSO, לשימוש אחרי שהמשתמש מזין את פרטי הכניסה שלו ל-Okta. כתובת ה-URL הזו היא בפורמט הבא:

    http://apigee_sso_IP_DNS:9099/callback

    אם ה-SSO ב-Apigee מסיים את ה-TLS:

    https://apigee_sso_IP_DNS:9443/callback

    אם מאזן עומסים מסיים את ה-TLS:

    https://load_balancer_IP_or_DNS:443/callback
    שימוש בכתובת הזו לכתובת ה-URL של הנמען ולכתובת היעד מסמנים את התיבה הזו.
    Audience URI (מזהה ישות של ספק השירות) מגדירים את הערך apigee-saml-login-opdk. זהו מזהה הישות שמוגדר כברירת מחדל ב-Edge SP. אם משנים את הערך הזה באמצעות המאפיין lib_settings_saml_entity_issuer בהגדרות, צריך לציין כאן את מזהה הישות המותאם אישית.
    ברירת המחדל של RelayState משאירים את השדה ריק.
    פורמט מזהה השם מציינים EmailAddress.
    שם המשתמש לצורך האפליקציה מציינים Okta username.
    הצהרות לגבי מאפיינים מציינים את המאפיינים שממופים למאפיינים SAML_USERNAME_ATTR,‏ SAML_EMAIL_ATTR ו-SAML_GROUPS_ATTR בהגדרה. בדרך כלל, צריך למפות את name, email ו-groups.

אחרי ההגדרה, Okta יעביר בהצלחה את טענת הנכוֹנוּת (assertion) של SAML בחזרה למודול SSO ב-Apigee במהלך ההתחברות.