أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X. info
الأدوات المستخدمة
تقدّم "سياسة LDAP" ما يلي:
- المصادقة: يتم التحقّق من بيانات اعتماد المستخدمين المقدَّمة في الطلب من خلال مقارنتها ببيانات الاعتماد في موفِّر LDAP. تمنحك "سياسة LDAP" مرونة كبيرة في ما يتعلق بـ
المصادقة، ما يتيح لك استخدام أي قيمة DN مع كلمة المرور، حتى إذا لم تكن قيمة DN
التي تريدها مضمّنة في الطلب. على سبيل المثال، لنفترض أنّك بحاجة إلى استخدام عنوان البريد الإلكتروني وكلمة المرور للمصادقة. في هذه الحالة، تتوفّر الخيارات التالية:
- إذا كان عنوان البريد الإلكتروني مضمّنًا في الطلب، يمكنك ببساطة استخدامه مع كلمة المرور للمصادقة على LDAP المصادقة.
- إذا لم يكن عنوان البريد الإلكتروني مضمّنًا في الطلب، ولكن كانت سمة DN أخرى مضمّنة (مثل رقم الهاتف)، يمكنك استخدام رقم الهاتف للحصول على عنوان البريد الإلكتروني المقابل من LDAP، ثم استخدام عنوان البريد الإلكتروني وكلمة المرور للمصادقة.
- البحث عن الاسم المميّز (DN): بالإضافة إلى المصادقة، يمكنك أيضًا استخدام "سياسة LDAP" لتحديد سمة مستخدم في الطلب، مثل عنوان البريد الإلكتروني، و إجراء طلب بحث يستردّ سمات DN الأخرى من LDAP لهذا المستخدم. يتم تخزين DN المستردّ في متغيّر.
استخدِم "سياسة LDAP" عندما يجب حصر الوصول إلى الموارد المحمية بالمستخدمين في موفِّر LDAP ، مثل مستخدمي المشرفين ومستخدمي المؤسسة والمطوّرين، خاصةً عندما يكون الوصول إلى رمز OAuth غير ضروري أو ثقيلاً جدًا. تم تصميم السياسة أيضًا لـ استرداد البيانات الوصفية لاسم النطاق لاستخدامها في مسارات خادم وكيل واجهة برمجة التطبيقات.
على سبيل المثال، يمكنك تنفيذ طلب بيانات من واجهة برمجة التطبيقات فقط عندما تتم مصادقة المستخدم بنجاح على LDAP، ثم استرداد سمات DN (اسم النطاق) للمستخدم اختياريًا بعد نجاح المصادقة.
لمزيد من المعلومات، يُرجى الاطّلاع على ما يلي:
- إدارة سياسة كلمة مرور LDAP التلقائية لإدارة واجهة برمجة التطبيقات
- "معلومات مهمة حول سياسة كلمة المرور" في منتدى Apigee
نماذج
المصادقة باستخدام اسم المستخدم وكلمة المرور
<Ldap name="4GLdapPolicy">
<LdapResource>ldap1</LdapResource>
<Authentication>
<UserName ref="request.header.username"/>
<Password ref="request.header.password"/>
<Scope>subtree</Scope>
<BaseDN ref="apigee.baseDN"></BaseDN> <!-- default is dc=apigee,dc=com -->
</Authentication>
</Ldap>يقدّم هذا النموذج عملية مصادقة على موفِّر LDAP. تُمرِّر السياسة اسم المستخدم وكلمة المرور من الطلب إلى LDAP للمصادقة.
المصادقة باستخدام سمة DN
<Ldap name="LdapPolicy">
<LdapResource>ldap1</LdapResource>
<Authentication>
<Password ref="request.header.password"/>
<SearchQuery>mail={request.header.mail}</SearchQuery>
<Scope>subtree</Scope>
<BaseDN ref="apigee.baseDN"></BaseDN> <!-- default is dc=apigee,dc=com -->
</Authentication>
</Ldap>تحصل هذه السياسة على DN للمستخدم باستخدام عنوان البريد الإلكتروني في عنوان الطلب، ثم تصادق على المستخدم على LDAP باستخدام كلمة المرور المقدَّمة في عنوان الطلب.
البحث في LDAP
<Ldap name="LdapPolicy"> <!-- using a custom LDAP provider --> <LdapConnectorClass>com.custom.ldap.MyProvider</LdapConnectorClass> <LdapResource>MyLdap</LdapResource> <Search> <BaseDN ref="apigee.baseDN"></BaseDN> <!-- default is dc=apigee,dc=com --> <SearchQuery>mail={request.header.mail}</SearchQuery> <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> <Scope></Scope> <!-- default is ‘subtree’ --> </Search> </Ldap>
تشير هذه السياسة إلى موفِّر LDAP مخصّص. تستخدم عنوان البريد الإلكتروني في عنوان الطلب لتحديد المستخدم، ثم تستردّ عنوان المستخدم ورقم هاتفه ولقبه من LDAP. يتم تخزين سمات DN المستردّة في متغيّر. يُرجى الاطّلاع على "المتغيّرات الخاصة بالسياسة" .
للبحث في LDAP واسترداد سمات DN، يجب أن يتضمّن الطلب بيانات اعتماد المشرف
مرجع العناصر
في ما يلي أوصاف لسمات وعناصر "سياسة LDAP".
|
العنصر |
الوصف |
|---|---|
|
|
العنصر الرئيسي الذي يحتوي على سمة name لإدخال اسم السياسة |
|
|
عند استخدام "سياسة LDAP" مع موفِّر LDAP مخصّص custom LDAP
provider (لا يقدّمه Apigee)، حدِّد فئة موصِّل LDAP المؤهلة بالكامل.
هذه هي الفئة التي نفّذت فيها واجهة Apigee's |
|
|
أدخِل اسم بيئة مورد LDAP. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء مورد LDAP. |
|
|
المستوى الأساسي من LDAP الذي توجد تحته جميع بياناتك على سبيل المثال، في
موفِّر LDAP من Apigee، تكون جميع البيانات ضمن
|
|
|
|
|
المصادقة |
|
|
|
العنصر الرئيسي لسلوك المصادقة الذي تنفّذه |
|
|
عنصر فارغ يأخذ إحدى السمات التالية:
إذا لم تكن تجري المصادقة باستخدام اسم المستخدم، أو إذا لم يكن اسم المستخدم مضمّنًا في الـ طلب، ليس عليك تضمين هذا العنصر. إذا كان اسم المستخدم مضمّنًا في الطلب، ولكنك تريد مصادقة مستخدم باستخدام سمة DN
غير اسم المستخدم، مثل عنوان البريد الإلكتروني، عليك تضمين |
|
|
عنصر فارغ يأخذ إحدى السمات التالية:
|
|
|
إذا كنت تريد المصادقة باستخدام سمة DN غير اسم المستخدم، مثل عنوان البريد الإلكتروني، عليك ضبط "سياسة LDAP" للحصول على سمة DN من الطلب (مثل اسم المستخدم)، والتي تُستخدم لتحديد المستخدم في LDAP، واسترداد عنوان البريد الإلكتروني، ومصادقة المستخدم. على سبيل المثال، لنفترض أنّ LDAP يحدّد سمة "mail" لتخزين عنوان البريد الإلكتروني:
|
|
البحث |
|
|
|
العنصر الرئيسي لسلوك البحث الذي تنفّذه |
|
|
من خلال تحديد المستخدم باستخدام البيانات الوصفية في الطلب أو الردّ، يمكنك استخدام هذا
العنصر لاسترداد سمات DN إضافية للمستخدم من LDAP. على سبيل المثال، إذا كان
الطلب يحتوي على عنوان البريد الإلكتروني للمستخدم، وكان LDAP يحدّد سمة
يبحث هذا الطلب في LDAP عن عنوان بريد إلكتروني يطابق عنوان البريد الإلكتروني في الطلب، و يمكن للسياسة الآن استرداد سمات DN إضافية لهذا المستخدم باستخدام عنصر Attributes. |
|
|
استخدِم عنصرًا واحدًا أو أكثر من على سبيل المثال، بعد أن يحدّد قيم السمات هي أسماء سمات DN المحدّدة في LDAP. <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> |
ملاحظات الاستخدام
يتيح لك Apigee Edge for Private Cloud الاستفادة من موفِّر LDAP في طلبات واجهة برمجة التطبيقات. باستخدام "سياسة LDAP" ، يمكن للتطبيقات مصادقة بيانات الاعتماد من خلال مقارنتها بالمستخدمين المخزّنين في LDAP، ويمكنك استرداد الأسماء المميّزة (DN) من LDAP، وهي البيانات الوصفية أو السمات المرتبطة بكل مستخدم، مثل عنوان البريد الإلكتروني والعنوان ورقم الهاتف. يتم تخزين DN الذي يتم عرضه في متغيّر لـ استخدامه لاحقًا من قِبل خادم وكيل واجهة برمجة التطبيقات.
إنشاء مورد 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="ldap1"> <Connection> <Hosts> <!-- port is optional: defaults to 389 for ldap:// and 636 for ldaps:// --> <Host port="636">foo.com</Host> </Hosts> <SSLEnabled>false</SSLEnabled> <!-- optional, defaults to false --> <Version>3</Version> <!-- optional, defaults to 3--> <Authentication>simple</Authentication> <!-- optional, only simple supported --> <ConnectionProvider>jndi|unboundid</ConnectionProvider> <!-- required --> <ServerSetType>single|round robin|failover</ServerSetType> <!-- not applicable for jndi --> <!-- If using a custom LDAP provider, the fully qualified class: --> <LdapConnectorClass>com.custom.ldap.MyProvider</LdapConnectorClass> </Connection> <ConnectPool enabled="true"> <!-- enabled is optional, defaults to true --> <Timeout>30000</Timeout> <!-- optional, in milliseconds; if not set, no timeout --> <Maxsize>50</Maxsize> <!-- optional; if not set, no max connections --> <Prefsize>30</Prefsize> <!-- optional; if not set, no pref size --> <Initsize></Initsize> <!-- optional; if not set, defaults to 1 --> <Protocol></Protocol> <!-- optional; if not set, defaults to 'ssl plain' --> </ConnectPool> <Admin> <DN>cn=manager,dc=apigee,dc=com</DN> <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:password -d \ '<LdapResource name="ldap1"> <Connection> <Hosts> <Host>foo.com</Host> </Hosts> <SSLEnabled>false</SSLEnabled> <Version>3</Version> <Authentication>simple</Authentication> <ConnectionProvider>unboundid</ConnectionProvider> <ServerSetType>round robin</ServerSetType> </Connection> <ConnectPool enabled="true"> <Timeout>30000</Timeout> <Maxsize>50</Maxsize> <Prefsize>30</Prefsize> <Initsize></Initsize> <Protocol></Protocol> </ConnectPool> <Admin> <DN>cn=manager,dc=apigee,dc=com</DN> <Password>secret</Password> </Admin> </LdapResource>'
رموز الاستجابة
في ما يلي رموز استجابة HTML التي تعرضها السياسة في حال النجاح أو الفشل:
- النجاح: 200
- الفشل: 401
استخدام موفِّر LDAP مخصّص في Edge for Private Cloud
استخدام موفِّر LDAP مخصّص
يأتي Apigee Edge for Private Cloud مع موفِّر 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 for 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 أو Standard Edition) من حزمة 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. |