आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
क्या
LDAP नीति में ये सुविधाएं मिलती हैं:
- पुष्टि करना: अनुरोध में दिए गए उपयोगकर्ता क्रेडेंशियल की पुष्टि की गई है
के क्रेडेंशियल के साथ काम करती है. एलडीएपी नीति से आपको कई सुविधाएं मिलती हैं.
इससे पासवर्ड के साथ कोई भी डीएन वैल्यू इस्तेमाल की जा सकती है, भले ही वह डीएन वैल्यू
आपके अनुरोध में नहीं है. उदाहरण के लिए, मान लें कि आपको इसके लिए ईमेल / पासवर्ड का उपयोग करना होगा
पुष्टि करने के लिए. यहां दिए गए विकल्प इस्तेमाल किए जा सकते हैं:
- अगर ईमेल अनुरोध में दिया गया है, तो आप उसका इस्तेमाल LDAP के पासवर्ड के साथ कर सकते हैं पुष्टि करने के लिए.
- अगर ईमेल, अनुरोध में नहीं है, लेकिन दूसरा डीएन एट्रिब्यूट है (जैसे कि फ़ोन नंबर), आप LDAP से संबंधित ईमेल पाने के लिए फ़ोन नंबर का इस्तेमाल कर सकते हैं, फिर ईमेल / पुष्टि करने के लिए पासवर्ड.
- खास नाम (डीएन) सर्च: पुष्टि करने के अलावा, आप ये काम भी कर सकते हैं साथ ही, अनुरोध में उपयोगकर्ता के एट्रिब्यूट की पहचान करने के लिए, LDAP नीति का इस्तेमाल भी किया जा सकता है. जैसे, ईमेल और ऐसी क्वेरी करें जो उस उपयोगकर्ता के लिए LDAP से अन्य डीएन एट्रिब्यूट हासिल करती हो. वापस पाया गया DN यह है किसी वैरिएबल में सेव होता है.
जब सुरक्षित संसाधनों का ऐक्सेस आपके LDAP के उपयोगकर्ताओं तक सीमित होना चाहिए, तब LDAP नीति का इस्तेमाल करें सेवा देने वाले संगठन—जैसे आपके एडमिन उपयोगकर्ता, संगठन के उपयोगकर्ता, और डेवलपर—खास तौर पर तब, जब OAuth टोकन का ऐक्सेस ज़रूरी नहीं है या बहुत ज़्यादा वज़न वाला है. इस नीति को इन लोगों के लिए भी बनाया गया है एपीआई प्रॉक्सी फ़्लो में इस्तेमाल करने के लिए, डोमेन नेम का मेटाडेटा वापस पाना.
उदाहरण के लिए, किसी उपयोगकर्ता की पहचान की पुष्टि होने के बाद ही, एपीआई कॉल चलाया जा सकता है एलडीएपी के ख़िलाफ़; और इसके बाद उपयोगकर्ता के लिए वैकल्पिक रूप से डीएन (डोमेन नेम) एट्रिब्यूट पाएं प्रमाणीकरण सफल रहा.
ज़्यादा जानकारी के लिए, देखें:
- मैनेजिंग एपीआई मैनेजमेंट के लिए डिफ़ॉल्ट 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 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 खोजने और डीएन एट्रिब्यूट वापस पाने के लिए, अनुरोध में एडमिन का शामिल होना ज़रूरी है क्रेडेंशियल डालें.
एलिमेंट का रेफ़रंस
एलडीएपी नीति की जानकारी देने वाले एलिमेंट और एट्रिब्यूट की जानकारी नीचे दी गई है.
एलिमेंट |
ब्यौरा |
---|---|
|
नीति का नाम डालने के लिए, नाम एट्रिब्यूट वाला पैरंट एलिमेंट. |
|
पसंद के मुताबिक एलडीएपी के साथ एलडीएपी नीति का इस्तेमाल करते समय
provider (Apigee से नहीं दिया गया है), पूरी तरह क्वालिफ़ाइड LDAP कनेक्टर क्लास की जानकारी दें.
यही वह क्लास है जिसमें आपने Apigee के |
|
LDAP संसाधन का एनवायरमेंट नाम डालें. देखें ज़्यादा जानकारी के लिए, LDAP संसाधन का इस्तेमाल करें. |
|
LDAP का वह बेस लेवल जिसके तहत आपका पूरा डेटा मौजूद है. उदाहरण के लिए,
Apigee की LDAP कंपनी, सारा डेटा
|
|
|
पुष्टि करना |
|
|
आपने पुष्टि करने के लिए जिस तरीके को लागू किया है उसके लिए पैरंट एलिमेंट. |
|
ऐसा खाली एलिमेंट जो इनमें से कोई एक एट्रिब्यूट लेता है:
अगर उपयोगकर्ता नाम से पुष्टि नहीं की जा रही है या अगर उपयोगकर्ता नाम अनुरोध है, तो आपको यह तत्व शामिल करने की आवश्यकता नहीं है. अगर उपयोगकर्ता नाम अनुरोध में है, लेकिन आपको उपयोगकर्ता की पुष्टि डीएन एट्रिब्यूट से करनी है
उपयोगकर्ता नाम जैसे कि ईमेल के अलावा, उपयोगकर्ता का ईमेल पाने के लिए |
|
ऐसा खाली एलिमेंट जो इनमें से कोई एक एट्रिब्यूट लेता है:
|
|
अगर आप उपयोगकर्ता नाम के अलावा, ईमेल जैसे किसी DN एट्रिब्यूट का इस्तेमाल करके पुष्टि करना चाहते हैं, तो अनुरोध से डीएन एट्रिब्यूट पाने के लिए, LDAP नीति को कॉन्फ़िगर करें (जैसे कि उपयोगकर्ता नाम), इसका इस्तेमाल LDAP में उपयोगकर्ता की पहचान करने, ईमेल वापस पाने, और उपयोगकर्ता. उदाहरण के लिए, माना जाता है कि LDAP "मेल" के बारे में बताता है एट्रिब्यूट:
|
खोजें |
|
|
आपने खोज के लिए जो तरीका लागू किया है उसके लिए पैरंट एलिमेंट. |
|
अनुरोध या जवाब में मेटाडेटा के साथ उपयोगकर्ता की पहचान करके, इसका इस्तेमाल किया जा सकता है
एलिमेंट का इस्तेमाल करें. उदाहरण के लिए, अगर
अनुरोध में उपयोगकर्ता का ईमेल शामिल है और आपके LDAP
यह क्वेरी, अनुरोध में मौजूद ईमेल से मेल खाने वाले ईमेल के लिए LDAP की खोज करती है और यह नीति अब उस उपयोगकर्ता के लिए, एट्रिब्यूट की मदद से अन्य डीएन एट्रिब्यूट हासिल कर सकती है एलिमेंट. |
|
एक या ज़्यादा उदाहरण के लिए, एट्रिब्यूट की वैल्यू, आपके LDAP में बताए गए डीएन एट्रिब्यूट के नाम हैं. <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> |
इस्तेमाल की जानकारी
प्राइवेट क्लाउड के लिए Apigee Edge की मदद से, एपीआई कॉल में LDAP की सेवा का फ़ायदा लिया जा सकता है. LDAP के साथ नीति के मुताबिक, ऐप्लिकेशन LDAP में सेव किए गए उपयोगकर्ताओं के क्रेडेंशियल की पुष्टि कर सकते हैं. साथ ही, ये काम किए जा सकते हैं एलडीएपी से खास नाम (डीएन) पाएं—ये मेटाडेटा या एट्रिब्यूट से जुड़े होते हैं जैसे कि ईमेल, पता, और फ़ोन नंबर. वापस किया गया डीएन, वैरिएबल में इस अवधि के लिए सेव किया जाता है: आगे से, एपीआई प्रॉक्सी का इस्तेमाल करना होगा.
LDAP संसाधन बनाएं
LDAP नीति में, Apigee Edge में बनाए गए LDAP संसाधन का इस्तेमाल किया जाता है. LDAP संसाधन आपके LDAP रिपॉज़िटरी (डेटा स्टोर करने की जगह) को कनेक्शन की जानकारी देता है.
LDAP संसाधन बनाने और प्रबंधित करने के लिए, नीचे दिए गए एपीआई और पेलोड का इस्तेमाल करें:
एपीआई
कोई LDAP संसाधन या सूची (GET
) सभी LDAP संसाधन बनाएं (POST
):
/v1/organizations/org_name/environments/environment/ldapresources
एलडीएपी संसाधन (GET
), अपडेट (POST
), और मिटाएं (DELETE
) के बारे में जानकारी पाएं:
/v1/organizations/org_name/environments/environment/ldapresources/ldap_resource_name
पेलोड
नीचे, इस्तेमाल से जुड़ी टिप्पणियों के साथ एक्सएमएल पेलोड का सैंपल दिया गया है.
<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 संसाधन बनाएं
नीचे दिया गया उदाहरण ldap1 नाम का एक LDAP संसाधन बनाता है.
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>'
रिस्पॉन्स कोड
नीति के सही होने या न होने पर, यहां एचटीएमएल रिस्पॉन्स कोड दिए गए हैं:
- पूरा हुआ: 200
- Failure: 401
प्राइवेट क्लाउड के लिए Edge में पसंद के मुताबिक LDAP प्रोवाइडर का इस्तेमाल किया जा रहा है
कस्टम LDAP प्रोवाइडर
निजी क्लाउड के लिए Apigee Edge, एलडीएपी की सेवा देने वाली कंपनी के साथ आता है, जिसे पहले से ही 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>
एलिमेंट में दिया गया है.
इसका उपयोग करके Java के लिए, UnboundID LDAP SDK
LDAP नीति के साथ UnboundID LDAP SDK का इस्तेमाल किया जा सकता है, लेकिन आपको पहले इस वर्शन को डाउनलोड करना होगा 2.3.1 और उसे अपने हर मैसेज प्रोसेसर के क्लासपाथ में जोड़ें.
LDAP नीति के साथ UnboundID LDAP SDK का इस्तेमाल करने के लिए:
- ब्राउज़र खोलें और UnboundID LDAP SDK के लिए, Sourceforge फ़ाइल के रिपॉज़िटरी (डेटा स्टोर करने की जगह) पर जाएं:
https://sourceforge.net/projects/ldap-sdk/files/
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - SDK टूल का 2.3.1 (SE या स्टैंडर्ड वर्शन) ढूंढें और ZIP फ़ाइल डाउनलोड करें उस वर्शन के लिए. उदाहरण के लिए, "unboundid-ldapsdk-2.3.1-se.zip" डाउनलोड करें.
- SDK टूल की ZIP फ़ाइल से JAR फ़ाइल निकालें, जैसा कि नीचे दिए गए उदाहरण में बताया गया है:
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
डायरेक्ट्री. - अगर ज़रूरी हो, तो JAR फ़ाइल पर Apigee उपयोगकर्ता को अनुमति दें, ताकि मैसेज प्रोसेसर उसे ऐक्सेस कर सके.
- मैसेज प्रोसेसर को रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Edge, सभी तीसरे पक्ष की लाइब्रेरी को
/opt/apigee/edge-gateway/lib/thirdparty
डायरेक्ट्री को classpath में जोड़ें. - 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. |