LDAP
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 14 mars 2021; kontroller kräver
9 redigeringar .
LDAP ( engelsk Lightweight Directory Access Protocol - "lightweight directory access protocol ") är ett applikationslagerprotokoll för åtkomst till katalogtjänsten X.500 , utvecklat av IETF som en lättviktsversion av DAP - protokollet utvecklat av ITU-T . LDAP är ett relativt enkelt protokoll som använder TCP/IP och tillåter autentisering ( bind ), sökning ( sökning ) och jämförelse ( jämför ), samt åtgärder för att lägga till, ändra eller ta bort poster . Vanligtvis accepterar LDAP -servern inkommande anslutningar på port 389 med TCP- eller UDP-protokoll . SSL - inkapslade LDAP-sessioner använder vanligtvis port 636.
Varje post i LDAP- katalogen består av ett eller flera attribut och har ett unikt namn (DN - English Distinguished Name ). Det unika namnet kan till exempel se ut så här: "cn=Ivan Petrov,ou=Employees,dc=example,dc=com" [1] . Ett unikt namn består av ett eller flera RDN ( Relative Distinguished Names ) separerade med kommatecken . Det relativa unika namnet har formen AttributName=value . Inga två poster med samma relativa unika namn kan finnas på samma katalognivå. På grund av denna struktur kan det unika namnet på en post i en LDAP-katalog enkelt representeras som ett träd.
En post kan bara bestå av de attribut som definieras i beskrivningen av postklassen ( objektklass ), som i sin tur kombineras till scheman ( schema ). Schemat definierar vilka attribut som krävs för en given klass och vilka som är valfria. Schemat definierar också typen och reglerna för att jämföra attribut. Varje postattribut kan lagra flera värden.
Standarder
LDAP-protokollet definieras i följande RFC :er :
- RFC 4510 - Lightweight Directory Access Protocol (LDAP): Teknisk specifikation färdplan (ersätter RFC 3377 )
- RFC 4511 - Lightweight Directory Access Protocol (LDAP): Protokollet
- RFC 4512 - Lightweight Directory Access Protocol (LDAP): Directory Information Models
- RFC 4513 - Lightweight Directory Access Protocol (LDAP): Autentiseringsmetoder och säkerhetsmekanismer
- RFC 4514 - Lightweight Directory Access Protocol (LDAP): Stringrepresentation of Distinguished Names
- RFC 4515 - Lightweight Directory Access Protocol (LDAP): Stringrepresentation av sökfilter
- RFC 4516 - Lightweight Directory Access Protocol (LDAP): Uniform Resource Locator
- RFC 4517 - Lightweight Directory Access Protocol (LDAP): syntaxer och matchningsregler
- RFC 4518 - Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation
- RFC 4519 - Lightweight Directory Access Protocol (LDAP): Schema för användarapplikationer
- RFC 4520 (aka BCP 64) - Internet Assigned Numbers Authority (IANA) överväganden för Lightweight Directory Access Protocol (LDAP) (ersätter RFC 3383 )
- RFC 4521 (aka BCP 118) - Överväganden för Lightweight Directory Access Protocol (LDAP): Tillägg
Utöver protokollet finns det internationella standarder på toppnivå som beskriver allt relaterat till systemintegrationsmodellen och katalogen (Directory), som nås med LDAP och DAP:
- Rekommendation ITU-T X.200 (1994) | ISO/IEC 7498-1:1994, Informationsteknik — Öppna systemsammankoppling — Grundläggande referensmodell: Grundmodellen.
- Rekommendation ITU-T X.500 (2019) | ISO/IEC 9594-1:2020, Informationsteknologi - Öppna systemsammankoppling - The Directory: Översikt över koncept, modeller och tjänster.
- Rekommendation ITU-T X.501 (2019) | ISO/IEC 9594-2:2020, Informationsteknologi - Öppna systemsammankoppling - Katalogen: Modeller.
- Rekommendation ITU-T X.509 (2019) | ISO/IEC 9594-8:2020, Informationsteknik — Öppna systemsammankoppling — Katalogen: ramverk för offentliga nyckel och attributcertifikat.
- Rekommendation ITU-T X.511 (2019) | ISO/IEC 9594-3:2020, Informationsteknologi - Öppna systemsammankoppling - The Directory: Abstrakt tjänstdefinition.
- Rekommendation ITU-T X.518 (2019) | ISO/IEC 9594-4:2020, Informationsteknik — Öppen systemsammankoppling — Katalogen: Procedurer för distribuerad drift.
- Rekommendation ITU-T X.519 (2019) | ISO/IEC 9594-5:2020, Informationsteknik - Öppen systemsammankoppling - Katalogen: Protokollspecifikationer.
- Rekommendation ITU-T X.520 (2019) | ISO/IEC 9594-6:2020, Informationsteknologi — Öppna systemsammankoppling — Katalogen: Valda attributtyper.
- Rekommendation ITU-T X.521 (2019) | ISO/IEC 9594-7:2020, Informationsteknologi - Öppna systemsammankoppling - Katalogen: Utvalda objektklasser.
- Rekommendation ITU-T X.525 (2019) | ISO/IEC 9594-9:2020, Informationsteknik - Öppna systemsammankoppling - Katalogen: Replikering.
Funktionsbeskrivning av protokollet
LDAP-protokollet definierar följande operationer för att arbeta med katalogen:
- Anslut/koppla från operationer
- Bindning ( bind ) - låter dig associera en klient med ett specifikt katalogobjekt (faktiskt eller virtuellt) för att utöva åtkomstkontroll för alla andra läs-/skrivoperationer. För att kunna arbeta med katalogen måste klienten autentiseras som en enhet vars distinguished Name finns i namnutrymmet som beskrivs av katalogen. I begäran om bindningsoperation kan klienten inte ange ett särskilt namn, i vilket fall anslutningen kommer att göras under det speciella aliaset anonym (vanligtvis något som ett gästkonto med minimala rättigheter)
- Unbind ( unbind ) - Tillåter klienten att växla till autentisering med ett nytt framstående namn inom en LDAP-serveranslutningssession. Kommandot unbind är endast möjligt efter autentisering till servern med bind, annars returnerar unbind-anropet ett fel
- Sök ( sök ) - läser data från katalogen. Operationen är komplex, den tar många parametrar som indata, bland vilka de viktigaste är:
- Sökbas ( baseDN ) - DIT-gren från vilken datasökning startar
- Sökdjup ( omfattning ) - kan ha värden (i ökande omfattning): bas, ett, sub
- bas - sök direkt i noden - sökbas
- en - sök igenom alla noder som är direkta ättlingar till basen i hierarkin, det vill säga ligger en nivå under den
- undersök i hela området som ligger bakom sökbasen (baseDN)
- Sökfiltret ( searchFilter ) är ett uttryck som definierar kriterierna för att välja katalogobjekt som faller inom det sökomfång som anges av scope-parametern. Sökfilteruttrycket är skrivet i polsk (prefix) notation , bestående av logiska (booleska) operatorer och operander, som i sin tur är interna operatorer för att matcha LDAP-attributvärden (på vänster sida) med uttryck (på höger sida) med hjälp av likhetstecknet.
Logiska operatorer representeras av en standard "uppsättning": & (logisk "AND"), | (logiskt "ELLER") och ! (logiskt "INTE").
Exempel på sökfilter[ var? ] :
(&(!(entryDN:dnSubtreeMatch:=dc=Piter,dc=Ryssland,ou=People,dc=example,dc=com))(objectClass=sambaSamAccount)
(|(sn=Lazar*)(uid=Nakhims*) ))
- Ändringsoperationer - låter dig ändra data i katalogen, medan konceptet med ändring inkluderar både att lägga till, ta bort och flytta poster som helhet, såväl som att redigera poster på nivån för deras attribut. Ändringsundertyper:
- Lägger till ( lägg till ) - lägger till en ny post
- Ta bort ( radera ) — radera en post
- RDN modifiering ( modrdn ) - flytta/kopiera post
- Postmodifiering ( modifiera ) — tillåter redigering av en post på nivån för dess attribut,
- lägga till ett nytt attribut eller ett nytt värde för ett flervärdigt attribut (lägg till)
- ta bort ett attribut med alla dess värden (radera)
- ersätta ett attributvärde med ett annat (ersätt)
- samt att öka (minska) attributvärdet som en del av en atomär operation (ökning)
- Jämförelseoperation ( jämför ) - gör det möjligt att jämföra det valda attributet med det givna värdet med ett specifikt namn
Möjlighetsbegäran operation
LDAP-standarden definierar en speciell operation som tillåter klienter att få information om de protokollversioner som stöds av servern och LDAP-serverns funktioner. Detta kommando är ett tillägg (tillägg) för sökoperationen och exekveras med följande kombination av den senares parametrar:
- BIND anonym
- baseDN- uppslagsbas specificerad som "" (tom sträng)
- Omfattningssökningsdjupet anges som bas
- Sökfilter: (objectClass=*)
- Lista över begärda attribut: antingen en explicit uppräkning eller " + " ( VARNING ! " * " visar inte värdena för tjänsteattribut som innehåller all användbar information)
Till exempel, när du använder LDAP-klienten från OpenLDAP-distributionen kan kapacitetsfrågekommandot se ut så här:
ldapsearch -x -H ldap://host:port -LLL -b "" -s base '(objectClass=*)' supportedControls supportedCapabilities
Schema query operation
För att begära information om det aktuella schemat för en LDAP-katalog måste du först köra en Query Capabilities Operation genom att hämta värdet av subschemaSubentry- attributet .
ldapsearch -x -H ldap://host:port -LLL -s base -b "" '(objectClass=*)' subschemaSubentry
Det resulterande värdet används som Search Base Distinguished Name ( baseDN ) i Schema Query Operation, som kan beskrivas som:
- BIND anonymt eller fullt. De flesta katalogservrar stöder schemafrågor utan att först BINDA det, men det finns undantag (som Active Directory );
- Sökbasens basDN är lika med värdet på subschemaSubentry- attributet som returneras av Capability Query Operation ;
- Omfattningssökningsdjupet anges som bas ;
- Sökfilter: (objectClass=*) ;
- Lista över begärda attribut: explicit uppräkning av attribut (attributeTypes, objectClasses) är möjlig för alla katalogservrar, i fallet med OpenLDAP och vissa andra (OpenDS, ApacheDS, etc.) är det möjligt att specificera "+";
Till exempel, när du använder LDAP-klienten från OpenLDAP-distributionen kan schemafrågan se ut så här:
ldapsearch -x -H ldap://host:port -LLL -s base -b "cn=Subschema" '(objectClass=*)' ldapSyntaxes matchingRules
Implementeringar
Serversidan
LDAP är en allmänt använd standard för åtkomst av katalogtjänster. Av de fritt distribuerade öppna implementeringarna är OpenLDAP -servern mest känd , av de proprietära är protokollstöd tillgängligt i Active Directory , en katalogtjänst från Microsoft , designad för att centralisera Windows -nätverkshanteringen . IBM Lotus Domino -servern inkluderar också en LDAP-tjänst [2] [3] . Andra stora företag erbjuder också sina implementeringar av katalogtjänster som stöder LDAP som ett åtkomstprotokoll, till exempel Novell och Sun - OpenDS och, därefter, OpenDJ.
Listan över de mest kända LDAP-servrarna idag:
- ÖppnaLDAP
- ForgeRock OpenDJ
- Novell eDirectory
- Apple Open Directory (en gaffel av OpenLDAP-projektet)
- Microsoft Active Directory
- Samba4 LDAP (OpenSource implementering av MS AD)
- RedHat Directory Server
- 389 Directory Server (i huvudsak en testversion av den tidigare)
- Oracle Directory Server
- Apache Directory Server
- IBM Tivoli Directory Server
- IBM Domino LDAP
- CommuniGate LDAP
Klientsidan
LDAP-klienter är både adressböcker för e- postklienter och back-ends av olika nätverkstjänster (DNS, SMTP, Samba, UTS, etc.).
Se även
Anteckningar
- ↑ Beskrivning av LDAP-parametrar Arkiverad 31 maj 2011 på Wayback Machine
- ↑ Domino LDAP-schemat (nedlänk) . Hämtad 31 oktober 2010. Arkiverad från originalet 8 juni 2013. (obestämd)
- ↑ Lotus Domino LDAP-konfigurationsguide (nedlänk) . Hämtad 31 oktober 2010. Arkiverad från originalet 4 mars 2016. (obestämd)
Länkar
Resurser
Servrar
Klienter
Programmeringsgränssnitt (API)
URI- scheman |
---|
Officiell |
|
---|
inofficiell |
|
---|