يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
الموضوع
توفر سياسة LDAP ما يلي:
- المصادقة: يتم التحقق من بيانات اعتماد المستخدم المقدّمة في الطلب مقابل بيانات الاعتماد في موفّر خدمة LDAP. تمنحك سياسة LDAP قدرًا كبيرًا من المرونة في
المصادقة، ما يتيح لك استخدام أي قيمة للاسم المميَّز مع كلمة المرور، حتى إذا لم تكن قيمة الاسم المميَّز
التي تريدها مدرَجة في الطلب. على سبيل المثال، لنفترض أنك تحتاج إلى استخدام البريد الإلكتروني / كلمة المرور للمصادقة. في ما يلي الخيارات المتاحة:
- إذا كانت الرسالة الإلكترونية مدرَجة في الطلب، يمكنك ببساطة استخدام ذلك مع كلمة المرور لمصادقة LDAP.
- إذا لم يكن البريد الإلكتروني مدرَجًا في الطلب، ولكن كانت سمة الاسم المميز الأخرى (مثل رقم الهاتف)، يمكنك استخدام رقم الهاتف للحصول على الرسالة الإلكترونية المقابلة من LDAP، ثم استخدام البريد الإلكتروني / كلمة المرور للمصادقة.
- البحث عن الاسم المميز (DN): بالإضافة إلى المصادقة، يمكنك استخدام سياسة LDAP أيضًا لتحديد سمة مستخدم في الطلب، مثل البريد الإلكتروني، وتنفيذ طلب بحث يسترد سمات الاسم المميز الأخرى من 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 للمصادقة.
مصادقة سمة الاسم المميَّز
<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. يتم تخزين سمات الاسم المميز التي تم استردادها في متغير. اطّلِع على "المتغيّرات الخاصة بالسياسة".
للبحث في LDAP واسترداد سمات الاسم المميز، يجب أن يتضمن الطلب بيانات اعتماد المشرف.
مرجع العنصر
في ما يلي أوصاف عناصر وسمات سياسة LDAP.
عنصر |
الوصف |
---|---|
|
عنصر رئيسي مع سمة الاسم لك لإدخال اسم السياسة. |
|
عند استخدام سياسة LDAP مع موفِّر خدمة LDAP مخصَّص (لا توفِّره Apigee)، حدِّد فئة موصل LDAP المؤهَّلة بالكامل.
هذه هي الفئة التي نفّذت فيها واجهة |
|
أدخِل اسم البيئة لمورد LDAP. راجِع إنشاء مورد LDAP لمعرفة المزيد من المعلومات. |
|
المستوى الأساسي من LDAP الذي توجد به جميع بياناتك. على سبيل المثال، في موفّر LDAP الخاص بـ Apigee، تندرج جميع البيانات ضمن
|
|
|
المصادقة |
|
|
العنصر الرئيسي لسلوك المصادقة الذي تنفّذه. |
|
عنصر فارغ يأخذ إحدى السمات التالية:
إذا لم تتم المصادقة باستخدام اسم المستخدم أو إذا لم يكن الطلب مضمَّنًا في الطلب، لن تحتاج إلى تضمين هذا العنصر. إذا كان الطلب مدرَجًا في الطلب، ولكنك تريد مصادقة مستخدم باستخدام سمة اسم مميز
أخرى غير اسم المستخدم، مثل البريد الإلكتروني، يمكنك تضمين |
|
عنصر فارغ يأخذ إحدى السمات التالية:
|
|
إذا كنت تريد المصادقة باستخدام سمة اسم مميز غير اسم المستخدم، مثل البريد الإلكتروني، يمكنك ضبط سياسة LDAP للحصول على سمة الاسم المميز من الطلب (مثل اسم المستخدم)، والتي تُستخدم لتحديد هوية المستخدم في LDAP واسترداد البريد الإلكتروني ومصادقة المستخدم. على سبيل المثال، بافتراض أن بروتوكول LDAP يعرّف سمة "البريد" لتخزين عنوان البريد الإلكتروني:
|
بحث |
|
|
العنصر الرئيسي لسلوك البحث الذي تنفّذه. |
|
ومن خلال تحديد هوية المستخدم باستخدام البيانات الوصفية في الطلب أو الرد، يمكنك استخدام هذا
العنصر لاسترداد سمات الاسم المميز الإضافية للمستخدم من LDAP. على سبيل المثال، إذا كان الطلب يحتوي على البريد الإلكتروني للمستخدم، وكان طلب LDAP يحدّد سمة
يبحث طلب البحث هذا في LDAP عن عنوان بريد إلكتروني يتطابق مع عنوان البريد الإلكتروني في الطلب، ويمكن للسياسة الآن استرداد سمات الاسم المميز الإضافية لهذا المستخدم باستخدام عنصر "السمات". |
|
استخدِم عنصر على سبيل المثال، بعد أن يتم التعرّف على المستخدم من خلال قيم السمات هي أسماء سمات الاسم المميز التي تم تحديدها في 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 وإدارتها، استخدِم واجهة برمجة التطبيقات التالية والحمولة:
API
إنشاء (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>
مثال على 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 لـ 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 لـ Java
يمكنك استخدام UnboundID LDAP SDK مع سياسة LDAP، ولكن عليك أولاً تنزيل الإصدار 2.3.1 وإضافته إلى كل مسار من مسارات فئات "معالج الرسائل".
لاستخدام UnboundID LDAP SDK مع سياسة LDAP:
- افتح متصفّحًا وانتقِل إلى مستودع ملفات Sourceforge لحزمة تطوير البرامج (SDK) لخدمة UnboundID LDAP:
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 |
بعد تنفيذ السياسة، يحتوي متغيّر المسار هذا على القيمة "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. |