Architettura del servizio di directory

15 / 100
()

La funzionalità di Active Directory può essere descritta come un’architettura a più livelli in cui i livelli rappresentano i processi server che forniscono servizi di directory alle applicazioni client. Active Directory è costituito da tre livelli di servizio e diverse interfacce e protocolli che interagiscono per fornire servizi di directory. I tre livelli di servizio ospitano i diversi tipi di informazioni necessarie per individuare i record nel database di directory. Al di sopra dei livelli di servizio in questa architettura ci sono i protocolli e le API (le API sono solo sui client) che consentono la comunicazione tra client e servizi di directory o, in caso di replica, tra due servizi di directory.

La Figura 2.3 mostra i livelli di servizio di Active Directory e le rispettive interfacce e protocolli. La direzione delle frecce indica il modo in cui i diversi client ottengono l’accesso ad Active Directory tramite le interfacce. I client LDAP e API di messaggistica (MAPI) ottengono l’accesso alla directory chiamando le funzioni, indicate da frecce unidirezionali nell’agente di sistema della directory. Il SAM esiste come libreria a collegamento dinamico (DLL) separata e può chiamare solo i punti di ingresso esportati dall’agente di sistema di directory DLL, Ntdsa.dll. Tutti gli altri componenti eccetto il motore di archiviazione estensibile (Esent.dll) si trovano in Ntdsa.dll stesso e sono collegati alle funzioni che desiderano chiamare. Pertanto, è necessaria un’interazione a tre vie tra le tre DLL.

Cc961767.DSBG03(it-it,TechNet.10).gif

Figura 2.3 Livelli di servizio di Active Directory e agenti di interfaccia

I componenti chiave del servizio includono quanto segue:

  • Agente di sistema di directory. Crea una gerarchia dalle relazioni padre-figlio archiviate nella directory. Fornisce API per le chiamate di accesso alla directory.
  • Livello di database. Fornisce un livello di astrazione tra le applicazioni e il database. Le chiamate dalle applicazioni non vengono mai effettuate direttamente al database; passano attraverso il livello del database.
  • Motore di archiviazione estensibile. Comunica direttamente con i singoli record nell’archivio dati della directory sulla base dell’attributo del nome distinto relativo dell’oggetto.
  • Archivio dati (il file di database Ntds.dit). Questo file viene manipolato solo dal motore di database del motore di archiviazione estensibile. È possibile amministrare il file utilizzando lo strumento della riga di comando Ntdsutil. (Per utilizzare Ntdsutil, installare gli strumenti di supporto che si trovano nella cartella Support\Tools sul CD del sistema operativo Windows 2000 Server. Per installare gli strumenti, fare doppio clic sull’icona Setup in quella cartella. Per informazioni sull’installazione e l’utilizzo di Windows 2000 Support Tools e Support Tools Help, vedere il file Sreadme.doc nella cartella Support\Tools del CD del sistema operativo Windows 2000.)

I client ottengono l’accesso ad Active Directory utilizzando uno dei seguenti meccanismi supportati da Active Directory:

  • LDAP/ADSI. I client che supportano LDAP lo utilizzano per connettersi all’agente del sistema di directory. Anche il motore di archiviazione estensibile (ESE) utilizzato da Microsoft® Exchange Server versione 5.5 (e precedenti) client/server di messaggistica e groupware utilizza LDAP. Active Directory supporta LDAPv3 (definito da RFC 2251) e LDAPv2 (definito da RFC 1777). I client Windows 2000, nonché i client Microsoft® Windows® 98 e Microsoft® Windows® 95 su cui sono installati i componenti client di Active Directory, utilizzano LDAPv3 per connettersi all’agente del sistema di directory. Active Directory Service Interfaces (ADSI) è un mezzo per atrarre l’API LDAP fornendo interfacce COM (Component Object Model) ad Active Directory; tuttavia, Active Directory utilizza solo LDAP. L’API LDAP fa parte di Wldap32.dll.
  • MAPI. I client di messaggistica e collaborazione di Microsoft® Outlook® si connettono all’agente del sistema di directory utilizzando l’interfaccia del provider della Rubrica MAPI Remote Procedure Call (RPC).
  • SAM. I client Windows che utilizzano Windows NT 4.0 o versioni precedenti utilizzano l’interfaccia SAM per connettersi all’agente di sistema di directory. Anche la replica dai controller di dominio di backup in un dominio in modalità mista passa attraverso l’interfaccia SAM.
  • REPL. Durante la replica di directory, gli agenti di sistema di directory di Active Directory si connettono tra loro utilizzando un’interfaccia RPC proprietaria.

Agente di sistema di directory

L’ agente di sistema di directory (DSA) è il processo che fornisce l’accesso all’archivio . L’archivio è l’archivio fisico delle informazioni sulla directory che si trova su un disco rigido. Il DSA è il processo lato server che crea un’istanza di un servizio di directory. I client utilizzano una delle interfacce supportate per connettersi (associare) al DSA e quindi cercare, leggere e scrivere oggetti di Active Directory e relativi attributi

Lo spazio dei nomi di Active Directory è partizionato in modo che i singoli controller di dominio non memorizzino l’intera directory. Ogni DSA contiene almeno una singola partizione di directory di Windows 2000 che archivia i dati di dominio per un dominio (come utenti, gruppi e unità organizzative) più due partizioni di directory non di dominio che archiviano i dati dell’intera foresta, inclusi lo schema ei dati di configurazione.

Il livello DSA fornisce le seguenti funzionalità:

Identificazione    dell’oggetto Ogni oggetto in Active Directory dispone di un GUID (identificatore univoco globale) permanente associato a diverse forme di stringa del nome dell’oggetto (SAMAccountName, nome principale utente, nome distinto) nonché un identificatore di sicurezza. Questi nomi di oggetti e l’identificatore di sicurezza non sono permanenti, ovvero possono essere modificati. Tutti i riferimenti permanenti all’oggetto sono mantenuti in termini di GUID; il nome dell’oggetto viene utilizzato per la navigazione nella gerarchia e per scopi di visualizzazione e l’identificatore di sicurezza viene utilizzato per il controllo dell’accesso. Il DSA mantiene l’associazione GUID con un oggetto quando cambia il nome della stringa dell’oggetto o l’identificatore di sicurezza.

Applicazione dello schema degli aggiornamenti    In un sistema multimaster, una modifica a un oggetto schema in una replica potrebbe entrare in conflitto con oggetti esistenti in quella replica e anche con oggetti in altre repliche. In Windows 2000, una modifica dello schema è un’operazione a master singolo, quindi se un aggiornamento non genera un conflitto nella replica di origine, l’aggiornamento è considerato accettabile in tutte le repliche. Pertanto, gli aggiornamenti replicati non eseguono alcun controllo dello schema e non è necessario attendere la replica dello schema prima di creare istanze di un nuovo oggetto o attributo.

Applicazione del controllo di accesso    Il DSA impone le limitazioni di sicurezza nella directory. Il livello DSA legge gli identificatori di sicurezza (SID) sul token di accesso.

Supporto per la replica    Il DSA contiene gli hook per le notifiche di replica. Tutti gli aggiornamenti degli oggetti devono infine passare attraverso la funzione appropriata affinché il servizio directory funzioni correttamente.

Riferimenti    DSA gestisce le informazioni sulla gerarchia di directory (denominate “conoscenza”), che riceve dal livello del database. DSA è responsabile dei riferimenti incrociati degli oggetti di dominio di Active Directory in alto e in basso nella gerarchia e anche ad altre gerarchie di dominio.

Livello database

Il livello del database fornisce una vista a oggetti delle informazioni del database applicando la semantica dello schema ai record del database, isolando così i livelli superiori del servizio di directory dal sistema di database sottostante. Il livello del database è un’interfaccia interna. Non vengono effettuate chiamate di accesso al database direttamente al motore di archiviazione estensibile; invece, tutto l’accesso al database viene instradato attraverso il livello del database.

Active Directory fornisce uno spazio dei nomi gerarchico. Ogni oggetto è identificato in modo univoco nel database dal suo nome distinto. L’attributo di denominazione individuale, chiamato nome distinto relativo, è univoco all’interno del contenitore padre dell’oggetto; il nome distinto relativo e la catena di nomi di oggetti padre successivi costituiscono il nome distinto dell’oggetto. Il database memorizza il nome distinto relativo per ogni oggetto, nonché un riferimento all’oggetto padre. Il livello del database segue questi riferimenti padre e concatena i nomi distinti relativi successivi per formare nomi distinti.

Tutti i dati che descrivono un oggetto vengono mantenuti come un insieme di attributi, che vengono archiviati come colonne nel database. Il livello del database è responsabile della creazione, del recupero e dell’eliminazione di singoli record, attributi all’interno di record e valori all’interno di attributi. Per eseguire queste funzioni, il livello del database utilizza la cache dello schema (una struttura in memoria nel DSA) per ottenere le informazioni sugli attributi di cui ha bisogno. 

Motore di archiviazione estensibile

Active Directory è implementato su un gestore di tabelle ISAM (Sequential Access Method) indicizzato. Questo database è una versione del database ESE utilizzato da Microsoft® Exchange Server versione 5.5 di messaggistica client/server e groupware. La versione per Windows 2000 di questo database è Esent.dll.

ESE archivia tutti gli oggetti di Active Directory. Può supportare un database di dimensioni fino a 16 terabyte, che teoricamente può contenere molti milioni di oggetti per dominio.

nota-iconaNota

Il test del database è stato effettuato su 40 milioni di oggetti per dominio.

Le seguenti caratteristiche ESE lo rendono adatto alle esigenze di archiviazione di Active Directory:

  • Viene utilizzato dal servizio directory e dall’archivio informazioni in Exchange Server versione 5.5.
  • Supporta l’indicizzazione.
  • Supporta attributi multivalore.
  • Supporta le operazioni di aggiornamento che vengono gestite per stabilità e integrità in caso di errori di sistema.
  • È possibile eseguire il backup mentre il controller di dominio è online.
  • Gestisce bene le righe sparse, ovvero le righe in cui molte delle proprietà non hanno valori.

Active Directory viene fornito con uno schema predefinito che definisce tutti gli attributi necessari e consentiti per un determinato oggetto. ESE riserva spazio di archiviazione solo per lo spazio utilizzato, ovvero solo per gli attributi che hanno valori, non per tutti i possibili attributi. Ad esempio, se un oggetto utente ha già 50 attributi definiti nello schema e si crea un utente con valori solo per 4 attributi, lo spazio di archiviazione viene allocato solo per quei 4 attributi. Se in seguito vengono aggiunti più attributi, viene allocata più spazio di archiviazione.

Esent.dll implementa la funzionalità di ricerca e recupero del database sottostante. Inoltre, ESE è in grado di memorizzare attributi che possono avere più valori. Ad esempio, il database può memorizzare più numeri di telefono per un singolo utente senza richiedere un attributo di numero di telefono diverso per ciascun numero di telefono.

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?