קטע זה מסביר איך לקבל, להתקין ולהגדיר את הרכיבים הדרושים לשלב שירות LDAP ב-Apigee Edge לאימות משתמשים.
דרישות מוקדמות
- צריך להתקין Apigee Edge להתקנת ענן פרטי 4.18.05.
- צריכים להיות לכם פרטי כניסה גלובליים של אדמין ב-Apigee Edge בשביל ענן פרטי כדי מבצעים את ההתקנה הזו.
- אתם צריכים לדעת מהי ספריית הבסיס של Apigee Edge להתקנת ענן פרטי.
תיקיית השורש שמוגדרת כברירת מחדל היא
/opt
. - עליך להוסיף את פרטי הכניסה של מנהל מערכת גלובלי ל-Edge
LDAP חיצוני. חשוב לזכור שכברירת מחדל, פרטי הכניסה של האדמין מאוחסנים ב-Edge.
LDAP פנימי. אחרי שתעברו אל ה-LDAP החיצוני, פרטי הכניסה של מנהל המערכת
יאומתו שם במקום זאת. לכן, צריך להקצות את פרטי הכניסה
למערכת החיצונית לפני שמפעילים אימות חיצוני ב-Edge.
לדוגמה, אם הגדרת והתקנת את Apigee Edge עבור ענן פרטי עם גישה גלובלית פרטי כניסה של מנהל מערכת בתור:
username: edgeuser@mydomain.com password: Secret123
ואז המשתמש
edgeuser@mydomain.com
עם הסיסמהSecret123
חייב להיות נוכח גם ב-LDAP החיצוני. - אם מפעילים אשכול של שרת ניהול, חשוב לשים לב שעליך לבצע את כל השלבים במסמך הזה עבור כל שרת ניהול.
הגדרת אימות חיצוני
הפעילות העיקרית שתבצעו היא הגדרת הקובץ של management-server.properties
.
הפעילות הזו כוללת עצירה והפעלה של שרת ניהול Edge, במטרה להחליט אם
שרוצים להשתמש בקישור ישיר או עקיף, בהצפנת פרטי כניסה רגישים או
למשימות סיווג.
- חשוב: צריך להחליט עכשיו אם בכוונתך להשתמש באופן עקיף או ישיר לשיטת האימות של הקישור. ההחלטה הזו תשפיע על היבטים מסוימים של ההגדרה. צפייה אימות חיצוני.
- חשוב: צריך לבצע את שלבי ההגדרה האלה בכל ניהול של Apigee Edge שרת (אם אתם מפעילים יותר מאישור אחד).
- לפתיחת
/opt/apigee/customer/application/management-server.properties
בכלי לעריכת טקסט. אם הקובץ לא קיים, יוצרים אותו. - מוסיפים את השורה הבאה:
conf_security_authentication.user.store=externalized.authentication
השורה הזו מוסיפה את תכונת האימות החיצוני ל-Edge לענן פרטי בתהליך ההתקנה.
- כדי להקל על השלב הזה, יצרנו שתי הגדרות לדוגמה עם תגובות טובות – אחד לאימות ישיר והשני לאימות עקיף. דוגמאות של את הקישור שבו אתם רוצים להשתמש ומשלימים את ההגדרה:
- מפעילים מחדש את שרת הניהול:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- מוודאים שהשרת פועל:
/opt/apigee/apigee-service/bin/apigee-all status
- חשוב: צריך לקבוע הגדרות אישיות נוספות באחד מהשניים (או בשניהם)
בנסיבות הבאות:
- אם בכוונתך לאפשר למשתמשים להתחבר באמצעות שמות משתמש
ולא כתובות אימייל. במקרה כזה, המשתמש ה-Sysadmin יצטרך גם לבצע אימות באמצעות
שם משתמש.
וגם/או
- אם הסיסמה של חשבון המשתמש של האדמין ב LDAP שונה מהסיסמה שהגדרת כשהתקנת לראשונה את Apigee Edge עבור ענן פרטי. ראו נדרשת הגדרה של פרטי כניסה שונים של sysadmin.
- אם בכוונתך לאפשר למשתמשים להתחבר באמצעות שמות משתמש
ולא כתובות אימייל. במקרה כזה, המשתמש ה-Sysadmin יצטרך גם לבצע אימות באמצעות
שם משתמש.
קישור ישיר דגימת הגדרות אישיות
## 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 in Microsoft Active Directory, this would be ## 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 with AD, 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
בדיקת ההתקנה
- מוודאים שהשרת פועל:
/opt/apigee/apigee-service/bin/apigee-all status
- מריצים את הפקודה הזו, ומספקים קבוצה של אדמין מערכת גלובלי של Apigee Edge
פרטי כניסה לחשבון. את הקריאה ל-API שנבדוק אפשר לבצע רק באמצעות
sysadmin.
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
- מזינים את הסיסמה כשמתבקשים לעשות זאת.
אם הפקודה מחזירה סטטוס 200 ורשימה של ארגונים, ההגדרה נכונה. הפקודה הזו מאמתת שהקריאה ל-API לשרת ניהול הקצה (Edge Management) הסתיימה בהצלחה שאומת באמצעות מערכת LDAP החיצונית.