Finito un libro (ASP.NET Security del team P&P), se ne parte con un altro. Questa volta sono finito su Mastering Active Directory della Sybex. Un buon libro.
Con l'impegno di terminare la sezione Security del blog, parto oggi con una nuova  (o meglio rivisitata categoria) denominata AD & Related la quale tratterà argomenti di Active Directory dal punto di vista sia sistemistico che programmatico. Scrivo questi post, come quelli di security, sperando che possano essere d'aiuto a voi come lo sono stati per me.
Nel primo post vorrei parlare di DNS (una breve intro, niente di che).

Domain Name Server

Domain Name Server (di seguito DNS) viene utilizzato tipicamente come directory da ambienti TCP/IP (Internet) per risolvere nomi user friendly in indirizzi IP.

DNS si compone di un gruppo di server name collegati tra di loro per creare un unica grande rete, meglio definita come DNS Namespace.

Come si presenta DNS Namespace? A livello logico è corretto considerare DNS Namespace come una sistema gerarchico, con cartelle e sottocartelle proprio come file system. Ogni cartella può essere considerata un DNS Domain (da non confondere con Domini NT). Ogni dominio che contiene sottodomini deve essere considerato un parent domain di questi domini, e i sottodomini devono essere considerati child domains. Ogni dominio ha un solo, ed unico, parent domain. Al top della struttura gerarchica si trova il root domain, questo è l'unico dominio che non ha parent domain. I domini s'identificano nella path completa a partire dal primo figlio sotto il root domain. Un esempio

 

myEnterprise [root domain]
        - com  [parent domain of 2coder]
           - 2coder [parent domain - child of 2coder]

in questo caso 2coder sarà identificato come il dominio :
2coder-com in quanto è figlio del dominio com.

Per chi non è espertissimo di ADSI, quando ci si deve collegare a specifici domini bisogna inserire una stringa che definisce il percorso attraverso cui il DirectoryEntry deve poter navigare per raggiungere il punto d'arrivo prefissato.. Beh quella path, definiamola tranquillamente la nostra ConnectionString per AD, deve essere creata dall'utente.. (dimenticatevi un sistemista che vi dice il percorso LDAP intero del ramo a cui volete arrivare). Per scrivere la path giusta bisogna aprire lo schema di Active Directory e partire dal basso fino a raggiungere il primo child domain di root domain.. Tutto questo segnandosi su un fogliettino di carta i domini attraverso cui si passa :)

Domain Name Controller è critico in un ambiente ADS perchè ADS usa DNS per risolvere i nomi host in indirizzi ip per funzioni interne, come la replica del directory database. Senza un sistema DNS correttamente funzionante, ADS non funzionerà. Conoscere bene il funzionamento di DNS è una delle basi primarie di ogni programmatore ADSI che si rispetti.