Creazione ed eliminazione di oggetti in Servizi di dominio Active Directory
La procedura utilizzata per creare ed eliminare oggetti a livello di codice in Servizi di dominio Active Directory dipende dalla tecnologia di programmazione usata. Per altre informazioni sulla creazione e l'eliminazione di oggetti in Servizi di dominio Active Directory con una tecnologia di programmazione specifica, vedere gli argomenti elencati nella tabella seguente.
Creazione di un oggetto
In generale, gli unici attributi necessari per creare un oggetto sono gli attributi cn e objectClass. La creazione di un oggetto non comporta tuttavia necessariamente un oggetto funzionale. Alcuni tipi di oggetti, ad esempio utenti e gruppi, hanno attributi aggiuntivi necessari per renderli funzionali. Per altre informazioni sulla creazione di tipi specifici di oggetti, vedere Creating a User e Creating Groups in a Domain.
Windows Server 2003: Quando un oggetto dell'utente , gruppoo classe computer viene creato in un controller di dominio in esecuzione in WWindows Server 2003 o versioni successive, il controller di dominio imposta automaticamente l'attributo sAMAccountName per l'oggetto su una stringa univoca, se non ne è specificato uno.
Eliminazione di un oggetto
Quando un oggetto viene eliminato, il server Active Directory esegue le azioni seguenti:
L'attributo isDeleted dell'oggetto eliminato è impostato su TRUE. Gli oggetti con un valore dell'attributo isDeleted impostato su TRUE sono chiamati tombstones.
L'oggetto eliminato viene spostato nel contenitore Oggetti eliminati nel proprio contesto di denominazione. Se l'oggetto systemFlags proprietà contiene il flag 0x02000000, l'oggetto non viene spostato nel contenitore Oggetti eliminati. Per ulteriori informazioni sul collegamento e sull'enumerazione del contenuto del contenitore Oggetti eliminati, vedere Recupero di oggetti eliminati.
Il contenitore Oggetti eliminati è flat, quindi tutti gli oggetti risiedono allo stesso livello all'interno del contenitore Oggetti eliminati. Di conseguenza, il nome distinto relativo dell'oggetto eliminato viene modificato per garantire che il nome sia univoco all'interno del contenitore Oggetti eliminati. Se il nome originale è più lungo di 75 caratteri, viene troncato a 75 caratteri. Al nuovo nome vengono quindi aggiunti i seguenti elementi:
- Un carattere 0x0A
- Stringa "DEL:"
- Forma stringa di un GUID univoco, ad esempio "947e3228-70c9-4311-8b7a-e5c9b5bd4432"
Un esempio di nome di oggetto eliminato è:
Jeff Smith\0ADEL:947e3228-70c9-4311-8b7a-e5c9b5bd4432
La maggior parte dei valori di attributo per l'oggetto eliminato viene rimossa. Gli attributi seguenti vengono mantenuti automaticamente:
- attributeID
- attributeSyntax
- nomeDistinto
- dNReferenceUpdate
- flatName
- governaID
- tipo di gruppo
- tipoIstanza
- lDAPDisplayName
- legacyExchangeDN
- mS-DS-CreatorSID
- mSMQOwnerID
- nome
- nCName
- objectClass
- objectGUID
- objectSid
- oMSyntax
- proxiedObjectName
- replPropertyMetaData
- sAMAccountName
- identificatore di sicurezza
- è sottoclasse di
- systemFlags
- trustAttributes
- direzioneFiducia
- Partner affidabile
- tipoDiFiducia
- controllo account utente
- uSNChanged
- uSNCreated
- quandoCreato
Vengono mantenuti anche altri attributi il cui valore dell'attributo searchFlags contiene 0x00000008.
I valori di attributo seguenti vengono sempre rimossi da un oggetto eliminato:
- categoriaOggetto
- samAccountType
Il descrittore di sicurezza dell'oggetto eliminato viene mantenuto e le voci di controllo di accesso ereditabili non vengono propagate. Il descrittore di sicurezza viene conservato as-is al momento dell'eliminazione dell'oggetto.
I collegamenti da e verso l'oggetto eliminato vengono cancellati. Questa operazione viene eseguita in background dopo l'eliminazione dell'oggetto. Se l'oggetto eliminato viene ripristinato prima che tutti i collegamenti vengano cancellati, verrà ricevuto un errore.
Se l'oggetto viene eliminato in un controller di dominio di Windows Server 2003, l'attributo lastKnownParent dell'oggetto eliminato viene impostato sul nome distinto del contenitore in cui è contenuto l'oggetto quando è stato eliminato.
L'oggetto eliminato rimane nel contenitore Oggetti eliminati per un periodo di tempo noto come durata del marker di eliminazione . Per impostazione predefinita, la durata del tombstone è di 60 giorni, ma questo valore può essere modificato dall'amministratore di sistema. Dopo la scadenza della durata del periodo di validità del tombstone, l'oggetto viene rimosso definitivamente dal Servizio Directory. Per evitare di perdere un'operazione di eliminazione, un'applicazione deve eseguire sincronizzazioni incrementali più frequentemente rispetto alla durata del tombstone.
Windows Server 2003 aggiunge la possibilità di ripristinare gli oggetti eliminati. Per altre informazioni sul ripristino di oggetti eliminati, vedere Ripristino di oggetti eliminati.
Quando un elemento viene eliminato, nessuno degli attributi dell'oggetto può essere modificato. In Windows Server 2003 è possibile modificare il descrittore di sicurezza (l'attributo ntSecurityDescriptor) in un oggetto eliminato. Ciò consente il ripristino degli oggetti quando la persona che ripristina l'oggetto non dispone delle autorizzazioni di scrittura per gli attributi obbligatori. Per aggiornare il descrittore di sicurezza su un oggetto eliminato, il chiamante deve avere il diritto di controllo "Reanimate Tombstone" sul contesto di denominazione, oltre a WRITE_DAC e WRITE_OWNER accesso regolari. Anche se il descrittore di sicurezza è restrittivo, l'amministratore può prima assumere la proprietà dell'oggetto, presupponendo che l'amministratore abbia il privilegio SE_TAKE_OWNERSHIP_NAME e quindi modificare il descrittore di sicurezza. A tale scopo, usare la funzione ldap_modify_ext_s con il controllo LDAP_SERVER_SHOW_DELETED_OID. L'elenco di modifiche deve contenere un singolo attributo sostitutivo per l'attributo ntSecurityDescriptor.