eldapCopyright2012-2021EricssonAB.
AllRightsReserved.
eldap1.
2.
9March23,2021Copyright2012-2021EricssonAB.
AllRightsReserved.
LicensedundertheApacheLicense,Version2.
0(the"License");youmaynotusethisfileexceptincompliancewiththeLicense.
YoumayobtainacopyoftheLicenseathttp://www.
apache.
org/licenses/LICENSE-2.
0Unlessrequiredbyapplicablelaworagreedtoinwriting,softwaredistributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
SeetheLicenseforthespecificlanguagegoverningpermissionsandlimitationsundertheLicense.
EricssonAB.
AllRightsReserved.
.
March23,20211EldapUser'sGuideTheEldapapplicationprovidesanapiforaccessinganLDAPserver.
TheoriginalcodewasdevelopedbyTorbjrnTrnkvist.
EricssonAB.
AllRightsReserved.
:eldap|12ReferenceManualTheEldapapplicationprovidesanapiforaccessinganLDAPserver.
TheoriginalcodewasdevelopedbyTorbjrnTrnkvist.
2|EricssonAB.
AllRightsReserved.
:eldapeldapeldapErlangmoduleThismoduleprovidesaclientapitotheLightweightDirectoryAccessProtocol(LDAP).
References:RFC4510-RFC4519RFC2830TheabovepublicationscanbefoundatIETF.
DATATYPESTypedefinitionsthatareusedmorethanonceinthismodule:handle()Connectionhandleattribute()={Type=string(),Values=[string()]}modify_op()Seemod_add/2,mod_delete/2,mod_replace/2scope()SeebaseObject/0,singleLevel/0,wholeSubtree/0dereference()SeeneverDerefAliases/0,derefInSearching/0,derefFindingBaseObj/0,derefAlways/0filter()Seepresent/1,substrings/2,equalityMatch/2,greaterOrEqual/2,lessOrEqual/2,approxMatch/2,extensibleMatch/2,'and'/1,'or'/1,'not'/1return_value()=ok|{ok,{referral,referrals()}}|{error,Error}referrals()=[Address=string()]ThecontentsofAddressisserverdependent.
Exportsopen([Host])->{ok,Handle}|{error,Reason}Types:Handle=handle()SetupaconnectiontoanLDAPserver,theHOST'saretriedinorder.
open([Host],[Option])->{ok,Handle}|{error,Reason}Types:Handle=handle()EricssonAB.
AllRightsReserved.
:eldap|3eldapOption={port,integer()}|{log,function()}|{timeout,integer()}|{ssl,boolean()}|{sslopts,list()}|{tcpopts,list()}SetupaconnectiontoanLDAPserver,theHOST'saretriedinorder.
Thelogfunctiontakesthreearguments,fun(Level,FormatString,[FormatArg])end.
Timeoutsetthemaximumtimeinmillisecondsthateachserverrequestmaytake.
AllTCPsocketoptionsareacceptedexceptactive,binary,deliver,list,modeandpacketclose(Handle)->okTypes:Handle=handle()ShutdowntheconnectionaftersendinganunbindRequesttotheserver.
Iftheconnectionistlstheconnectionwillbeclosedwithssl:close/1,otherwisewithgen_tcp:close/1.
start_tls(Handle,Options)->return_value()Sameasstart_tls(Handle,Options,infinity)start_tls(Handle,Options,Timeout)->return_value()Types:Handle=handle()Options=ssl:ssl_options()Timeout=infinity|positive_integer()UpgradetheconnectionassociatedwithHandletoatlsconnectionifpossible.
Theupgradeisdoneintwophases:firsttheserverisaskedforpermissiontoupgrade.
Second,iftherequestisacknowledged,theupgradetotlsisperformed.
Errorresponsesfromphaseonewillnotaffectthecurrentencryptionstateoftheconnection.
Thoseresponsesare:tls_already_startedTheconnectionisalreadyencrypted.
Theconnectionisnotaffected.
{response,ResponseFromServer}TheupgradewasrefusedbytheLDAPserver.
TheResponseFromServerisanatomdeliveredbyttheLDAPserverexplainedinsection2.
3ofrfc2830.
Theconnectionisnotaffected,soitisstillun-encrypted.
Errorsinthesecondphasewillhoweverendtheconnection:ErrorAnyerrorrespondedfromssl:connect/3TheTimeoutparameterisfortheactualtlsupgrade(phase2)whilethetimeoutineldap:open/2isusedfortheinitialnegotiationaboutupgrade(phase1).
simple_bind(Handle,Dn,Password)->return_value()Types:Handle=handle()Dn=string()Password=string()Authenticatetheconnectionusingsimpleauthentication.
4|EricssonAB.
AllRightsReserved.
:eldapeldapadd(Handle,Dn,[Attribute])->return_value()Types:Handle=handle()Dn=string()Attribute=attribute()Addanentry.
Theentrymustnotexist.
add(Handle,"cn=BillValentine,ou=people,o=ExampleOrg,dc=example,dc=com",[{"objectclass",["person"]},{"cn",["BillValentine"]},{"sn",["Valentine"]},{"telephoneNumber",["54555500"]}])delete(Handle,Dn)->return_value()Types:Dn=string()Deleteanentry.
delete(Handle,"cn=BillValentine,ou=people,o=ExampleOrg,dc=example,dc=com")mod_add(Type,[Value])->modify_op()Types:Type=string()Value=string()Createanaddmodificationoperation.
mod_delete(Type,[Value])->modify_op()Types:Type=string()Value=string()Createadeletemodificationoperation.
mod_replace(Type,[Value])->modify_op()Types:Type=string()Value=string()Createareplacemodificationoperation.
modify(Handle,Dn,[ModifyOp])->return_value()Types:Dn=string()ModifyOp=modify_op()Modifyanentry.
EricssonAB.
AllRightsReserved.
:eldap|5eldapmodify(Handle,"cn=BillValentine,ou=people,o=ExampleOrg,dc=example,dc=com",[eldap:mod_replace("telephoneNumber",["55555500"]),eldap:mod_add("description",["LDAPHacker"])])modify_password(Handle,Dn,NewPasswd)->return_value()|{ok,GenPasswd}Types:Dn=string()NewPasswd=string()Modifythepasswordofauser.
Seemodify_password/4.
modify_password(Handle,Dn,NewPasswd,OldPasswd)->return_value()|{ok,GenPasswd}Types:Dn=string()NewPasswd=string()OldPasswd=string()GenPasswd=string()Modifythepasswordofauser.
Dn.
Theusertomodify.
Shouldbe""ifthemodifyrequestisfortheuseroftheLDAPsession.
NewPasswd.
Thenewpasswordtoset.
Shouldbe""iftheserveristogeneratethepassword.
Inthiscase,theresultwillbe{ok,GenPasswd}.
OldPasswd.
Sometimesrequiredbyserverpolicyforausertochangetheirpassword.
Ifnotrequired,usemodify_password/3.
modify_dn(Handle,Dn,NewRDN,DeleteOldRDN,NewSupDN)->return_value()Types:Dn=string()NewRDN=string()DeleteOldRDN=boolean()NewSupDN=string()ModifytheDNofanentry.
DeleteOldRDNindicateswhetherthecurrentRDNshouldberemovedfromtheattributelistaftertheoperation.
NewSupDNisthenewparentthattheRDNshallbemovedto.
Iftheoldparentshouldremainasparent,NewSupDNshallbe"".
modify_dn(Handle,"cn=BillValentine,ou=people,o=ExampleOrg,dc=example,dc=com","cn=BillJrValentine",true,"")search(Handle,SearchOptions)->{ok,#eldap_search_result{}}|{ok,{referral,referrals()}}|{error,Reason}Types:SearchOptions=#eldap_search{}|[SearchOption]SearchOption={base,string()}|{filter,filter()}|{scope,scope()}|{attributes,[string()]}|{deref,dereference(types_only,boolean()}|{timeout,integer()}6|EricssonAB.
AllRightsReserved.
:eldapeldapSearchthedirectorywiththesuppliedtheSearchOptions.
Thebaseandfilteroptionsmustbesupplied.
Defaultvalues:scopeiswholeSubtree(),derefisderefAlways(),types_onlyisfalseandtimeoutis0(meaninginfinity).
Filter=eldap:substrings("cn",[{any,"V"}]),search(Handle,[{base,"dc=example,dc=com"},{filter,Filter},{attributes,["cn"]}]),ThetimeoutoptionintheSearchOptionsisfortheldapserver,whilethetimeoutineldap:open/2isusedforeachindividualrequestinthesearchoperation.
baseObject()->scope()Searchbaseobjectonly.
singleLevel()->scope()Searchthespecifiedlevelonly,i.
e.
donotrecurse.
wholeSubtree()->scope()Searchtheentiresubtree.
neverDerefAliases()->dereference()Neverderefrencealiases,treataliasesasentries.
derefAlways()->dereference()Alwaysderefrencealiases.
derefInSearching()->dereference()Derefrencealiasesonlywhensearching.
derefFindingBaseObj()->dereference()Derefrencealiasesonlyinfindingthebase.
present(Type)->filter()Types:Type=string()Createafilterwhichfiltersonattributetypepresence.
substrings(Type,[SubString])->filter()Types:Type=string()SubString={StringPart,string()}StringPart=initial|any|finalCreateafilterwhichfiltersonsubstrings.
equalityMatch(Type,Value)->filter()Types:Type=string()EricssonAB.
AllRightsReserved.
:eldap|7eldapValue=string()Createaequalityfilter.
greaterOrEqual(Type,Value)->filter()Types:Type=string()Value=string()Createagreaterorequalfilter.
lessOrEqual(Type,Value)->filter()Types:Type=string()Value=string()Createalessorequalfilter.
approxMatch(Type,Value)->filter()Types:Type=string()Value=string()Createaapproximationmatchfilter.
extensibleMatch(MatchValue,OptionalAttrs)->filter()Types:MatchValue=string()OptionalAttrs=[Attr]Attr={matchingRule,string()}|{type,string()}|{dnAttributes,boolean()}Createsanextensiblematchfilter.
Forexample,eldap:extensibleMatch("Bar",[{type,"sn"},{matchingRule,"caseExactMatch"}]))createsafilterwhichperformsacaseExactMatchontheattributesnandmatcheswiththevalue"Bar".
ThedefaultvalueofdnAttributesisfalse.
'and'([Filter])->filter()Types:Filter=filter()CreatesafilterwhereallFiltermustbetrue.
'or'([Filter])->filter()Types:Filter=filter()CreateafilterwhereatleastoneoftheFiltermustbetrue.
8|EricssonAB.
AllRightsReserved.
:eldapeldap'not'(Filter)->filter()Types:Filter=filter()Negateafilter.
EricssonAB.
AllRightsReserved.
:eldap|9
2021年各大云服务商竞争尤为激烈,因为云服务商家的竞争我们可以选择更加便宜的VPS或云服务器,这样成本更低,选择空间更大。但是,如果我们是建站用途或者是稳定项目的,不要太过于追求便宜VPS或便宜云服务器,更需要追求稳定和服务。不同的商家有不同的特点,而且任何商家和线路不可能一直稳定,我们需要做的就是定期观察和数据定期备份。下面,请跟云服务器网(yuntue.com)小编来看一下2021年国内/国...
傲游主机商我们可能很多人并不陌生,实际上这个商家早年也就是个人主机商,传说是有几个个人投资创办的,不过能坚持到现在也算不错,毕竟有早年的用户积累正常情况上还是能延续的。如果是新服务商这几年确实不是特别容易,问到几个老牌的个人服务商很多都是早年的用户积累客户群。傲游主机目前有提供XEN和KVM架构的云服务器,不少还是亚洲CN2优化节点,目前数据中心包括中国香港、韩国、德国、荷兰和美国等多个地区的CN...
CloudCone针对中国农历新年推出了几款特别套餐, 其中2019年前注册的用户可以以13.5美元/年的价格购买一款1G内存特价套餐,以及另外提供了两款不限制注册时间的用户可购买年付套餐。CloudCone是Quadcone旗下成立于2017年的子品牌,提供VPS及独立服务器租用,也是较早提供按小时计费VPS的商家之一,支持使用PayPal或者支付宝等付款方式。下面列出几款特别套餐配置信息。CP...
ldapserver为你推荐
小企业如何做品牌一个小企业,如何做大做强?phpcms模板phpcms为什么PHPCMS就是不能出一套好看的默认模板企业推广如何推广自己公司的产品。163yeah163,126,yeah哪个更好啊,各有什么特点啊什么是支付宝支付宝是什么意思?asp.net网页制作如何用DREAMWEAVER ASP.NET 做网页ipad代理想买个ipad,3000至4000元左右有什么好的文档下载请问手机版wps如何把云文档下载到手机上的本地文档?小型汽车网上自主编号申请网上选号自编号怎么选团购程序什么是团购 团购的目的与流程
过期域名查询 sugarhosts 阿里云os 荣耀欧洲 pw域名 域名优惠码 轻博客 蜗牛魔方 个人域名 炎黄盛世 柚子舍官网 adroit tna官网 搜索引擎提交入口 东莞idc 智能dns解析 阿里云手机官网 工信部icp备案查询 杭州电信 windowsserverr2 更多