Erlang 21

eldap




erlang

eldap

मॉड्यूल

eldap

मॉड्यूल सारांश

LDAP क्लाइंट

विवरण

यह मॉड्यूल लाइटवेट डायरेक्ट्री एक्सेस प्रोटोकॉल (LDAP) के लिए एक क्लाइंट एपीआई प्रदान करता है।

संदर्भ:

  • RFC 4510 - RFC 4519

  • आरएफसी 2830

उपरोक्त प्रकाशन IETF पाए जा सकते हैं।

जानकारी का प्रकार

इस मॉड्यूल में एक से अधिक बार उपयोग की जाने वाली परिभाषाएँ टाइप करें:

handle()

कनेक्शन संभाल

attribute() =

{Type = string(), Values=[string()]}

modify_op()

mod_add/2 , mod_delete/2 , mod_replace/2

scope()

baseObject/0 , singleLevel/0 , wholeSubtree/0

dereference()

neverDerefAliases/0 , derefInSearching/0 , derefFindingBaseObj/0 , derefAlways/0

filter()

present/1 , substrings/2 , greaterOrEqual/2 equalityMatch/2 , greaterOrEqual/2 , lessOrEqual/2 , approxMatch/2 , extensibleMatch/2 , 'and'/1 , 'or'/1 , 'not'/1

return_value() =

ok | {ok, {referral,referrals()}} | {error,Error}

referrals() =

[Address = string()] Address की सामग्री सर्वर पर निर्भर है।

निर्यात

open ([होस्ट]) -> {ठीक है, हैंडल} | {त्रुटि, कारण}

प्रकार

LDAP सर्वर से कनेक्शन सेट करें, HOST के क्रम में प्रयास किए जाते हैं।

खुला ([होस्ट], [विकल्प]) -> {ठीक है, हैंडल} | {त्रुटि, कारण}

प्रकार

LDAP सर्वर से कनेक्शन सेट करें, HOST के क्रम में प्रयास किए जाते हैं।

लॉग फ़ंक्शन तीन तर्कों को लेता है, fun(Level, FormatString, [FormatArg]) end

टाइमआउट ने अधिकतम समय मिलीसेकंड में सेट किया है जो प्रत्येक सर्वर अनुरोध ले सकता है।

active , binary , deliver , list , mode और packet को छोड़कर सभी टीसीपी सॉकेट विकल्प स्वीकार किए जाते हैं

बंद (संभाल) -> ठीक है

प्रकार

सर्वर पर एक unbindRequest भेजने के बाद कनेक्शन बंद करें। यदि कनेक्शन tls है तो कनेक्शन ssl:close/1 साथ बंद हो जाएगा, अन्यथा gen_tcp:close/1

start_tls (संभाल, विकल्प) -> return_value ()

Start_tls (संभाल, विकल्प, अनंत) के रूप में भी समान

start_tls (संभाल, विकल्प, समय समाप्त) -> return_value ()

प्रकार

यदि संभव हो तो Handle से एक tls कनेक्शन से जुड़े कनेक्शन को अपग्रेड करें।

उन्नयन दो चरणों में किया जाता है: पहले सर्वर को अपग्रेड करने की अनुमति मांगी जाती है। दूसरा, यदि अनुरोध स्वीकार किया जाता है, तो tls में अपग्रेड किया जाता है।

चरण एक से त्रुटि प्रतिक्रियाएं कनेक्शन की वर्तमान एन्क्रिप्शन स्थिति को प्रभावित नहीं करेंगी। उन प्रतिक्रियाओं हैं:

tls_already_started
कनेक्शन पहले से ही एन्क्रिप्टेड है। कनेक्शन प्रभावित नहीं है।
{response,ResponseFromServer}
उन्नयन LDAP सर्वर द्वारा मना कर दिया गया था। ResponseFromServer एक atom दिया गया एलडीएपी सर्वर है जिसे rfc 2830 की धारा 2.3 में समझाया गया है। कनेक्शन प्रभावित नहीं है, इसलिए यह अभी भी अन-इनक्रिप्टेड है।

दूसरे चरण में त्रुटियां हालांकि कनेक्शन समाप्त कर देंगी:

Error
एसएसएल से किसी भी त्रुटि का जवाब दिया: कनेक्ट / 3

Timeout पैरामीटर वास्तविक tls अपग्रेड (चरण 2) के लिए है जबकि eldap:open/2 में मध्यांतर eldap:open/2 उन्नयन के बारे में प्रारंभिक बातचीत के लिए eldap:open/2 का उपयोग किया जाता है (चरण 1)।

simple_bind (संभाल, डायन, पासवर्ड) -> return_value ()

प्रकार

सरल प्रमाणीकरण का उपयोग करके कनेक्शन को प्रमाणित करें।

जोड़ें (संभाल, दीन, [विशेषता]) -> वापसी_वायु ()

प्रकार

एक प्रविष्टि जोड़ें। प्रवेश मौजूद नहीं होना चाहिए।

add(Handle,
    "cn=Bill Valentine, ou=people, o=Example Org, dc=example, dc=com",
     [{"objectclass", ["person"]},
      {"cn", ["Bill Valentine"]},
      {"sn", ["Valentine"]},
      {"telephoneNumber", ["545 555 00"]}]
   )
हटाएं (हैंडल, Dn) -> return_value ()

प्रकार

एक प्रविष्टि हटाएँ।

delete(Handle, "cn=Bill Valentine, ou=people, o=Example Org, dc=example, dc=com")
mod_add (प्रकार, [मान]) -> संशोधित_ओप ()

प्रकार

एक ऐड मॉडिफिकेशन ऑपरेशन बनाएं।

mod_delete (प्रकार, [मान]) -> संशोधित_ओप ()

प्रकार

हटाएं संशोधन ऑपरेशन बनाएँ।

mod_replace (प्रकार, [मान]) -> संशोधित_ओप ()

प्रकार

एक बदलें संशोधन ऑपरेशन बनाएँ।

संशोधित (संभाल, दीन, [संशोधित]] -> वापसी_वायु ()

प्रकार

एक प्रविष्टि संशोधित करें।

  modify(Handle, "cn=Bill Valentine, ou=people, o=Example Org, dc=example, dc=com",
         [eldap:mod_replace("telephoneNumber", ["555 555 00"]),
eldap:mod_add("description", ["LDAP Hacker"]) ])
संशोधित_पासवर्ड (हैंडल, डायन, न्यूपासवड) -> वापसी_वायु () | {ठीक है, जेनपस्वाड}

प्रकार

उपयोगकर्ता का पासवर्ड संशोधित करें। modify_password/4

संशोधित_पासवर्ड (संभाल, डायन, न्यूपासवेड, ओल्डपास) -> रिटर्न_वल्यू () | {ठीक है, जेनपस्वाड}

प्रकार

उपयोगकर्ता का पासवर्ड संशोधित करें।

  • Dn । संशोधित करने के लिए उपयोगकर्ता। अगर एलडीएपी सत्र के उपयोगकर्ता के लिए संशोधित अनुरोध है, तो "" होना चाहिए।

  • NewPasswd । नया पासवर्ड सेट करने के लिए। यदि सर्वर पासवर्ड जनरेट करना है तो "" होना चाहिए। इस स्थिति में, परिणाम {ok, GenPasswd}

  • OldPasswd । कभी-कभी उपयोगकर्ता को अपना पासवर्ड बदलने के लिए सर्वर नीति की आवश्यकता होती है। यदि आवश्यक न हो, तो modify_password/3 उपयोग करें।

संशोधित_डीएन (हैंडल, डायन, न्यूआरडीएनडी, डिलीटऑल्डआरएनडी, न्यूसुपएनडीएन) -> रिटर्न_ड्यू ()

प्रकार

एक प्रविष्टि के डीएन को संशोधित करें। DeleteOldRDN इंगित करता है कि वर्तमान RDN ऑपरेशन के बाद विशेषता सूची से हटा दिया जाना चाहिए या नहीं। NewSupDN नया पैरेंट है जिसे RDN में स्थानांतरित किया जाएगा। यदि पुराने माता-पिता को माता-पिता के रूप में रहना चाहिए, तो NewSupDN "" होगा।

modify_dn(Handle, "cn=Bill Valentine, ou=people, o=Example Org, dc=example, dc=com ",
          "cn=Bill Jr Valentine", true, "")
खोज (संभाल, खोज विकल्प) -> {ठीक है, #eldap_search_result {}} | {ठीक है, {रेफरल, रेफरल ()} | {त्रुटि, कारण}

प्रकार

आपूर्ति की गई SearchOptions के साथ निर्देशिका खोजें। आधार और फिल्टर विकल्प की आपूर्ति की जानी चाहिए। डिफ़ॉल्ट मान: स्कोप wholeSubtree() , deref derefAlways() , टाइप_ऑनली false और टाइमआउट 0 (अर्थ अनन्तता) है।

Filter = eldap:substrings("cn", [{any,"V"}]),
search(Handle, [{base, "dc=example, dc=com"}, {filter, Filter}, {attributes, ["cn"]}]),

eldap:open/2 में timeout विकल्प ldap सर्वर के लिए है, जबकि eldap:open/2 में मध्यांतर eldap:open/2 का उपयोग सर्च ऑपरेशन में प्रत्येक व्यक्तिगत अनुरोध के लिए किया जाता है।

बेसऑब्जेक्ट () -> स्कोप ()

केवल आधारभूत खोजें।

सिंगलवेल () -> स्कोप ()

केवल निर्दिष्ट स्तर खोजें, अर्थात पुनरावृत्ति न करें।

सम्पूर्णश्री () -> कार्यक्षेत्र ()

संपूर्ण उपशीर्षक खोजें।

neverDerefAliases () -> डेरेफेरेंस ()

कभी भी उपनाम न करें, प्रविष्टियों के रूप में उपनामों का इलाज करें।

derefAlways () -> डेरेफेरेंस ()

हमेशा डेयरफ्रेंड एलियसेस।

derefInSearching () -> dereference ()

खोज के दौरान केवल उपनाम।

derefFindingBaseObj () -> डीफर्नेस ()

केवल आधार खोजने में डेरेफ्रेंस उपनाम।

वर्तमान (प्रकार) -> फ़िल्टर ()

प्रकार

एक फ़िल्टर बनाएं जो विशेषता प्रकार की उपस्थिति पर फ़िल्टर करता है।

सबस्ट्रिंग (प्रकार, [सबस्ट्रिंग]) -> फ़िल्टर ()

प्रकार

फ़िल्टर बनाएं जो सबस्ट्रिंग पर फ़िल्टर करता है।

समानता (प्रकार, मान) -> फ़िल्टर ()

प्रकार

एक समानता फ़िल्टर बनाएँ।

अधिकऑर्कल (प्रकार, मान) -> फ़िल्टर ()

प्रकार

एक बड़ा या बराबर फ़िल्टर बनाएं।

कम लागत (प्रकार, मूल्य) -> फ़िल्टर ()

प्रकार

एक कम या बराबर फ़िल्टर बनाएं।

लगभग (प्रकार, मान) -> फ़िल्टर ()

प्रकार

एक सन्निकटन मिलान फ़िल्टर बनाएँ।

एक्स्टेंसिबलमैच (मैचवैल्यू, ऑप्शनल ऑर्टर्स) -> फ़िल्टर ()

प्रकार

एक एक्स्टेंसिबल मैच फिल्टर बनाता है। उदाहरण के लिए,

eldap:extensibleMatch("Bar", [{type,"sn"}, {matchingRule,"caseExactMatch"}]))

एक फ़िल्टर बनाता है, जो एक विशेषता caseExactMatch विशेषता caseExactMatch पर करता है और मूल्य "Bar" साथ मेल खाता है। dnAttributes का डिफ़ॉल्ट मान false

'और' ([फ़िल्टर]) -> फ़िल्टर ()

प्रकार

एक फ़िल्टर बनाता है जहाँ सभी Filter सही होने चाहिए।

'या' ([फ़िल्टर]) -> फ़िल्टर ()

प्रकार

एक फ़िल्टर बनाएं जहां फ़िल्टर का कम से कम एक होना आवश्यक है।

'नहीं' (फ़िल्टर) -> फ़िल्टर ()

प्रकार

एक फिल्टर को मिलाएं।