Udostępnij przez


Tworzenie prawa dostępu do kontroli

Aby dodać prawo dostępu kontroli do serwera usługi Active Directory, utwórz obiekt ControlAccessRight w kontenerze Extended-Rights partycji Konfiguracji. Aby uzyskać więcej informacji i przykład kodu, zobacz Przykładowy kod tworzenia prawa dostępu kontroli. Aby użyć prawa dostępu do kontroli, należy wykonać kilka kolejnych kroków, w zależności od tego, czy prawo kontroli dostępu jest przeznaczone dla operacji specjalnej, czy zestawu właściwości.

Jeśli zdefiniujesz prawo dostępu do kontroli dla zestawu właściwości, użyj rightsGUID obiektu controlAccessRight, aby zidentyfikować właściwości w zestawie. Każda właściwość jest definiowana przez obiekt attributeSchema w schemacie usługi Active Directory. Atrybut attributeSecurityGUID właściwości obiektu attributeSchema identyfikuje zespół właściwości, jeśli taki istnieje, do którego należy właściwość. Należy pamiętać, że właściwość attributeSecurityGUID jest jednowartościowa i przechowuje identyfikator GUID w postaci ciągu bajtów (składnia ciągu oktetowego).

Jeśli zdefiniujesz prawo dostępu do kontroli w celu umieszczenia ograniczeń dostępu do określonej operacji, aplikacja musi wykonać kontrolę dostępu, gdy użytkownik spróbuje wykonać operację.

Aby skonfigurować sprawdzanie dostępu

  1. Utwórz prawo dostępu do kontroli, które definiuje typ dostępu do aplikacji lub usługi. Aby uzyskać więcej informacji, zobacz poniższy przykład kodu.
  2. Utwórz obiekt usług Active Directory Domain Services reprezentujący aplikację, usługę lub zasób, który jest chroniony.
  3. Dodaj ACE obiektu do DACL w deskryptorze zabezpieczeń obiektu, aby udzielić lub odmówić użytkownikom lub grupom prawa dostępu do kontroli tego obiektu. Aby uzyskać więcej informacji, zobacz także Ustawianie prawa dostępu kontrolnego ACE w liście ACL dla obiektu.
  4. Gdy użytkownik próbuje wykonać operację, zweryfikuj prawa użytkownika, przekazując deskryptor zabezpieczeń obiektu i token dostępu użytkownika do funkcji AccessCheckByTypeResultList. Aby uzyskać więcej informacji, zobacz Sprawdzanie prawa dostępu do kontroli w liście ACL obiektu.

Na podstawie wyniku sprawdzania dostępu do obiektu aplikacja lub usługa może zezwolić lub odmówić użytkownikowi dostępu do aplikacji lub usługi.

Podczas tworzenia obiektu controlAccessRight należy ustawić atrybuty wymienione w poniższej tabeli, aby obiekt był prawem dostępu kontroli prawnej rozpoznawany przez usługi Active Directory Domain Services i systemy zabezpieczeń systemu Windows.

Atrybut Opis
cn Właściwość o pojedynczej wartości, która jest względną nazwą wyróżniającą obiektu (RDN) w kontenerze Extended-Rights. cn to nazwa prawa kontroli dostępu w usługach Active Directory Domain Services.
dotyczy Właściwość wielowartośćowa zawierająca klasy obiektów, do których ma zastosowanie prawo kontroli dostępu. Na przykład prawo Send-As access control wymienia klasy obiektów użytkownika i komputera w swojej właściwości appliesTo. Na liście każda klasa obiektu jest identyfikowana przez schemaIDGUID swojego obiektu classSchema. Identyfikatory GUID są przechowywane jako ciągi formularza utworzonego przez funkcję StringFromGUID2 w bibliotece COM, ale bez początkowych i kończących nawiasów klamrowych ({ }). Na przykład następujący identyfikator GUID to schemaIDGUID dla klasy komputera : bf967a86-0de6-11d0-a285-00aa003049e2.
Należy pamiętać, że właściwość schemaIDGUID obiektu classSchema jest przechowywana jako binarny identyfikator GUID przy użyciu składni ciągu octet. Aby przekonwertować ten format ciągu oktetu na format ciągu używanego we właściwości appliesTo, użyj funkcji StringFromGUID2 i usuń klamry z zwróconego ciągu znaków.
Aby uzyskać więcej informacji na temat właściwości schemaIDGUID jednej ze wstępnie zdefiniowanych klas obiektów, takich jak użytkownika lub komputera, zobacz stronę odwołania do klasy w dokumentacji schematu usługi Active Directory w Dokumentacja usług domenowych Active Directory. Aby uzyskać więcej informacji i przykład kodu, który pobiera schemaIDGUID z obiektu classSchema, zobacz Reading attributeSchema and classSchema Objects.
displayName Ciąg znaków używany do wyświetlania prawa kontroli dostępu w interfejsach użytkownika, takich jak strona właściwości zabezpieczeń i inne miejsca w przystawce MMC Użytkownicy i komputery usługi Active Directory.
prawaPrzewodnik Identyfikator GUID identyfikujący prawo dostępu do kontroli w usłudze ACE. Identyfikator GUID jest przechowywany jako ciąg w formie generowanej przez funkcję StringFromGUID2, ale bez początkowych i końcowych nawiasów klamrowych. Użyj Uuidgen.exe dla innego narzędzia, aby wygenerować identyfikator GUID dla prawa dostępu do kontroli. Jeśli zdefiniujesz nowy zestaw właściwości, użyjesz rightsGuid obiektu controlAccessRight, aby zidentyfikować właściwości w zestawie. Dla każdej właściwości w zestawie właściwości ustaw wartość właściwości atrybutSecurityGUID na wartość rightsGUID zestawu właściwości. Wartość atrybutu SecurityGUID dla właściwości jest przechowywana w definicji schematu atrybutu w schemacie usługi Active Directory. Właściwość SecurityGUID jest jednowartościowa i przechowuje identyfikator GUID w formacie binarnym (składnia ciągu bajtów).
objectClass Ten atrybut określa controlAccessRight jako klasę obiektu.
prawidłoweDostępy W przypadku zestawów właściwości ustaw ten atrybut na wartość 0x30 (ADS_RIGHT_DS_READ_PROP | ADS_RIGHT_DS_WRITE_PROP). Aby kontrolować prawa dostępu, ustaw ten atrybut na 0x100 (ADS_RIGHT_DS_CONTROL_ACCESS). Strona właściwości zabezpieczeń rozpoznaje prawa dostępu tylko wtedy, gdy atrybut validAccesses jest ustawiony na odpowiednią wartość. Jeśli zero, prawo dostępu kontroli jest ignorowane lub nie jest wyświetlane przez stronę właściwości zabezpieczeń.

Należy pamiętać, że wstępnie zdefiniowane klasy schematów używają atrybutu localizationDisplayId obiektu kontrolaPrawDostępu, aby określić identyfikator komunikatu używany do pobierania zlokalizowanej nazwy wyświetlanej z Dssec.dll. Nie należy ustawiać atrybutu localizationDisplayId, jeśli zdefiniujesz nowy obiekt controlAccessRight.