Contesti di sicurezza e servizi di Dominio di Active Directory

Quando un'applicazione viene associata a un controller di Dominio di Active Directory, questa operazione viene eseguita nel contesto di sicurezza di un'entità di sicurezza, che può essere un utente o un'entità, ad esempio un computer o un servizio di sistema. Il contesto di sicurezza è l'account utente usato dal sistema per applicare la sicurezza quando un thread tenta di accedere a un oggetto a protezione diretta. Questi dati includono l'identificatore di sicurezza utente (SID), le appartenenze ai gruppi e i privilegi.

Un utente stabilisce un contesto di sicurezza presentando le credenziali per l'autenticazione. Se le credenziali vengono autenticate, il sistema produce un token di accesso che identifica le appartenenze ai gruppi e i privilegi associati all'account utente. Il sistema verifica il token di accesso quando si tenta di accedere a un oggetto directory. Confronta i dati nel token di accesso con gli account e i gruppi concessi o negati l'accesso dal descrittore di sicurezza degli oggetti.

Usare i metodi seguenti per controllare il contesto di sicurezza con cui si esegue l'associazione a un controller di dominio di Active Directory:

  • Eseguire l'associazione usando l'opzione ADS_edizione StandardCURE_AUTHENTICATION con la funzione ADsOpenObject o il metodo IADsOpenDSObject::OpenDSObject e specificare in modo esplicito un nome utente e una password. Il sistema autentica queste credenziali e genera un token di accesso usato per la verifica dell'accesso per la durata dell'associazione. Per altre informazioni, vedere Autenticazione.
  • Eseguire l'associazione usando l'opzione ADS_edizione StandardCURE_AUTHENTICATION, ma senza specificare le credenziali. Se non si rappresenta un utente, il sistema usa il contesto di sicurezza principale dell'applicazione, ovvero il contesto di sicurezza dell'utente che ha avviato l'applicazione. Nel caso di un servizio di sistema, si tratta del contesto di sicurezza dell'account del servizio o dell'account LocalSystem.
  • Rappresenta un utente e quindi esegue l'associazione con ADS_edizione StandardCURE_AUTHENTICATION, ma senza specificare le credenziali. In questo caso, il sistema usa il contesto di sicurezza del client rappresentato. Per altre informazioni, vedere Rappresentazione client.
  • Eseguire l'associazione usando ADsOpenObject o IADsOpenDSObject::OpenDSObject con l'opzione ADS_NO_AUTHENTICATION. Questo metodo viene associato senza autenticazione e restituisce "Everyone" come contesto di sicurezza. Questa opzione è supportata solo dal provider LDAP.

Se possibile, eseguire l'associazione senza specificare le credenziali. Ovvero, usare il contesto di sicurezza dell'utente connesso o del client rappresentato. In questo modo è possibile evitare di memorizzare nella cache le credenziali. Se è necessario usare credenziali utente alternative, richiedere le credenziali, associarle, ma non memorizzarle nella cache. Per usare lo stesso contesto di sicurezza in più operazioni di associazione, è possibile specificare il nome utente e la password per la prima operazione di associazione e quindi specificare solo il nome utente per eseguire le associazioni successive. Per altre informazioni sull'uso di questa tecnica, vedere Autenticazione.

Alcuni contesti di sicurezza sono più potenti di altri. Ad esempio, l'account LocalSystem in un controller di dominio ha accesso completo a Dominio di Active Directory Services, mentre un utente tipico ha accesso limitato solo ad alcuni degli oggetti nella directory. In generale, l'applicazione non deve essere eseguita in un contesto di sicurezza potente, ad esempio LocalSystem, quando un contesto di sicurezza meno potente è sufficiente per eseguire le operazioni. Ciò significa che è possibile dividere l'applicazione in componenti separati, ognuno dei quali viene eseguito in un contesto di sicurezza appropriato per le operazioni da eseguire. Ad esempio, la configurazione dell'applicazione può essere divisa nel modo seguente:

  • Eseguire modifiche ed estensioni dello schema nel contesto di un utente membro del gruppo Schema Amministrazione istrators.
  • Eseguire modifiche al contenitore di configurazione nel contesto di un utente membro del gruppo Enterprise Amministrazione istrators.
  • Eseguire modifiche al contenitore di dominio nel contesto di un utente membro del gruppo Domain Amministrazione istrators.