شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
چه
سیاست LDAP موارد زیر را ارائه میدهد:
- احراز هویت : اعتبارنامههای کاربر ارائه شده در درخواست با اعتبارنامههای ارائهدهنده LDAP اعتبارسنجی میشوند. سیاست LDAP انعطافپذیری زیادی در احراز هویت به شما میدهد و به شما امکان میدهد از هر مقدار DN به همراه رمز عبور استفاده کنید، حتی اگر آن مقدار DN مورد نظر شما در درخواست نباشد. به عنوان مثال، فرض کنید برای احراز هویت باید از ایمیل / رمز عبور استفاده کنید. گزینههای زیر امکانپذیر است:
- اگر ایمیل در درخواست باشد، میتوانید به سادگی از آن به همراه رمز عبور برای احراز هویت LDAP استفاده کنید.
- اگر ایمیل در درخواست نباشد، اما ویژگی DN دیگری (مانند شماره تلفن) در آن باشد، میتوانید از شماره تلفن برای دریافت ایمیل مربوطه از LDAP استفاده کنید، سپس از ایمیل / رمز عبور برای تأیید اعتبار استفاده کنید.
- جستجوی نام متمایز (DN) : علاوه بر احراز هویت، میتوانید از سیاست LDAP برای شناسایی یک ویژگی کاربر در درخواست، مانند ایمیل، استفاده کنید و یک پرسوجو انجام دهید که سایر ویژگیهای DN را از LDAP برای آن کاربر بازیابی میکند. DN بازیابی شده در یک متغیر ذخیره میشود.
از سیاست LDAP زمانی استفاده کنید که دسترسی به منابع محافظتشده باید محدود به کاربران ارائهدهنده LDAP شما - مانند کاربران مدیر، کاربران سازمان و توسعهدهندگان - باشد، بهویژه زمانی که دسترسی به توکن OAuth غیرضروری یا بسیار سنگین است. این سیاست همچنین برای بازیابی فراداده نام دامنه برای استفاده در جریانهای پروکسی API طراحی شده است.
برای مثال، میتوانید کاری کنید که یک فراخوانی API فقط زمانی اجرا شود که کاربر با موفقیت در LDAP احراز هویت شود؛ و سپس به صورت اختیاری، ویژگیهای DN (نام دامنه) را برای کاربر پس از موفقیت احراز هویت بازیابی کنید.
برای اطلاعات تکمیلی، مراجعه کنید به:
- مدیریت سیاست پیشفرض رمز عبور LDAP برای مدیریت API
- « اطلاعات مهم در مورد سیاست رمز عبور شما » در انجمن 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 ارسال میکند.
احراز هویت ویژگی 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
/Ldapاین خطمشی، DN کاربر را به همراه ایمیل موجود در سربرگ درخواست دریافت میکند، سپس کاربر را با رمز عبور ارائه شده در سربرگ درخواست، در برابر 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 بازیابی میکند. ویژگیهای DN بازیابی شده در یک متغیر ذخیره میشوند. به «متغیرهای خاص خطمشی» مراجعه کنید.
برای جستجوی LDAP و بازیابی ویژگیهای DN، درخواست باید شامل اعتبارنامههای مدیر باشد.
مرجع عنصر
در ادامه توضیحاتی در مورد عناصر و ویژگیهای سیاست LDAP آمده است.
عنصر | توضیحات |
|---|---|
| عنصر والد با ویژگی name که میتوانید نام سیاست را در آن وارد کنید. |
| هنگام استفاده از سیاست LDAP با یک ارائهدهنده LDAP سفارشی (که توسط Apigee ارائه نشده است)، کلاس رابط LDAP کاملاً واجد شرایط را مشخص کنید. این کلاسی است که رابط |
| نام محیط منبع 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 برای Private Cloud به شما امکان میدهد از یک ارائهدهنده LDAP در فراخوانیهای API استفاده کنید. با استفاده از LDAP Policy، برنامهها میتوانند اعتبارنامههای کاربران ذخیره شده در LDAP را احراز هویت کنند و شما میتوانید نامهای متمایز (DN) را از LDAP بازیابی کنید - فرادادهها یا ویژگیهای مرتبط با هر کاربر، مانند ایمیل، آدرس و شماره تلفن. DN برگردانده شده در یک متغیر برای استفاده بیشتر توسط پروکسی API ذخیره میشود.
ایجاد یک منبع LDAP
سیاست LDAP از یک منبع LDAP که شما در Apigee Edge ایجاد میکنید، استفاده میکند. یک منبع LDAP اطلاعات اتصال به مخزن LDAP شما را فراهم میکند.
برای ایجاد و مدیریت منابع LDAP، از API و payload زیر استفاده کنید:
رابط برنامهنویسی کاربردی
ایجاد ( 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="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 که این سیاست در صورت موفقیت یا شکست برمیگرداند، به شرح زیر است:
- موفقیت : ۲۰۰
- خرابی : ۴۰۱
استفاده از یک ارائهدهنده LDAP سفارشی در Edge برای ابر خصوصی
استفاده از یک ارائهدهنده LDAP سفارشی
Apigee Edge برای Private Cloud با یک ارائهدهنده LDAP ارائه میشود که از قبل برای تعامل با LDAP Policy پیکربندی شده است. با این حال، اگر از یک ارائهدهنده LDAP سفارشی استفاده میکنید، باید آن ارائهدهنده را برای پشتیبانی از LDAP Policy فعال کنید. برای انجام این کار:
- در کلاس ارائه دهنده 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 (ممکن است لازم باشد کلیک راست کرده و گزینه Save As را انتخاب کنید.)
- آن را از حالت فشرده خارج کنید.
- فایل custom-ldap.jar را به محیط خود اضافه کنید و مطمئن شوید که در classpath شما قرار دارد.
- یک منبع محیطی برای ارائهدهنده LDAP خود ایجاد کنید. شما از نام منبع محیطی در عنصر
<LdapResource>از سیاست LDAP استفاده خواهید کرد.
استفاده از کیت توسعه نرمافزار UnboundID LDAP برای جاوا
شما میتوانید از UnboundID LDAP SDK به همراه سیاست LDAP استفاده کنید، اما ابتدا باید نسخه ۲.۳.۱ را دانلود کرده و آن را به هر یک از classpath های پردازنده پیام خود اضافه کنید.
برای استفاده از UnboundID LDAP SDK با سیاست LDAP:
- یک مرورگر باز کنید و به مخزن فایل Sourceforge برای UnboundID LDAP SDK بروید:
https://sourceforge.net/projects/ldap-sdk/files/
- نسخه ۲.۳.۱ (SE یا نسخه استاندارد ) از SDK را پیدا کنید و فایل ZIP مربوط به آن نسخه را دانلود کنید. برای مثال، "unboundid-ldapsdk-2.3.1-se.zip" را دانلود کنید.
- فایل JAR را از فایل فشرده 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/edge-gateway/lib/thirdpartyرا به classpath اضافه میکند. - فایل JAR را در دایرکتوری
- پردازشگر پیام را مجدداً راهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
متغیرهای جریان
در ادامه متغیرهای سیاست LDAP که توسط یک SearchQuery پر شدهاند، آمده است.
متغیر | توضیحات |
|---|---|
ldap.policyName.execution.success | پس از اجرای سیاست، این متغیر جریان، بسته به نتیجه، حاوی مقداری از "true" یا "false" خواهد بود. |
ldap.policyName.search.result[index]. attribute.attrName[index]=value | قالب انعطافپذیر این متغیر، به ویژه اندیس: چندین ویژگی و همچنین ویژگیهایی با چندین مقدار را در بر میگیرد. اندیس عددی است که از ۱ شروع میشود. اگر هیچ شماره اندیس ارائه نشود، شماره اندیس پیشفرض ۱ است. اگر این خطمشی آدرس، تلفن و ایمیل را برمیگرداند، میتوانید اولین ویژگی و مقدار را با استفاده از این متغیرها بازیابی کنید: 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. |