10 december 2012

C# LDAP introduktion


LDAP



LDAP - Lightweight Directory Access Protocol definierar ett protokoll och en datamodell för kommunikation med en katalogtjänst. Den katalogtjänst som de flesta torde vara mest bekant med är Microsofts Active Directory Andra kända katalogtjänster är b la Novells eDirectory eller Linux/Unixs Samba som nu kommer. 

Ett annat tyngre och mer komplex protokoll är X500 som först användes för åtkomst men har mer och mer ersatts av Ldap som har byggts ut till ett näst intill lika brett protokoll. Dock kallas en katalogtjänst inte sällan för en X500 katalog.  X500 kataloger är ett annat uttryck som ofta används som ett gemensamt namn.

Dock har X500 och Ldap mer gemensamt än skillnader. Men jag tänker inte gå in på X500 kontra Ldap utan vill hänvisa till denna länk LDAP and X.500 

Vad är då en katalogtjänst? Förenklat uttryck kan man säga att det är hierarkisk databas. Syftet kan skilja sig något. Active directory och Samba används för det mesta för att hålla reda på användarkonton och datorer, skrivare i ett nätverk eller domän.


Det finns också andra katalogtjänster som mer är används som verksamhetskataloger. En sådan är t ex Siemens DirX. En verksamhetskatalog håller istället reda på organisationen och anställda samt kanske roller, behörigheter och certifikat m.m. Volvo använder t ex en sådan katalog och där hela dess organisationen för världen ingår. Nu ska det tilläggas att i Active Directory (hädanefter förkortat AD)  är det fullt möjligt att även ha verksamheter. Jag känner till minst tre större organisationer som även använder AD som verksamhetskatalog.


Dock är Katalogtjänster som t ex nämde DirX mer specialiserad på verksamhet. I den organisation jag arbetar har man valt att separera domänspecifika object (datorer, skrivare, användarkonton etc) från verksamheten egna behov som inte sällan heller är både nationella och internationella. Att vissa väljer att separera AD från verksamhet är att man inte vill blanda teknik med verksamhet. 

Vad som är viktigt i en katalog är schemat som beskriver alla objekt och dess attribut som kan finnas. Känner man inte till schemat är det svårt att arbeta mot en katalog. Det är som att försöka anropa en SQL databas utan att känna till vilka tabeller och kolumner det finns.



Jag började utveckla mot katalogtjänster och med Ldap första gången runt 2005. Och för min egen del har det varit Microsofts Active Directory och Exchange (som hanterar Epost och inte är en X500 katalog men det var nästan oundvikligt att inte blanda in Exchange i hanteringen) samt Siemens DirX. Utvecklingsverktyget jag använt är enbart C#. Java är annars väldigt vanligt språk i Sverige som används mot DirX.

Jag tyckte informationen runt C# och Ldap inte direkt flödade över på webben när jag började så jag införskaffad mina grundkunskaper via en hederlig bok som jag främst använde som referenslitteratur. Även kurser i .NET kombinerat med Ldap är mycket svåra att hitta. Jag har inte ens idag hittat en enda. Så det mesta jag kan är självlärt via trial & error och litteratur. .NET frameworket har också utvecklats med tiden och innefattar allt mer förenklat stöd mot AD.



Jag tänkte framåt nu beskriva de vanligaste operationerna mot både DirX och Active Directory (från nu kallad AD) som jag genomför samt lite tips och bra länkar. Och kanske kan andra tipsa om sina erfarenheter.


Ni får gärna kommentera och även ge förslag på bättre eller effektivare kod. Jag uppskattar bara det.


Inga kommentarer:

Skicka en kommentar