Ereditarietà del controllo di accesso

Le voci di controllo di accesso (ACL) in un elenco di controllo di accesso a oggetti possono appartenere a una di due categorie:

  • ACL effettivo: gli ACL in questa categoria si applicano all'oggetto .
  • Eredita ACL: gli ACL in questa categoria vengono ereditati dagli oggetti creati nel contenitore.

Ogni ACE nell'elenco DACL può appartenere a una o più categorie. Le categorie per cui appartiene un ace sono determinate dai flag di controllo di ereditarietà impostati nell'ace.

È possibile impostare tre flag di controllo di ereditarietà nella proprietà AceFlags di un ace.

Bandiera Descrizione
ADS_ACEFLAG_INHERIT_ACE Questo flag indica che ace fa parte dell'ACL eredita e che gli oggetti figlio ereditano i flag di controllo di ereditarietà di questa ace.
ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE Questo flag indica che ace fa parte dell'ACL di ereditarietà, ma che nessun flag di controllo di ereditarietà viene propagato a oggetti figlio diretti (discendenti diretti) e l'ace è efficace sugli oggetti figlio diretti.
ADS_ACEFLAG_INHERIT_ONLY_ACE Questo flag indica che ace non fa parte dell'ACL effettivo. Se questo flag non è impostato, l'ace fa parte dell'ACL effettivo. Questo flag è utile per impostare le autorizzazioni ereditabili dai sottooggetti, ma non influiscono sull'accessibilità del contenitore. Ad esempio, se un ace deve essere ereditato dagli oggetti utente in un'unità organizzativa, è probabile che non debba essere applicato per l'accesso all'unità organizzativa stessa.

I flag ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE e ADS_ACEFLAG_INHERIT_ONLY_ACE sono significativi solo se è presente ADS_ACEFLAG_INHERIT_ACE. Questo perché il flag ADS_ACEFLAG_INHERIT_ACE aggiunge il comportamento di ereditarietà a un ace ereditabile, ma non definisce il tipo di ereditarietà. I flag ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE e ADS_ACEFLAG_INHERIT_ONLY_ACE definiscono un tipo specifico di comportamento di ereditarietà.

È importante ricordare che il sistema imposta anche i flag seguenti in base al tipo e allo stato dell'ACE.

Bandiera Descrizione
ADS_ACEFLAG_INHERITED_ACE Questo flag indica che l'ace è stato ereditato.
ADS_ACEFLAG_VALID_INHERIT_FLAGS Questo flag indica che i flag di eredita sono validi.

Nella tabella seguente sono elencati gli effetti delle diverse combinazioni di flag per le AceFlags proprietà di un ace.

Bandiera Effetto sull'oggetto contenente l'ACE Effetto sugli oggetti figlio diretti Effetto sugli oggetti sotto figli diretti
Nessun flag impostato. ACE effettivo: ACE si applica all'oggetto . ACE non viene ereditato. ACE non viene ereditato.
ADS_ACEFLAG_INHERIT_ACE ACE effettivo ACE viene ereditato. ACE è un ACE efficace.
ACE viene ereditato. ACE è un ACE efficace.
| ADS_ACEFLAG_INHERIT_ACEADS_ACEFLAG_INHERIT_ONLY_ACE Ace non valido: ACE non si applica all'oggetto. ACE viene ereditato. ACE è un ACE efficace.
ACE viene ereditato. ACE è un ACE efficace.
| ADS_ACEFLAG_INHERIT_ACEADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE ACE effettivo ACE viene ereditato ma senza flag di ereditarietà. ACE è un ACE efficace
ACE non viene ereditato.
| ADS_ACEFLAG_INHERIT_ACE | ADS_ACEFLAG_INHERIT_ONLY_ACEADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE Non un ACE efficace. ACE viene ereditato ma senza flag di ereditarietà. ACE è un ACE efficace.
ACE non viene ereditato.