أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المزايا
توفّر سياسة LDAP ما يلي:
- المصادقة: يتم التحقّق من صحة بيانات اعتماد المستخدم المقدّمة في الطلب.
مقابل بيانات الاعتماد في موفر LDAP. تمنحك سياسة LDAP قدرًا كبيرًا من المرونة مع
تتيح لك استخدام أي قيمة من قيم DN مع كلمة المرور، حتى إذا كانت قيمة DN هذه
الذي تريده ليس في الطلب. على سبيل المثال، لنفترض أنّك بحاجة إلى استخدام البريد الإلكتروني أو كلمة المرور
المصادقة. الخيارات التالية ممكنة:
- إذا كان البريد الإلكتروني في الطلب، فيمكنك استخدامه ببساطة مع كلمة مرور LDAP المصادقة.
- إذا لم يكن عنوان البريد الإلكتروني في الطلب، ولكن هناك سمة اسم مميز أخرى (مثل رقم الهاتف)، يمكنك استخدام رقم الهاتف للحصول على البريد الإلكتروني المقابل من LDAP، ثم استخدم البريد الإلكتروني / وكلمة المرور للمصادقة.
- البحث عن اسم مميز: بالإضافة إلى المصادقة، يمكنك سياسة LDAP أيضًا لتحديد سمة مستخدم في الطلب، مثل البريد الإلكتروني إجراء طلب بحث يسترد سمات DN الأخرى من LDAP لهذا المستخدم. الاسم المميز الذي تم استرجاعه هو المخزنة في متغير.
استخدام سياسة 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 للمصادقة.
مصادقة سمة الاسم المميز
<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>
وتحصل هذه السياسة على الاسم المميز للمستخدم مع الرسالة الإلكترونية في عنوان الطلب، ثم يصادق على المستخدم مقابل 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 واسترداد سمات الاسم المميز، يجب أن يتضمن الطلب المشرف بيانات الاعتماد.
مرجع العنصر
في ما يلي أوصاف لعناصر وسمات سياسة LDAP.
العنصر |
الوصف |
---|---|
|
العنصر الرئيسي الذي يتضمن سمة name (الاسم) لتتمكن من إدخال اسم السياسة: |
|
عند استخدام سياسة LDAP مع بروتوكول LDAP مخصّص
(لم يتم توفيره من خلال Apigee)، حدد فئة موصل LDAP المؤهلة بالكامل.
هذه هي الفئة التي استخدمت فيها |
|
أدخِل اسم البيئة لمورد LDAP. راجع إنشاء مورد LDAP لمزيد من المعلومات. |
|
المستوى الأساسي لـ LDAP الذي توجد تحته جميع بياناتك. على سبيل المثال، في
موفِّر خدمة LDAP في Apigee، تندرج جميع البيانات ضمن
|
|
|
المصادقة |
|
|
العنصر الرئيسي لسلوك المصادقة الذي تنفذه. |
|
عنصر فارغ يستخدم إحدى السمات التالية:
إذا لم تكن المصادقة باستخدام اسم المستخدم أو إذا لم يتم تضمين اسم المستخدم في طلبك، فلست بحاجة إلى تضمين هذا العنصر. إذا كان اسم المستخدم مدرَجًا في الطلب، ولكنّك تريد مصادقة مستخدم باستخدام سمة DN
(غير اسم المستخدم، مثل البريد الإلكتروني،) تتضمن |
|
عنصر فارغ يستخدم إحدى السمات التالية:
|
|
إذا كنت تريد المصادقة باستخدام سمة اسم مميز (DN) غير اسم المستخدم، مثل البريد الإلكتروني، تهيئة سياسة LDAP للحصول على سمة الاسم المميز من الطلب (مثل اسم المستخدم)، تُستخدم لتحديد هوية المستخدم في LDAP واسترداد البريد الإلكتروني ومصادقة المستخدم. على سبيل المثال، بافتراض أن LDAP يحدد "البريد" سمة لتخزين عنوان البريد الإلكتروني:
|
بحث |
|
|
تمثّل هذه السمة العنصر الرئيسي لسلوك البحث الذي تنفّذه. |
|
من خلال تحديد المستخدم باستخدام البيانات الوصفية في الطلب أو الاستجابة، يمكنك استخدام
لاسترداد سمات 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 — البيانات الوصفية أو السمات المرتبطة كل مستخدم، مثل عنوان البريد الإلكتروني والعنوان ورقم الهاتف. يتم تخزين الاسم المميز (DN) المعروض في متغير لمزيد من الاستخدام من قبل الخادم الوكيل لواجهة برمجة التطبيقات.
إنشاء مورد LDAP
تستفيد سياسة LDAP من مورد LDAP الذي تنشئه في Apigee Edge. مورد LDAP يقدم معلومات الاتصال إلى مستودع LDAP.
لإنشاء موارد LDAP وإدارتها، استخدم واجهة برمجة التطبيقات والحمولة التاليين:
واجهة برمجة التطبيقات
أنشئ (POST
) مورد LDAP أو قائمة (GET
) بجميع موارد LDAP:
/v1/organizations/org_name/environments/environment/ldapresources
يمكنك الحصول على تفاصيل (GET
) والتحديث (POST
) وحذف (DELETE
) مورد LDAP:
/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>
مثال على التجبير: إنشاء مورد 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 إلى بيئتك وتأكَّد من أنه موجود في مسار classpath.
- أنشئ مورد بيئة لموفّر LDAP. ستستخدم مورد البيئة
الاسم في العنصر
<LdapResource>
في سياسة LDAP.
استخدام حزمة تطوير البرامج (SDK) لـ UnboundID LDAP لنظام Java
يمكنك استخدام حزمة تطوير البرامج (SDK) لـ UnboundID LDAP مع سياسة LDAP، ولكن يجب أولاً تنزيل الإصدار 2.3.1 ثم قم بإضافتها إلى كل مسار من مسارات فئات معالج الرسائل.
لاستخدام حزمة تطوير البرامج (SDK) لـ UnboundID LDAP مع سياسة LDAP:
- افتح متصفحًا وانتقِل إلى مستودع ملفات Sourceforge لحزمة تطوير البرامج (SDK) LDAP لـ UnboundID:
https://sourceforge.net/projects/ldap-sdk/files/
- ابحث عن الإصدار 2.3.1 (SE أو الإصدار العادي) من SDK ونزّل ملف ZIP لذلك الإصدار. على سبيل المثال، نزِّل "unboundid-ldapsdk-2.3.1-se.zip".
- استخرِج ملف JAR من ملف SDK بتنسيق ZIP، كما هو موضّح في المثال التالي:
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 |
بعد تنفيذ السياسة، يحتوي متغيّر التدفق هذا على القيمة "صحيح" أو "خطأ" أو اعتمادًا على النتيجة. |
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. |