Udostępnij za pośrednictwem


Jak działa kontrola dostępu

Gdy wątek próbuje uzyskać dostęp do zabezpieczanego obiektu, system udziela lub odmawia dostępu. Jeśli obiekt nie ma uznaniowej listy kontroli dostępu (DACL), system udziela dostępu; w przeciwnym razie system wyszukuje wpisy listy kontroli dostępu (ACEs) w DACL obiektu, które mają zastosowanie do wątku. Każda ACE w DACL obiektu określa prawa dostępu, które są dozwolone lub odrzucone dla podmiotu, którym może być konto użytkownika, konto grupowe lub sesja logowania .

Listy kontroli dostępu

System porównuje powiernika w każdym ACE z powiernikami zidentyfikowanymi w tokenie dostępu wątku . Token dostępu zawiera identyfikatory zabezpieczeń (SID), które identyfikują użytkownika i konta grupy, do których należy użytkownik. Token zawiera również identyfikator SID logowania , który identyfikuje bieżącą sesję logowania. Podczas sprawdzania dostępu system ignoruje identyfikatory SID grupy, które nie są włączone. Aby uzyskać więcej informacji na temat włączonych, wyłączonych i tylko-odmowy identyfikatorów SID, zobacz Atrybuty SID w tokenie dostępu.

Zazwyczaj system używa podstawowego tokenu dostępu wątku, żądającego dostępu. Jeśli jednak wątek podszywa się pod innego użytkownika, system używa tokenu podszywania się wątku .

System sprawdza poszczególne ACE w sekwencji do momentu wystąpienia jednego z następujących zdarzeń:

  • Odmowa dostępu ACE jawnie odrzuca dowolny z żądanych praw dostępu do jednego z powierniczych wymienionych w tokenie dostępu wątku.
  • Co najmniej jedna z dozwolonych kontroli dostępu dla zaufanych osób wymienionych w tokenie dostępu wątku jawnie udziela wszystkich żądanych praw dostępu.
  • Wszystkie ACL zostały sprawdzone i nadal istnieje co najmniej jedno żądane prawo dostępu, które nie zostało jawnie dozwolone, w takim przypadku dostęp jest niejawnie blokowany.

Na poniższej ilustracji pokazano, jak DACL obiektu może zezwalać na dostęp do jednego wątku, odmawiając dostępu do innego.

dacl, który udziela różnych praw dostępu do różnych wątków

W przypadku wątku A system odczytuje ACE 1 i natychmiast odmawia dostępu, ponieważ ACE odmawiająca dostępu ma zastosowanie do użytkownika w tokenie dostępu wątku. W takim przypadku system nie sprawdza ACEs 2 i 3. W przypadku wątku B, ACE 1 nie ma zastosowania, więc system przechodzi do ACE 2, który umożliwia dostęp do zapisu i ACE 3, który umożliwia dostęp do odczytu i wykonywania.

Ponieważ system przestaje sprawdzać listy ACE, gdy żądany dostęp jest wyraźnie udzielony lub odrzucony, kolejność ACE w listach DACL jest istotna. Należy pamiętać, że jeśli kolejność ACE była inna w tym przykładzie, system mógł udzielić dostępu do wątku A. W przypadku obiektów systemowych system operacyjny definiuje preferowaną kolejność ACL wDACL.