ส่วนนี้จะอธิบายวิธีการค้นหา ติดตั้ง และกำหนดค่าคอมโพเนนต์ที่จำเป็นในการ ผสานรวมบริการ LDAP เข้ากับ Apigee Edge เพื่อการตรวจสอบสิทธิ์ผู้ใช้
ข้อกำหนดเบื้องต้น
- คุณต้องมีการติดตั้ง Apigee Edge สำหรับ Private Cloud 4.18.05
- คุณต้องมีข้อมูลเข้าสู่ระบบของผู้ดูแลระบบส่วนกลางใน Apigee Edge สำหรับ Private Cloud เพื่อทำสิ่งต่อไปนี้ ทำการติดตั้งนี้
- คุณจำเป็นต้องทราบไดเรกทอรีรูทของ Apigee Edge สำหรับการติดตั้ง Private Cloud
ไดเรกทอรีรากเริ่มต้นคือ
/opt
- คุณต้องเพิ่มข้อมูลเข้าสู่ระบบของผู้ดูแลระบบส่วนกลางของ Edge ลงในส่วน
LDAP ภายนอก โปรดทราบว่าโดยค่าเริ่มต้น ข้อมูลเข้าสู่ระบบของผู้ดูแลระบบจะจัดเก็บอยู่ใน Edge
LDAP ภายใน เมื่อคุณเปลี่ยนไปใช้ LDAP ภายนอก ข้อมูลเข้าสู่ระบบของผู้ดูแลระบบ SIS
จะได้รับการตรวจสอบสิทธิ์ที่นั่นแทน คุณจึงต้องจัดสรรข้อมูลเข้าสู่ระบบให้กับ
ระบบภายนอกก่อนเปิดใช้การตรวจสอบสิทธิ์ภายนอกใน Edge
เช่น หากคุณกำหนดค่าและติดตั้ง Apigee Edge สำหรับ Private Cloud ที่ใช้ส่วนกลาง ข้อมูลประจำตัวของผู้ดูแลระบบเป็น:
username: edgeuser@mydomain.com password: Secret123
จากนั้นผู้ใช้
edgeuser@mydomain.com
ที่มีรหัสผ่านSecret123
ต้องมีอยู่ใน LDAP ภายนอกด้วย - หากคุณเรียกใช้คลัสเตอร์เซิร์ฟเวอร์การจัดการ โปรดทราบว่าคุณต้องดำเนินการตามทุกขั้นตอน ในเอกสารนี้สำหรับเซิร์ฟเวอร์การจัดการแต่ละเครื่อง
การกำหนดค่าการตรวจสอบสิทธิ์ภายนอก
กิจกรรมหลักที่คุณจะทำคือการกำหนดค่าไฟล์ management-server.properties
กิจกรรมนี้รวมถึงการหยุดและเริ่มต้น Edge Management Server เพื่อตัดสินใจว่าคุณ
ต้องการใช้การเชื่อมโยงโดยตรงหรือโดยอ้อม การเข้ารหัสข้อมูลเข้าสู่ระบบที่มีความละเอียดอ่อน และข้อมูลอื่นๆ ที่เกี่ยวข้อง
งาน
- สำคัญ: ตัดสินใจทันทีว่าตั้งใจจะใช้ทางอ้อมหรือทางตรง วิธีการตรวจสอบสิทธิ์การเชื่อมโยง การตัดสินใจนี้จะส่งผลต่อการกำหนดค่าในบางด้าน โปรดดู การตรวจสอบสิทธิ์ภายนอก
- สำคัญ: คุณต้องทำตามขั้นตอนการกำหนดค่าเหล่านี้ในการจัดการ Apigee Edge แต่ละรายการ เซิร์ฟเวอร์ (หากคุณใช้มากกว่า 1 เครื่อง)
- เปิด
/opt/apigee/customer/application/management-server.properties
ในเครื่องมือแก้ไขข้อความ หากไม่มีไฟล์ ให้สร้างขึ้นมา - เพิ่มบรรทัดต่อไปนี้
conf_security_authentication.user.store=externalized.authentication
บรรทัดนี้จะเพิ่มฟีเจอร์การตรวจสอบสิทธิ์ภายนอกไปยัง Edge for Private Cloud ของคุณ
- เพื่อให้ขั้นตอนนี้ง่ายขึ้น เราได้สร้างตัวอย่างการกำหนดค่าที่มีหมายเหตุชัดเจน 2 รายการ ได้แก่ ข้อแรกสำหรับการตรวจสอบโดยตรงและอีกส่วนหนึ่งสำหรับการตรวจสอบสิทธิ์การเชื่อมโยงโดยอ้อม ดูตัวอย่างด้านล่างสำหรับ การเชื่อมโยงที่คุณต้องการใช้ และกำหนดค่าให้เสร็จสมบูรณ์:
- รีสตาร์ทเซิร์ฟเวอร์การจัดการ:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- ตรวจสอบว่าเซิร์ฟเวอร์ทำงานอยู่ โดยทำดังนี้
/opt/apigee/apigee-service/bin/apigee-all status
- สำคัญ: คุณต้องกำหนดค่าเพิ่มเติมภายใต้หัวข้อใดหัวข้อหนึ่ง (หรือทั้ง 2 อย่าง)
ในสถานการณ์ต่อไปนี้
- หากคุณตั้งใจให้ผู้ใช้เข้าสู่ระบบโดยใช้ชื่อผู้ใช้ที่
ไม่ใช่ที่อยู่อีเมล ในกรณีนี้ ผู้ใช้ที่ดูแลระบบของคุณจะต้องตรวจสอบสิทธิ์กับ
ชื่อผู้ใช้
และ/หรือ
- หากรหัสผ่านสำหรับบัญชีผู้ใช้ sysadmin ภายนอก LDAP ต่างจากรหัสผ่านที่คุณกำหนดค่าไว้เมื่อติดตั้ง Apigee Edge เป็นครั้งแรก Private Cloud โปรดดูหัวข้อต้องกำหนดค่าข้อมูลเข้าสู่ระบบอื่นของผู้ดูแลระบบ
- หากคุณตั้งใจให้ผู้ใช้เข้าสู่ระบบโดยใช้ชื่อผู้ใช้ที่
ไม่ใช่ที่อยู่อีเมล ในกรณีนี้ ผู้ใช้ที่ดูแลระบบของคุณจะต้องตรวจสอบสิทธิ์กับ
ชื่อผู้ใช้
การเชื่อมโยงโดยตรง ตัวอย่างการกำหนดค่า
## 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 ที่เราจะทดสอบจะทำได้โดย Edge เท่านั้น
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 สำเร็จแล้ว ผ่านการตรวจสอบสิทธิ์ผ่านระบบ LDAP ภายนอก