Sekretess & Cookies
den här webbplatsen använder cookies. Genom att fortsätta godkänner du deras användning. Läs mer, inklusive hur du kontrollerar cookies.
uppdatering: Jag insåg idag att jag skrev samma ämne två gånger, i två olika inlägg., Den här bör betraktas som den kombinerade ansträngningen, men kan läsa lite som en blogg Frankenstein. Original av den andra finns kvar här:
det här inlägget är del 5 i den nya LDAP-serien Jag har börjat hjälpa människor att bli mer medvetna om vad LDAP är och hur det fungerar.
Part one postades här:
vad tusan är en LDAP ändå?
det här inlägget kommer att fokusera på LDAP-servrar och-klienter.,
servrar vs klienter
i djurriket kommer du ofta att se symbotiska relationer, till exempel det påstådda förhållandet mellan krokodiler och ploverfågeln, som äter döda saker från Crocs tänder.
LDAP-klienten / serverrelationen är också symbiotisk. Servern behöver klienten att ställa frågor och klienten behöver servern för att mata den information.,
om naturen inte är din sak, finns det alltid Spider-Man/Venom symbiotic relationship:
När det gäller LDAP kommer en klient att be om saker som användarnamn, hemkatalog platser, gruppmedlemskap, etc. Servern skulle vara ansvarig för att leverera den informationen.
LDAP är inte olikt andra protokoll, såsom HTTP, NFS, etc. Det finns en klient-och serverrelation. Och precis som alla framgångsrika relationer måste det finnas någon som pratar och någon lyssnar.
Jag har en tvåårig son. Han pratar, men det mesta är bara övning för honom., Han kommer att säga saker som ” dada, fågelbil.”Och jag säger” fågel? Lastbil? Coolt!”Det är mestadels en ensidig konversation där jag i huvudsak ACK hans SYNs. (Jag behöver komma ut mer)
Ibland är det ”dada read book.”Och jag följer.
LDAP-klient / serverkonversationer är inte mycket olika. Klienten är min tvååring. LDAP-servern är jag.
”LDAP, hitta användarinformation”
”användarinformation? Coolt! Här har du!”
i själva basen är LDAP-konversationer inget annat än TCP-syner och ACKs. Så, när du konfigurerar eller felsöker, bör de behandlas som sådana.,
där saker blir förvirrade är när du börjar överväga vad som krävs för att en klient/server-relation ska lyckas. Det är inte en bra idé att lämna kommunikationskanalerna öppna för alla i världen att se, så det finns några regler som vi måste följa när kunderna vill prata med servrar.
klient/serverkonfiguration
LDAP-klienter kan vara allt som körs programvara som kan fråga LDAP via RFC-2307 standarder. Windows, Linux, lagringssystem operativsystem, etc kan alla fungera som klienter., Vissa operativsystem innehåller inbyggd LDAP-funktionalitet (till exempel Windows) som inte kräver att du installerar något speciellt. Vissa lagringssystem, som NetApps klustrade data ONTAP, stöder fullt ut LDAP som följer RFC-2307-standarden. Mer information finns i TR-4073: Secure Unified Authentication.
grundläggande nätverksinformation.
Kom ihåg att vid basen är det en enkel TCP-konversation.
- LDAP-servernamn, URI-eller IP-adresser (är servern i DNS? Finns det SRV-poster för LDAP?,)
- LDAP-port (standardportar är 389 för LDAP, 636 för LDAP över SSL, 3268 för Global katalog; har du ändrat serverporten? )
- kan klienten prata med servern (routing?)
innan en klient kan inleda en konversation med en server måste den konfigureras med information om den servern. Konfigurationen kommer att följa grunderna i OSI-modellen, med början vid de första lagren av stapeln för att initiera en TCP-konversation med servern.
vanliga LDAP-klienter
LDAP-klienter tenderar också att följa samma standarder som servrarna. Varför?, För att det är vettigt. Klienter kan stå ensamma från ett operativsystem, men vissa operativsystem integrerar ldap i deras konfiguration som standard. Windows är ett exempel på detta på grund av hur integral LDAP är till Active Directory.
andra klienter inkluderar (men är verkligen inte begränsade till):
- sssd
- OpenLDAP
förhoppningsvis har informationen i det här inlägget hjälpt till att rensa upp förvirring på LDAP-klienter och servrar.
vissa LDAP-servrar låter dig till och med göra ändringar i porten som den lyssnar på för LDAP-kommunikation., Detta är för att skydda LDAP-servrar genom att inte utnyttja välkända portar. Med vanliga LDAP-servrar som Active Directory är det dock svårt att använda olika portar från de vanliga. När du konfigurerar klienterna måste LDAP-serverkonfigurationen alltid ses över.
Efter att vi kommit förbi TCP-anslutningen spenderar vi vår tid i applikationsskiktet i OSI-modellen.
Bind/Login information.
först måste vi oroa oss för autentisering till LDAP-servern. Detta är också känt som bindande., Autentiseringsnivån beror på vad servern har ställts in för att tillåta. Den lägsta möjliga autentiseringsnivån är ”anonym”, men ingen modern LDAP-server tillåter anonyma bindningar som standard. Generellt krävs ett skrivskyddat konto på LDAP-servern för att autentisera till en server för att utfärda LDAP-frågor.
den nödvändiga bindningsinformationen ingår i klientkonfigurationen. För den säkraste konfigurationen föredras att använda ett biljett-eller nyckelbaserat autentiseringssystem framför att använda lösenord.,
LDAP sökinformation
efter en bindning sker, frågorna utförs. Frågornas karaktär beror på klientkonfigurationen. Vilket schema använder vi? Vilken information behöver vi? Har vi konfigurerat klienten för att se till att prova LDAP för information hela tiden (via nsswitch.conf konfiguration)? Berättade vi för klienten var du ska börja leta efter information på LDAP-servern genom att tillhandahålla basen DN?
detta talar om för klienten var man ska börja leta efter information i LDAP-servern.,Formatet för denna information är Distinguished Names (DNs), som jag täcker i del 4. Du kan ställa in en bas DN och sedan specifik DNs för användare, grupper, netgroups, etc. Du kan även ange flera platser att söka. Tanken här är att filtrera våra sökningar för att påskynda saker för kunderna.
roligt faktum: Apple Auto-korrigerar DNs till DNS. Inte coolt, Apple. Inte coolt.
När LDAP-klienten har nödvändig information bör den unbind-vi vill inte vara inloggade på obestämd tid. Det är en resurshög.
LDAP-schemainformation
Jag täcker scheman i detalj i del 3., Många kunder vet om standardscheman LDAP använder, såsom RFC-2307, RFC-2307bis, etc. I de flesta fall kommer scheman på servern inte att avvika från det. Men i vissa fall, till exempel genom manuell intervention eller 3: e parts verktyg som Dell Vintela (även känd som centrifugering, Quest, etc), kan det finnas behov av att göra justeringar. Detta kan göras på kunden. Detta gör det möjligt för klienten att be om rätt information från servern, som sedan tillåter servern att hitta informationen och svara på klienten.,
Klientspecifika alternativ
många klienter erbjuder specifika alternativ som cachning av användare / grupper, referenser, Kerberos-konfiguration etc. Dessa är i allmänhet valfria, men bör undersökas på en per-klient leverantör basis.
exempel på klientkonfiguration
Följande är ett exempel på hur en klustrad data ONTAP LDAP-klient skulle se ut:
det här är vad min klientkonfiguration som kör SSSD ser ut:
servrar
om du vill att klienterna ska be om information behöver du en server., Servern måste ha ett giltigt RFC-2307-schema för att innehålla de nödvändiga LDAP-objekten. Om du gör UNIX-baserad LDAP och vill använda Microsoft Active Directory För att visa UNIX-baserad autentisering måste du se till att servern har UNIX-attribut i schemat. Medan Microsoft Active Directory körs på en LDAP-backend är det inte sant UNIX-baserad LDAP-server förrän du utökar schemat. Jag pratar lite om detta i mitt blogginlägg på IDMU.
som nämnts i klientavsnittet behöver du en massa information för att konfigurera klienter. Servern är där denna information kommer från., Här är de saker du behöver kontrollera på servern för att säkerställa att du konfigurerar dina klienter korrekt:
- server network info (IP-adress, värdnamn, DNS-poster, SRV-poster, LDAP serverportar, etc.(använd den starkaste tillgängliga, om möjligt)
- giltig bindanvändare eller SPN
- DN-information
- Schematyp/attribut
LDAP-servrar kan vara värd för massor av information. UNIX user creds, Windows creds, netgroups, IP-adresser, SPNs, namn mapping rules…. Det beror bara på vad klienterna stöder som bestämmer vad du kan använda.,
vanliga LDAP-servrar
LDAP-servrar tenderar alla att följa en gemensam uppsättning standarder som definieras av IETF. Detta för att säkerställa ett brett utbud av stöd för kunder., Några av de vanligaste LDAP-servrarna inkluderar (men är inte begränsade till):
- Active Directory
- OpenLDAP
- RedHat Directory Server/389 Directory Server
- Apple Open Directory
- Oracle Internet Directory
- ApacheDS
LDAP-hänvisningar
om du använder flera LDAP-servrar och en klient inte kan hitta en objekt i den angivna LDAP-serverns domän kan det försöka använda en LDAP-hänvisning för att leta i de andra servrarna., I huvudsak tar det information i LDAP-servern om andra servrar vi känner till och försöker ansluta till dem via LDAP Uri tills det antingen A) hittar objektet eller b) tar slut på servrar för att försöka. Detta kan hända i både Windows och icke-Windows LDAP-servrar. Vissa LDAP-klienter stöder inte ”referral chasing”, så det är viktigt att veta om detta händer i din miljö och om din klient kan jaga hänvisningar.,
globala Katalogsökningar
i Active Directory är det möjligt att lagra en kopia av attribut från flera domäner i en skog på lokala domänkontrollanter som fungerar som Globala katalogservrar. Som standard replikeras inte Unix-attribut till den globala katalogen, men du kan ändra det beteendet efter behov. Jag täcker hur man gör detta i TR-4073. Om du behöver fråga flera domäner i samma skog och vill undvika LDAP-hänvisningar kan du helt enkelt replikera de nödvändiga attributen och ändra LDAP-porten till 3268 för att låta servrarna veta att använda den globala katalogen istället!,
min miljö
i min miljö använder jag Active Directory LDAP med identitetshantering. Men jag har varit kända för att använda OpenLDAP och RedHat Directory Services. Båda är helt giltiga att använda. Men om du har för avsikt att göra multiprotocol NAS (CIFS/SMB och NFS), jag starkt föreslår att du använder Microsoft Active Directory för autentisering för UNIX-och Windows-användare. Gör livet oändligt lättare.
om du redan använder Linux-baserade LDAP är det bra. Om möjligt, försök att säkerställa att Unix-användarnamnen (uid LDAP-attributet) matchar Windows-användarnamnen (samaccount-attributet)., På så sätt, om du använder multiprotocol NAS, behöver du inte oroa dig för namnmappning.
om du vill se något som läggs till i det här inlägget om LDAP-servrar och kunder, var god kommentera eller följ mig på Twitter @Nfsdudeabides!
Wrap-up
För mer detaljerad information om LDAP-konfigurationen (särskilt med NetApp grupperade Data ONTAP), se TR-4073: Säker gemensam Autentisering.
håll dig också inställd på mer i serien av LDAP-grunderna på den här bloggen!,
länkar till andra avsnitt kan hittas på det första inlägget i denna serie:
vad tusan är en LDAP ändå?