Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X. Thông tin
Nội dung
Chính sách LDAP cung cấp:
- Xác thực: Thông tin đăng nhập của người dùng được cung cấp trong yêu cầu sẽ được xác thực dựa trên thông tin đăng nhập trong trình cung cấp LDAP. Chính sách LDAP mang lại cho bạn nhiều sự linh hoạt trong việc xác thực, cho phép bạn sử dụng bất kỳ giá trị DN nào cùng với mật khẩu, ngay cả khi giá trị DN mà bạn muốn không có trong yêu cầu. Ví dụ: giả sử bạn cần sử dụng email / mật khẩu để xác thực. Bạn có thể chọn trong các phương án sau:
- Nếu email có trong yêu cầu, bạn chỉ cần sử dụng email đó cùng với mật khẩu để xác thực LDAP.
- Nếu email không có trong yêu cầu, nhưng một thuộc tính DN khác có (chẳng hạn như số điện thoại), bạn có thể dùng số điện thoại để lấy email tương ứng từ LDAP, sau đó dùng email/mật khẩu để xác thực.
- Tìm kiếm tên riêng biệt (DN): Ngoài việc xác thực, bạn cũng có thể dùng Chính sách LDAP để xác định một thuộc tính người dùng trong yêu cầu, chẳng hạn như email, và thực hiện một truy vấn để truy xuất các thuộc tính DN khác từ LDAP cho người dùng đó. DN đã truy xuất được lưu trữ trong một biến.
Sử dụng Chính sách LDAP khi quyền truy cập vào các tài nguyên được bảo vệ chỉ nên giới hạn cho người dùng trong nhà cung cấp LDAP của bạn (chẳng hạn như người dùng quản trị, người dùng tổ chức và nhà phát triển), đặc biệt là khi quyền truy cập bằng mã thông báo OAuth là không cần thiết hoặc quá nặng. Chính sách này cũng được thiết kế để truy xuất siêu dữ liệu tên miền để sử dụng trong các luồng proxy API.
Ví dụ: bạn có thể chỉ thực thi một lệnh gọi API khi người dùng được xác thực thành công dựa trên LDAP; sau đó, bạn có thể truy xuất các thuộc tính DN (Tên miền) cho người dùng sau khi xác thực thành công.
Để biết thêm thông tin, hãy xem:
- Quản lý chính sách mật khẩu LDAP mặc định để quản lý API
- "Thông tin quan trọng về chính sách mật khẩu" trong Cộng đồng Apigee
Mẫu
Xác thực bằng tên người dùng/mật khẩu
<Ldap name="4GLdapPo>licy<"
Ld>apRes<ourceldap1/Ld>apRe<source
Auth>enticati<on
UserName ref="request.he>ader.use<rname"/
Password ref=">request.<heade>r.passw<ord&qu>ot;/
< Scopesubtree/Scope
>< Bas>e<DN ref="apigee.baseDN"/B>aseDN< !-- default is> d<c=api>gee,dc=com --
/Authentication
/LdapMẫu này cung cấp quy trình xác thực dựa trên một nhà cung cấp LDAP. Chính sách này chuyển tên người dùng và mật khẩu từ yêu cầu đến LDAP để xác thực.
Xác thực thuộc tính DN
<Ldap name="LdapPo>licy<"
Ld>apRes<ourceldap1/Ld>apRe<source
Auth>enticati<on
Password ref="request.he>ader.pas<sword">/
SearchQuerymail={<request.head>er.mail}</Sear>chQuery<
> Scopes<ubtree/Scope
BaseDN>< ref=&q>u<ot;apigee.baseDN"/BaseDN !-- >defau<lt is dc=apigee>,d<c=com> --
/Authentication
/LdapChính sách này lấy DN của người dùng bằng email trong tiêu đề yêu cầu, sau đó xác thực người dùng dựa trên LDAP bằng mật khẩu được cung cấp trong tiêu đề yêu cầu.
Tìm kiếm LDAP
<Ldap name="LdapPo>licy&<quot; !-- using a custom LDAP p>rovid<er -- LdapConn>ectorClasscom.custom.ldap.<MyProvider/LdapConn>ector<Class Ld>apReso<urceMyLdap/Ld>apRes<ource<>/span> Searc<h BaseDN ref="><;apigee>.<baseDN"/BaseDN !-- default is> dc=apige<e,dc=com --> SearchQuerymail={<request.head>er.mail}/<SearchQuer>y Att<ributes > < Attrib>uteaddress/At<tribute > < Attr>ibutephone/At<tribute > < Attr>ibutetitl<e/Attribute> </Attr><ibutes> < Scope/S‘cope !-’- d>efaul<t is su>b<tree >-- /Search /Ldap
Chính sách này tham chiếu đến một nhà cung cấp LDAP tuỳ chỉnh. Ứng dụng này sử dụng địa chỉ email trong tiêu đề yêu cầu để xác định người dùng, sau đó truy xuất địa chỉ, số điện thoại và chức danh của người dùng từ LDAP. Các thuộc tính DN đã truy xuất được lưu trữ trong một biến. Xem "Các biến theo chính sách cụ thể".
Để tìm kiếm LDAP và truy xuất các thuộc tính DN, yêu cầu phải bao gồm thông tin đăng nhập của quản trị viên.
Tham chiếu phần tử
Sau đây là nội dung mô tả về các phần tử và thuộc tính của Chính sách LDAP.
|
Phần tử |
Mô tả |
|---|---|
|
|
Phần tử mẹ có thuộc tính tên để bạn nhập tên chính sách. |
|
|
Khi sử dụng Chính sách LDAP với một trình cung cấp LDAP tuỳ chỉnh (không do Apigee cung cấp), hãy chỉ định lớp trình kết nối LDAP đủ điều kiện.
Đó là lớp mà bạn đã triển khai giao diện |
|
|
Nhập tên môi trường của tài nguyên LDAP. Hãy xem phần Tạo tài nguyên LDAP để biết thêm thông tin. |
|
|
Cấp cơ sở của LDAP mà tất cả dữ liệu của bạn tồn tại. Ví dụ: trong trình cung cấp LDAP của Apigee, tất cả dữ liệu đều nằm trong
|
|
|
|
|
Xác thực |
|
|
|
Phần tử mẹ cho hành vi xác thực mà bạn triển khai. |
|
|
Phần tử trống có một trong các thuộc tính sau:
Nếu không xác thực bằng tên người dùng hoặc nếu tên người dùng không có trong yêu cầu, bạn không cần thêm phần tử này. Nếu tên người dùng có trong yêu cầu, nhưng bạn muốn xác thực người dùng bằng một thuộc tính DN khác với tên người dùng, chẳng hạn như email, hãy thêm một |
|
|
Phần tử trống có một trong các thuộc tính sau:
|
|
|
Nếu bạn muốn xác thực bằng một thuộc tính DN khác ngoài tên người dùng, chẳng hạn như email, hãy định cấu hình chính sách LDAP để nhận một thuộc tính DN từ yêu cầu (chẳng hạn như tên người dùng). Thuộc tính này được dùng để xác định người dùng trong LDAP, truy xuất email và xác thực người dùng. Ví dụ: giả sử LDAP xác định thuộc tính "mail" để lưu trữ địa chỉ email:
|
|
Tìm kiếm |
|
|
|
Phần tử mẹ cho hành vi tìm kiếm mà bạn triển khai. |
|
|
Bằng cách xác định người dùng bằng siêu dữ liệu trong yêu cầu hoặc phản hồi, bạn có thể sử dụng phần tử này để truy xuất các thuộc tính DN bổ sung cho người dùng từ LDAP. Ví dụ: nếu yêu cầu chứa email của người dùng và LDAP của bạn xác định một thuộc tính
Truy vấn này tìm kiếm trong LDAP một email khớp với email trong yêu cầu và chính sách hiện có thể truy xuất các thuộc tính DN bổ sung cho người dùng đó bằng phần tử Thuộc tính. |
|
|
Sử dụng một hoặc nhiều phần tử Ví dụ: sau khi Giá trị thuộc tính là tên thuộc tính DN được xác định trong LDAP. <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> |
Lưu ý về cách sử dụng
Apigee Edge cho Đám mây riêng tư cho phép bạn tận dụng một trình cung cấp LDAP trong các lệnh gọi API. Với Chính sách LDAP, các ứng dụng có thể xác thực thông tin đăng nhập dựa trên người dùng được lưu trữ trong LDAP và bạn có thể truy xuất tên phân biệt (DN) từ LDAP – siêu dữ liệu hoặc thuộc tính được liên kết với mỗi người dùng, chẳng hạn như email, địa chỉ và số điện thoại. DN được trả về sẽ được lưu trữ trong một biến để proxy API sử dụng thêm.
Tạo một tài nguyên LDAP
Chính sách LDAP tận dụng một tài nguyên LDAP mà bạn tạo trong Apigee Edge. Tài nguyên LDAP cung cấp thông tin kết nối cho kho lưu trữ LDAP của bạn.
Để tạo và quản lý tài nguyên LDAP, hãy sử dụng API và tải trọng sau:
API
Tạo (POST) một tài nguyên LDAP hoặc liệt kê (GET) tất cả tài nguyên LDAP:
/v1/organizations/org_name/environments/environment/ldapresources
Lấy thông tin chi tiết cho (GET), Cập nhật (POST) và Xoá (DELETE) một tài nguyên LDAP:
/v1/organizations/org_name/environments/environment/ldapresources/ldap_resource_name
Phần tải
Sau đây là một tải trọng XML mẫu kèm theo nhận xét về cách sử dụng.
<LdapResource name="l>dap<1" >Conne<ction> Ho<sts !-- port is optional: defaults to 389 for ldap:// and 636 for l>daps://< -- Host >port=&q<uot;6>36&qu<ot;foo>.com/<Host />Hosts< SSLEna>b<ledfalse/SSLEnabled !-- optional, >defau<lts to >f<alse -- > < Version3/Version !-- optio>nal, <defaults to 3->- <Authentications>i<mple/Authentication !-- optional, only> simp<le supported -- > ConnectionPr<oviderjndi|unboundi>d</ConnectionProv>ider <!-- required >-- ServerSetTypesingle|<round robin|fa>i<lover/ServerSetType !-- not ap>plica<ble for jndi -- !-- If using a custom LDAP provider, the fully> qual<ified class: -- > LdapConnectorClasscom.cu<stom.ldap.MyProvide>r/L<dapConnecto>rCl<ass /Connection Connec>t<Pool enabled="true" !-- enabled is> opti<onal, d>efaul<ts to tr>u<e -- Timeout30000/Timeout !-- optional, in milliseco>nds; <if not >se<t, no ti>m<eout -- Maxsize50/Maxsize !-- optional; if >not s<et, no m>ax< connecti>o<ns -- Prefsize30/Prefsize !-- optiona>l; if< not set><, no pref> <size -- Initsize/Initsize !-- optional>; if <not set,>< defaults> <to 1 -- Protocol/Protocol !-- optional; if not s>et,< defaults to> <39;ss>l pla<in>' -- /ConnectPool A<dmi>n < DNcn=ma>nager,<dc=apigee>,dc<=com/D>N< Password>secret/Password /Admin /LdapResource
Ví dụ về lệnh curl: Tạo tài nguyên LDAP
Ví dụ sau đây tạo một tài nguyên LDAP có tên là ldap1.
curl -X POST -H "Content-Type: application/xml" \ https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/ldapresources \ -u apigee_email:passwor<d -d \ 'LdapResourc>e nam<e="ld>ap1&quo<t; > Conne<ctio>n < Host>s < Hostf>oo.com/<Host > /Hos<ts SS>LEnable<dfalse/>S<SLEnable>d < Version3/Vers>ion < Authenticat>ionsimp<le/Authentication > Con<nectionProviderunbo>undid/C<onnectionProv>ider <ServerSetTyper>ound <robin/Serve>rSetT<ype /Connection Co>nnectPo<ol enab>led=&<quot;tru>e"< >Ti<meout300>00/Time<out > <Maxsize50>/Maxsiz<e ><Prefsize3>0/Prefs<ize >< Initsiz>e/Ini<tsize >Proto<col/P>rotocol< > /ConnectPool Admin < > DNcn=<manager,>dc=api<gee,dc=co>m/DN < >Pas<swordsecret/P>assword /Admin /LdapResource'
Mã phản hồi
Sau đây là mã phản hồi HTML mà chính sách này trả về khi thành công hoặc không thành công:
- Thành công: 200
- Thất bại: 401
Sử dụng trình cung cấp LDAP tuỳ chỉnh trong Edge cho Private Cloud
Sử dụng trình cung cấp LDAP tuỳ chỉnh
Apigee Edge cho Đám mây riêng đi kèm với một nhà cung cấp LDAP đã được định cấu hình để tương tác với Chính sách LDAP. Tuy nhiên, nếu đang sử dụng một nhà cung cấp LDAP tuỳ chỉnh, bạn phải bật nhà cung cấp để hỗ trợ Chính sách LDAP. Để thực hiện việc này:
- Trong lớp nhà cung cấp LDAP, hãy triển khai giao diện
ExternalLdapConProvider.public interface ExternalLdapConProvider { void doAuthentication(LdapBean LlapBean, String userDN, String password, String baseDN); void doSearchAndAuthentication(LdapBean LlapBean, String password, String baseDN, String query, int scope); Collection<Map<String, String[]>> doSearch(LdapBean LlapBean, String query, String baseDN, Collection<String> requiredAttributes, int scope); void closeConnections(); } - Trong
<LdapConnectorClass>của cấu hình chính sách (các phần tiếp theo), hãy thêm tên lớp đủ điều kiện của trình cung cấp LDAP tuỳ chỉnh. - Tải tệp này xuống: custom-ldap.jar_.zip. (Bạn có thể phải nhấp chuột phải rồi chọn Lưu dưới dạng.)
- Giải nén tệp.
- Thêm tệp custom-ldap.jar vào môi trường của bạn và đảm bảo rằng tệp đó nằm trong đường dẫn lớp.
- Tạo một tài nguyên môi trường cho nhà cung cấp LDAP. Bạn sẽ sử dụng tên tài nguyên môi trường trong phần tử
<LdapResource>của chính sách LDAP.
Sử dụng UnboundID LDAP SDK cho Java
Bạn có thể sử dụng UnboundID LDAP SDK với chính sách LDAP, nhưng trước tiên, bạn phải tải phiên bản 2.3.1 xuống và thêm phiên bản này vào từng đường dẫn lớp của Trình xử lý thông báo.
Cách sử dụng UnboundID LDAP SDK với chính sách LDAP:
- Mở một trình duyệt rồi chuyển đến kho lưu trữ tệp Sourceforge cho UnboundID LDAP SDK:
https://sourceforge.net/projects/ldap-sdk/files/
- Tìm phiên bản 2.3.1 (SE hoặc Standard Edition) của SDK rồi tải tệp ZIP xuống cho phiên bản đó. Ví dụ: tải "unboundid-ldapsdk-2.3.1-se.zip" xuống.
- Giải nén tệp JAR từ tệp ZIP của SDK, như trong ví dụ sau:
unzip -j -d ~/tmp ~/Downloads/unboundid-ldapsdk-2.3.1-se.zip unboundid-ldapsdk-2.3.1-se/unboundid-ldapsdk-se.jar
Lệnh này chỉ trích xuất tệp JAR vào thư mục ~/tmp. Thư mục này sẽ thả cấu trúc thư mục bằng
-j, mặc dù không bắt buộc. - Trên mỗi nút Message Processor:
- Sao chép tệp JAR vào thư mục
/opt/apigee/edge-gateway/lib/thirdpartycủa Trình xử lý thông báo. - Nếu cần, hãy cấp cho người dùng Apigee quyền đối với tệp JAR để bộ xử lý thông báo có thể truy cập vào tệp đó.
- Khởi động lại Trình xử lý tin nhắn:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Edge thêm tất cả các thư viện bên thứ ba trong thư mục
/opt/apigee/edge-gateway/lib/thirdpartyvào classpath. - Sao chép tệp JAR vào thư mục
Biến luồng
Sau đây là các biến Chính sách LDAP do SearchQuery điền sẵn.
|
Biến |
Mô tả |
|---|---|
ldap.policyName.execution.success |
Sau khi chính sách được thực thi, biến luồng này sẽ chứa giá trị "true" hoặc "false", tuỳ thuộc vào kết quả. |
ldap.policyName.search.result[index]. attribute.attrName[index]=value |
Định dạng linh hoạt của biến này, đặc biệt là chỉ mục: tính đến nhiều thuộc tính, cũng như các thuộc tính có nhiều giá trị. Chỉ mục là một số bắt đầu từ 1. Nếu bạn không cung cấp số chỉ mục, số chỉ mục mặc định sẽ là 1. Nếu chính sách trả về địa chỉ, số điện thoại và email, bạn có thể truy xuất thuộc tính và giá trị đầu tiên bằng các biến sau: ldap.policyName.search.result.attribute.address ldap.policyName.search.result.attribute.phone ldap.policyName.search.result.attribute.email Nếu muốn truy xuất thuộc tính địa chỉ thứ ba trong kết quả tìm kiếm, bạn sẽ sử dụng thuộc tính này: ldap.policyName.search.result[3].attribute.address Nếu một thuộc tính có nhiều giá trị (ví dụ: nếu người dùng có nhiều địa chỉ email), bạn sẽ truy xuất địa chỉ email thứ hai từ kết quả như sau: ldap.policyName.search.result.attribute.mail[2] |
Mã lỗi
Các lỗi được trả về từ chính sách Edge tuân theo một định dạng nhất quán như mô tả trong phần Tài liệu tham khảo về mã lỗi.
Chính sách này sử dụng những mã lỗi sau:
| Mã lỗi | Thông điệp |
|---|---|
InvalidAttributeName |
Invalid attribute name {0}. |
InvalidSearchBase |
Search base can not be empty. |
InvalidValueForPassword |
Invalid value for password field. It can not be empty. |
InvalidSearchScope |
Invalid scope {0}. Allowed scopes are {1}. |
InvalidUserCredentials |
Invalid user credentials. |
InvalidExternalLdapReference |
Invalid external ldap reference {0}. |
LdapResourceNotFound |
Ldap resource {0} not found. |
BaseDNRequired |
Base DN required. |
OnlyReferenceOrValueIsAllowed |
Only value or reference is allowed for {0}. |
AttributesRequired |
At least one attribute required for search action. |
UserNameIsNull |
User name is null. |
SearchQueryAndUserNameCannotBePresent |
Both search query and username can not be present in the authentication action.
Please specify either one of them. |