أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
الأدوات المستخدمة
توفّر سياسة LDAP ما يلي:
- المصادقة: يتم التحقّق من صحة بيانات اعتماد المستخدم المقدَّمة في الطلب
مقارنةً ببيانات الاعتماد في موفّر LDAP. تمنحك سياسة LDAP الكثير من المرونة في ما يتعلق بالمصادقة، ما يتيح لك استخدام أي قيمة اسم مميّز مع كلمة المرور، حتى إذا لم تكن قيمة الاسم المميز التي تريدها مضمّنة في الطلب. على سبيل المثال، لنفترض أنّك بحاجة إلى استخدام عنوان البريد الإلكتروني وكلمة المرور للمصادقة. في ما يلي الخيارات المحتمَلة:
- إذا كان عنوان البريد الإلكتروني مضمّنًا في الطلب، يمكنك ببساطة استخدامه مع كلمة المرور لإجراء مصادقة LDAP.
- إذا لم يكن البريد الإلكتروني مضمّنًا في الطلب، ولكن كانت هناك سمة DN أخرى (مثل رقم الهاتف)، يمكنك استخدام رقم الهاتف للحصول على البريد الإلكتروني المقابل من LDAP، ثم استخدام البريد الإلكتروني وكلمة المرور للمصادقة.
- البحث عن الاسم المميز (DN): بالإضافة إلى المصادقة، يمكنك أيضًا استخدام سياسة LDAP لتحديد سمة مستخدم في الطلب، مثل البريد الإلكتروني، وإجراء طلب بحث يسترد سمات DN أخرى من LDAP لهذا المستخدم. يتم تخزين الاسم المميز الذي تم استرجاعه في متغيّر.
استخدِم سياسة LDAP عندما يجب أن يقتصر الوصول إلى الموارد المحمية على المستخدمين في موفّر LDAP، مثل المستخدمين المشرفين ومستخدمي المؤسسة والمطوّرين، خاصةً عندما يكون الوصول إلى رمز OAuth المميز غير ضروري أو معقّدًا جدًا. تم تصميم السياسة أيضًا لاسترداد البيانات الوصفية لاسم النطاق لاستخدامها في تدفقات خادم وكيل API.
على سبيل المثال، يمكنك تنفيذ طلب من واجهة برمجة التطبيقات فقط عند مصادقة المستخدم بنجاح في LDAP، ثم استرداد سمات DN (اسم النطاق) للمستخدم بشكل اختياري بعد نجاح المصادقة.
للحصول على معلومات إضافية، يُرجى الاطّلاع على:
- إدارة سياسة كلمات المرور التلقائية في LDAP لإدارة واجهة برمجة التطبيقات
- معلومات مهمة حول سياسة كلمات المرور في منتدى Apigee
نماذج
المصادقة باستخدام اسم المستخدم وكلمة المرور
<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
/Ldapيوفر هذا النموذج مصادقة مع موفّر LDAP. تنقل السياسة اسم المستخدم وكلمة المرور من الطلب إلى LDAP لإجراء المصادقة.
مصادقة سمة الاسم المميز
<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
/Ldapتحصل هذه السياسة على الاسم المميز للمستخدم مع البريد الإلكتروني في عنوان الطلب، ثم تجري مصادقة للمستخدم باستخدام LDAP وكلمة المرور المقدَّمة في عنوان الطلب.
البحث في 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
تشير هذه السياسة إلى موفّر LDAP مخصّص. تستخدم هذه الخدمة عنوان البريد الإلكتروني في عنوان الطلب لتحديد هوية المستخدم، ثم تسترد عنوانه ورقم هاتفه ولقبه من LDAP. يتم تخزين سمات الاسم المميز التي تم استردادها في متغيّر. اطّلِع على "المتغيرات الخاصة بالسياسة".
للبحث في LDAP واسترداد سمات الاسم المميز، يجب أن يتضمّن الطلب بيانات اعتماد المشرف.
مرجع العنصر
في ما يلي أوصاف لعناصر وسمات سياسة LDAP.
|
العنصر |
الوصف |
|---|---|
|
|
عنصر رئيسي يتضمّن سمة اسم يمكنك من خلالها إدخال اسم السياسة |
|
|
عند استخدام سياسة LDAP مع موفّر LDAP مخصّص (غير مقدَّم من Apigee)، حدِّد فئة موصّل LDAP المؤهَّلة بالكامل.
هذه هي الفئة التي نفّذت فيها واجهة |
|
|
أدخِل اسم بيئة مورد LDAP. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء مرجع LDAP. |
|
|
المستوى الأساسي من LDAP الذي تتوفّر فيه جميع بياناتك على سبيل المثال، في موفّر LDAP في Apigee، تندرج جميع البيانات ضمن
|
|
|
|
|
المصادقة |
|
|
|
العنصر الرئيسي لسلوك المصادقة الذي تنفّذه. |
|
|
عنصر فارغ يقبل إحدى السمات التالية:
إذا لم تكن بصدد المصادقة باستخدام اسم المستخدم، أو إذا لم يكن اسم المستخدم مضمّنًا في الطلب، ليس عليك تضمين هذا العنصر. إذا كان اسم المستخدم مضمّنًا في الطلب، ولكنك تريد مصادقة مستخدم باستخدام سمة DN غير اسم المستخدم، مثل البريد الإلكتروني، أدرِج |
|
|
عنصر فارغ يقبل إحدى السمات التالية:
|
|
|
إذا أردت إجراء المصادقة باستخدام سمة اسم مميّز غير اسم المستخدم، مثل البريد الإلكتروني، اضبط سياسة LDAP للحصول على سمة اسم مميّز من الطلب (مثل اسم المستخدم)، والتي تُستخدَم لتحديد المستخدم في LDAP، واسترداد البريد الإلكتروني، ومصادقة المستخدم. على سبيل المثال، بافتراض أنّ LDAP تحدّد السمة "mail" لتخزين عنوان البريد الإلكتروني:
|
|
بحث |
|
|
|
العنصر الرئيسي لسلوك البحث الذي تنفّذه |
|
|
من خلال تحديد المستخدم باستخدام البيانات الوصفية في الطلب أو الرد، يمكنك استخدام هذا العنصر لاسترداد سمات DN إضافية للمستخدم من LDAP. على سبيل المثال، إذا كان الطلب يتضمّن البريد الإلكتروني للمستخدم، وكان LDAP يحدّد السمة
يبحث طلب البحث هذا في LDAP عن عنوان بريد إلكتروني مطابق للعنوان الوارد في الطلب، ويمكن للسياسة الآن استرداد سمات DN الإضافية لهذا المستخدم باستخدام عنصر السمات. |
|
|
استخدِم عنصرًا واحدًا أو أكثر من عناصر على سبيل المثال، بعد أن يحدّد قيم السمات هي أسماء سمات الاسم المميز (DN) المحدّدة في LDAP. <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> |
ملاحظات الاستخدام
تتيح لك Apigee Edge for Private Cloud الاستفادة من موفّر LDAP في طلبات البيانات من واجهة برمجة التطبيقات. باستخدام سياسة LDAP، يمكن للتطبيقات مصادقة بيانات الاعتماد مقابل المستخدمين المخزّنين في LDAP، ويمكنك استرداد الأسماء المميزة (DN) من LDAP، أي البيانات الوصفية أو السمات المرتبطة بكل مستخدم، مثل البريد الإلكتروني والعنوان ورقم الهاتف. يتم تخزين الاسم المميز الذي تم عرضه في متغير لاستخدامه لاحقًا من خلال خادم وكيل لواجهة برمجة التطبيقات.
إنشاء مورد LDAP
تستفيد سياسة LDAP من مورد LDAP الذي تنشئه في Apigee Edge. يوفر مصدر LDAP معلومات الاتصال بمستودع LDAP.
لإنشاء موارد LDAP وإدارتها، استخدِم واجهة برمجة التطبيقات والحِزمة التالية:
واجهة برمجة التطبيقات
إنشاء (POST) مصدر LDAP أو إدراج (GET) جميع مصادر LDAP:
/v1/organizations/org_name/environments/environment/ldapresources
للحصول على تفاصيل حول مصدر LDAP (GET) وتعديله (POST) وحذفه (DELETE)، اتّبِع الخطوات التالية:
/v1/organizations/org_name/environments/environment/ldapresources/ldap_resource_name
الحمولة
في ما يلي نموذج لحِزمة XML مع تعليقات حول الاستخدام.
<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
مثال على curl: إنشاء مورد LDAP
ينشئ المثال التالي مصدر LDAP باسم 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'
رموز الاستجابة
في ما يلي رموز استجابة HTML التي تعرضها السياسة عند النجاح أو التعذّر:
- النجاح: 200
- تعذُّر: 401
استخدام موفّر LDAP مخصّص في Edge for Private Cloud
استخدام موفّر LDAP مخصّص
يتضمّن Apigee Edge للسحابة الإلكترونية الخاصة موفّر LDAP تم إعداده مسبقًا للتفاعل مع سياسة LDAP. ومع ذلك، إذا كنت تستخدم موفِّر LDAP مخصّصًا، عليك تفعيل الموفِّر ليتوافق مع سياسة LDAP. ولإجراء ذلك:
- في فئة موفّر LDAP، نفِّذ واجهة
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(); } - في
<LdapConnectorClass>لإعدادات السياسة (الأقسام التالية)، أضِف اسم الفئة المؤهَّل بالكامل لموفّر LDAP المخصّص. - نزِّل هذا الملف: custom-ldap.jar_.zip. (قد تحتاج إلى النقر بزر الماوس الأيمن واختيار حفظ باسم).
- فك ضغط الملف
- أضِف ملف custom-ldap.jar إلى بيئتك وتأكَّد من أنّه في مسار الفئة.
- أنشئ مرجعًا للبيئة لمزوّد LDAP. ستستخدم اسم مورد البيئة في العنصر
<LdapResource>من سياسة LDAP.
استخدام UnboundID LDAP SDK للغة Java
يمكنك استخدام UnboundID LDAP SDK مع سياسة LDAP، ولكن عليك أولاً تنزيل الإصدار 2.3.1 وإضافته إلى كل مسارات الفئات الخاصة بـ "معالج الرسائل".
لاستخدام حزمة UnboundID LDAP SDK مع سياسة LDAP، اتّبِع الخطوات التالية:
- افتح متصفّحًا وانتقِل إلى مستودع ملفات Sourceforge لحزمة UnboundID LDAP SDK:
https://sourceforge.net/projects/ldap-sdk/files/
- ابحث عن الإصدار 2.3.1 (SE أو الإصدار العادي) من حزمة تطوير البرامج (SDK) ونزِّل ملف ZIP الخاص بهذا الإصدار. على سبيل المثال، نزِّل الملف "unboundid-ldapsdk-2.3.1-se.zip".
- استخرِج ملف JAR من ملف ZIP الخاص بحزمة تطوير البرامج (SDK)، كما هو موضّح في المثال التالي:
unzip -j -d ~/tmp ~/Downloads/unboundid-ldapsdk-2.3.1-se.zip unboundid-ldapsdk-2.3.1-se/unboundid-ldapsdk-se.jar
يستخرج هذا الأمر ملف JAR فقط إلى الدليل ~/tmp. يزيل بنية الدليل مع
-j، ولكن هذا الإجراء اختياري. - على كل عقدة من "معالج الرسائل":
- انسخ ملف JAR إلى دليل
/opt/apigee/edge-gateway/lib/thirdpartyالخاص بـ "معالج الرسائل". - إذا لزم الأمر، امنح مستخدم Apigee الإذن بالوصول إلى ملف JAR حتى يتمكّن معالج الرسائل من الوصول إليه.
- أعِد تشغيل "معالج الرسائل" باتّباع الخطوات التالية:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
يضيف Edge جميع المكتبات التابعة لجهات خارجية في الدليل
/opt/apigee/edge-gateway/lib/thirdpartyإلى مسار الفئة. - انسخ ملف JAR إلى دليل
متغيّرات التدفق
في ما يلي متغيّرات "سياسة LDAP" التي يتم ملؤها بواسطة SearchQuery.
|
متغيّر |
الوصف |
|---|---|
ldap.policyName.execution.success |
بعد تنفيذ السياسة، يحتوي متغيّر التدفق هذا على القيمة "true" أو "false"، استنادًا إلى النتيجة. |
ldap.policyName.search.result[index]. attribute.attrName[index]=value |
يتيح التنسيق المرن لهذا المتغيّر، والفهرس على وجه الخصوص، إمكانية استخدام سمات متعددة، بالإضافة إلى سمات تتضمّن قيمًا متعددة. الفهرس هو رقم يبدأ من 1. في حال عدم توفير رقم فهرس، يكون رقم الفهرس التلقائي هو 1. إذا كانت السياسة تعرض العنوان ورقم الهاتف والبريد الإلكتروني، يمكنك استرداد السمة والقيمة الأولى باستخدام المتغيرات التالية: ldap.policyName.search.result.attribute.address ldap.policyName.search.result.attribute.phone ldap.policyName.search.result.attribute.email إذا أردت استرداد سمة العنوان الثالثة في نتائج البحث، يمكنك استخدام ما يلي: ldap.policyName.search.result[3].attribute.address إذا كانت إحدى السمات تتضمّن قيمًا متعددة (على سبيل المثال، إذا كان لدى المستخدم عناوين بريد إلكتروني متعددة)، يمكنك استرداد عنوان البريد الإلكتروني الثاني من النتائج على النحو التالي: ldap.policyName.search.result.attribute.mail[2] |
رموز الخطأ
تتّبع الأخطاء التي يتم عرضها من سياسات Edge تنسيقًا متسقًا كما هو موضّح في مرجع رموز الخطأ.
تستخدم هذه السياسة رموز الخطأ التالية:
| رمز الخطأ | الرسالة |
|---|---|
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. |