הפעלת אימות חיצוני

Edge for Private Cloud v. 4.17.01

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

דרישות מוקדמות

  • צריך להתקין Apigee Edge להתקנת ענן פרטי 4.17.01.
  • כדי לבצע את ההתקנה הזו, צריך פרטי כניסה של אדמין מערכת גלובלי ב-Apigee Edge for Private Cloud.
  • צריך לדעת מהי ספריית השורש של התקנת Apigee Edge לענן פרטי. ספריית הבסיס שמוגדרת כברירת מחדל היא /opt.
  • צריך להוסיף את פרטי הכניסה של האדמין המערכת הגלובלי ב-Edge ל-LDAP החיצוני. חשוב לזכור שברירת המחדל היא שפרטי הכניסה של האדמין המערכת מאוחסנים ב-LDAP הפנימי של Edge. אחרי המעבר ל-LDAP החיצוני, פרטי הכניסה של האדמין יאומתו שם במקום זאת. לכן, צריך להקצות את פרטי הכניסה למערכת החיצונית לפני שמפעילים אימות חיצוני ב-Edge.

    לדוגמה, אם הגדרתם והתקנתם את Apigee Edge for Private Cloud עם פרטי הכניסה של האדמין המערכת הגלובליים הבאים:

    שם משתמש: edgeuser@mydomain.com
    סיסמה: Secret123

    אז המשתמש edgeuser@mydomain.com עם הסיסמה Secret123 חייב להופיע גם ב-LDAP החיצוני.
  • אם מריצים אשכול של שרתי ניהול, חשוב לשים לב שצריך לבצע את כל השלבים במסמך הזה עבור כל שרת ניהול.

הגדרת אימות חיצוני

הפעילות העיקרית שתבצעו היא הגדרת הקובץ management-server.properties. הפעילות הזו כוללת עצירה והפעלה של שרת ניהול הקצה, החלטה אם רוצים להשתמש בקישור ישיר או עקיף, הצפנת פרטי כניסה רגישים ומשימות קשורות אחרות.

  1. חשוב: בשלב הזה צריך להחליט אם רוצים להשתמש בשיטת אימות הקישור העקיף או בשיטת אימות הקישור הישיר. ההחלטה הזו תשפיע על היבטים מסוימים בהגדרה. אימות חיצוני
  2. חשוב: צריך לבצע את שלבי ההגדרה האלה בכל שרת ניהול של Apigee Edge (אם אתם מריצים יותר משרת אחד).
  3. פותחים את /opt/apigee/customer/application/management-server.properties בכלי לעריכת טקסט. אם הקובץ לא קיים, יוצרים אותו.
  4. מוסיפים את השורה הבאה. הערה: חשוב לוודא שאין רווחים בסוף השורה.

    conf_security_authentication.user.store=externalized.authentication

    השורה הזו מוסיפה את תכונת האימות החיצוני להתקנת Edge for Private Cloud.
  5. כדי להקל על השלב הזה, יצרנו שתי תצורות לדוגמה עם הסברים מפורטים – אחת לאימות קישור ישיר ואחת לאימות קישור עקיף. עיינו בדוגמאות הבאות לקישור שבו אתם רוצים להשתמש והשלימו את ההגדרה:

    דוגמה להגדרת קישור ישיר
    דוגמה להגדרת קישור עקיף
  6. מפעילים מחדש את שרת הניהול:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  7. מוודאים שהשרת פועל:
    > /opt/apigee/apigee-service/bin/apigee-all status
  8. חשוב: עליך לקבוע הגדרות נוספות (או שתיהן) בנסיבות הבאות: (א) אם בכוונתך לגרום למשתמשים להתחבר באמצעות שמות משתמש שאינם כתובות אימייל. במקרה כזה, משתמש ה-sysadmin צריך לבצע אימות גם באמצעות שם משתמש וגם (ב) אם הסיסמה של חשבון המשתמש של ה-sysadmin ב-LDAP החיצוני שונה מהסיסמה שהגדרתם כשהתקנתם את Apigee Edge לענן פרטי בפעם הראשונה. הגדרות נדרשות לפרטי כניסה שונים של אדמין

דוגמה להגדרה של DIRECT BINDING

## The first property is always required to enable the external authorization feature. Do not change it.
conf_security_externalized.authentication.implementation.class=com.apigee.rbac.impl.LdapAuthenticatorImpl

## Identify the type of binding:
# Set to "true" for direct binding
# Set to "false" for indirect binding. 
conf_security_externalized.authentication.bind.direct.type=true

## The next seven properties are needed regardless of direct or indirect binding. You need to configure these per your external authentication installation. 
## The IP or domain for your external LDAP instance. 
conf_security_externalized.authentication.server.url=ldap://localhost:389

## Your external LDAP server version.
conf_security_externalized.authentication.server.version=3

## The server timeout in milliseconds. 
conf_security_externalized.authentication.server.conn.timeout=50000

## Change these baseDN values to match your external LDAP service. This attribute value will be provided by your external LDAP administrator, and may have more or fewer dc elements depending on your setup.
conf_security_externalized.authentication.user.store.baseDN=dc=apigee,dc=com

## Do not change this search string. It is used internally. 
conf_security_externalized.authentication.user.store.search.query=(&(${userAttribute}=${userId}))

## Identifies the external LDAP property you want to bind against for Authentication. For example if you are binding against an email address, this would typically be in the userPrincipalName property in your external LDAP instance. Alternatively if you are binding against the user’s ID, this would typically be in the sAMAccountName property:
conf_security_externalized.authentication.user.store.user.attribute=userPrincipalName

## The LDAP attribute where the user email value is stored. For direct binding, set it to userPrincipalName.
conf_security_externalized.authentication.user.store.user.email.attribute=userPrincipalName

## ONLY needed for DIRECT binding.
## The direct.bind.user.directDN property defines the string that is used for the bind against the external authentication service. Ensure it is set as follows:
conf_security_externalized.authentication.direct.bind.user.directDN=${userDN}

דוגמה להגדרה של קישור עקיף

## Required to enable the external authorization feature. Do not change it.
conf_security_externalized.authentication.implementation.class=com.apigee.rbac.impl.LdapAuthenticatorImpl

## Identifies the type of binding:
# Set to "true" for direct binding
# Set to "false" for indirect binding. 
conf_security_externalized.authentication.bind.direct.type=false

## The next seven properties are needed regardless of direct or indirect binding. You need to configure these per your external LDAP installation. 
## The IP or domain for your external LDAP instance. 
conf_security_externalized.authentication.server.url=ldap://localhost:389

## Replace with your external LDAP server version.
conf_security_externalized.authentication.server.version=3

## Set the server timeout in milliseconds. 
conf_security_externalized.authentication.server.conn.timeout=50000

## Change these baseDN values to match your external LDAP service. This attribute value will be provided by your external LDAP administrator, and may have more or fewer dc elements depending on your setup.
conf_security_externalized.authentication.user.store.baseDN=dc=apigee,dc=com

## Do not change this search string. It is used internally. 
conf_security_externalized.authentication.user.store.search.query=(&(${userAttribute}=${userId}))

## Identifies the external LDAP property you want to bind against for Authentication. For example if you are binding against an email address, this would typically be in the userPrincipalName property in your external LDAP instance. Alternatively if you are binding against the user’s ID, this would typically be in the sAMAccountName property. See also "Configuration required for different sysadmin credentials".
conf_security_externalized.authentication.user.store.user.attribute=userPrincipalName

## Used by Apigee to perform the Authorization step and currently, Apigee only supports email address for Authorization. Make sure to set it to the attribute in your external LDAP that stores the user’s email address. Typically this will be in the userPrincipalName property. 
conf_security_externalized.authentication.user.store.user.email.attribute=userPrincipalName

## The external LDAP username (for a user with search privileges on the external LDAP) and password and whether the password is encrypted. You must also set the attribute externalized.authentication.bind.direct.type to false.
## The password attribute can be encrypted or in plain text. See "Indirect binding only: Encrypting the external LDAP user’s password" for encryption instructions. Set the password.encrypted attribute to "true" if the password is encrypted. Set it to "false" if the password is in plain text.
conf_security_externalized.authentication.indirect.bind.server.admin.dn=myExtLdapUsername
conf_security_externalized.authentication.indirect.bind.server.admin.password=myExtLdapPassword
conf_security_externalized.authentication.indirect.bind.server.admin.password.encrypted=true

בדיקת ההתקנה

  1. מוודאים שהשרת פועל:
    > /opt/apigee/apigee-service/bin/apigee-all status
  2. מריצים את הפקודה הזו ומספקים קבוצה של פרטי כניסה של אדמין מערכת גלובלי ב-Apigee Edge. רק אדמין של Edge יכול להפעיל את הקריאה ל-API שנבדוק.

    חשוב: פרטי הכניסה זהים חייבים להופיע בחשבון LDAP החיצוני. אם לא, צריך להוסיף אותם עכשיו. חשוב לזכור ששם המשתמש הוא בדרך כלל כתובת אימייל, אבל הוא תלוי באופן שבו הגדרתם את האימות החיצוני, כפי שמוסבר למעלה במסמך הזה.
    > curl -v http://<management-server-ip>:8080/v1/o -u <Sysadmin Username>

    לדוגמה:
    > curl -v http://192.168.52.100:8080/v1/o -u jdoe@mydomain.com
  3. מזינים את הסיסמה כשמוצגת בקשה לעשות זאת.

    אם הפקודה מחזירה סטטוס 200 ורשימת ארגונים, סימן שההגדרה נכונה. הפקודה הזו מאמתת שהקריאה ל-API לשרת הניהול של Edge אומתה בהצלחה באמצעות מערכת ה-LDAP החיצונית.