Freigeben über


Erstellen eines Steuerelementzugriffsrechts

Um einem Active Directory-Server ein Steuerelementzugriffsrecht hinzuzufügen, erstellen Sie ein controlAccessRight-Objekt im Extended-Rights Container der Konfigurationspartition. Weitere Informationen und ein Codebeispiel finden Sie unter Beispielcode zum Erstellen eines Steuerelementzugriffsrechts. Um das Zugriffsrecht für die Steuerung zu verwenden, müssen Sie einige weitere Schritte ausführen, je nachdem, ob das Steuerungszugriffsrecht für einen speziellen Vorgang oder einen Eigenschaftensatz gilt.

Wenn Sie ein Steuerelementzugriffsrecht für einen Eigenschaftensatz definieren, verwenden Sie die rightsGUID des controlAccessRight-Objekts , um die Eigenschaften in der Gruppe zu identifizieren. Jede Eigenschaft wird durch ein attributSchema-Objekt im Active Directory-Schema definiert. Die attributeSecurityGUID-Eigenschaft eines attributSchema-Objekts identifiziert den Eigenschaftssatz, zu dem die Eigenschaft gehört, sofern vorhanden. Beachten Sie, dass die attributSecurityGUID-Eigenschaft einwertig ist und die GUID im Binärformat (Oktettzeichenfolgensyntax) speichert.

Wenn Sie ein Kontrollzugriffsrecht definieren, um den Zugriff auf einen bestimmten Vorgang einzuschränken, muss Ihre Anwendung die Zugriffsüberprüfung durchführen, wenn ein Benutzer den Vorgang versucht.

So richten Sie die Zugriffsüberprüfung ein

  1. Erstellen Sie ein Steuerungszugriffsrecht, das den Typ des Zugriffs auf die Anwendung oder den Dienst definiert. Weitere Informationen finden Sie im folgenden Codebeispiel.
  2. Erstellen Sie ein Active Directory Domain Services-Objekt, das die zu schützende Anwendung, den Dienst oder die Ressource darstellt.
  3. Fügen Sie der DACL im Objektsicherheitsdeskriptor Objekt-ACEs hinzu, um Benutzern oder Gruppen das Steuerungszugriffsrecht für dieses Objekt zu gewähren oder zu verweigern. Weitere Informationen finden Sie unter Festlegen eines Zugriffssteuerungs-ACE in der ACL eines Objekts.
  4. Wenn ein Benutzer versucht, den Vorgang auszuführen, überprüfen Sie die Benutzerrechte, indem Sie den Objektsicherheitsdeskriptor und das Benutzerzugriffstoken an die AccessCheckByTypeResultList-Funktion übergeben. Weitere Informationen finden Sie unter Überprüfen eines Steuerelementzugriffsrechts in der ACL eines Objekts.

Basierend auf dem Ergebnis der Zugriffsüberprüfung für das Objekt kann die Anwendung oder der Dienst dem Benutzer den Zugriff auf die Anwendung oder den Dienst erlauben oder verweigern.

Wenn Sie ein controlAccessRight-Objekt erstellen, legen Sie die in der folgenden Tabelle aufgeführten Attribute fest, um das Objekt zu einem gesetzlichen Kontrollzugriffsrecht zu machen, das von Active Directory Domain Services und den Windows-Sicherheitssystemen erkannt wird.

attribute BESCHREIBUNG
Cn Eine einwertige Eigenschaft, die der relative Distinguished Name (RDN) des Objekts im Extended-Rights Container darstellt. cn ist der Name des Zugriffssteuerungsrechts in Active Directory Domain Services.
appliesTo Eine mehrwertige Eigenschaft, die die Objektklassen auflistet, auf die das Zugriffssteuerungsrecht angewendet wird. Das Zugriffssteuerungsrecht "Senden als " listet beispielsweise die Objektklassen "Benutzer " und "Computer " in der appliesTo-Eigenschaft auf. In der Liste wird jede Objektklasse durch die schemaIDGUID ihres classSchema-Objekts identifiziert. Die GUIDs werden als Zeichenfolgen des Formulars gespeichert, das von der StringFromGUID2-Funktion in der COM-Bibliothek erstellt wird, jedoch ohne die startenden und beendenden Klammern ({ }). Die folgende GUID ist beispielsweise die schemaIDGUID für die Computerklasse : bf967a86-0de6-11d0-a285-00aa003049e2.
Beachten Sie, dass die schemaIDGUID-Eigenschaft eines classSchema-Objekts unter Verwendung der Oktettzeichenfolgensyntax als binäre GUID gespeichert wird. Um dieses Oktettzeichenfolgenformat in das Zeichenfolgenformat zu konvertieren, das in der appliesTo-Eigenschaft verwendet wird, verwenden Sie die StringFromGUID2-Funktion , und entfernen Sie die geschweiften Klammern aus der zurückgegebenen Zeichenfolge.
Weitere Informationen zur schemaIDGUID-Eigenschaft einer der vordefinierten Objektklassen, z. B. Benutzer oder Computer, finden Sie auf der Klassenreferenzseite in der Active Directory-Schemareferenz im Active Directory Domain Services Reference. Weitere Informationen und ein Codebeispiel, das eine schemaIDGUID aus einem classSchema-Objekt abruft, finden Sie unter Lesen von attributeSchema- und classSchema-Objekten.
displayName Die Zeichenfolge, die zum Anzeigen des Zugriffssteuerungsrechts in Benutzeroberflächen verwendet wird, z. B. auf der Eigenschaftenseite "Sicherheit" und an anderen Stellen im Active Directory-Benutzer und -Computer MMC-Snap-Ins.
rightsGuid Eine GUID, die das Steuerungszugriffsrecht in einem ACE identifiziert. Die GUID wird als Zeichenfolge des Formulars gespeichert, das von der StringFromGUID2-Funktion erstellt wird, jedoch ohne die startenden und beendenden Klammern. Verwenden Sie Uuidgen.exe für ein anderes Hilfsprogramm, um eine GUID für das Steuerungszugriffsrecht zu generieren. Wenn Sie einen neuen Eigenschaftensatz definieren, verwenden Sie die rightsGuid des controlAccessRight-Objekts , um die Eigenschaften in der Gruppe zu identifizieren. Legen Sie für jede Eigenschaft im Eigenschaftensatz den Wert des AttributsSecurityGUID der Eigenschaft auf den Wert der rightsGUID des Eigenschaftensatzes fest. Der Wert attributeSecurityGUID einer Eigenschaft wird in der attributSchema-Definition der Eigenschaft im Active Directory-Schema gespeichert. Die Eigenschaft attributeSecurityGUID ist einwertig und speichert die GUID im Binärformat (Oktettzeichenfolgensyntax).
Objectclass Dieses Attribut gibt controlAccessRight als Objektklasse an.
validAccesses Legen Sie für Eigenschaftssätze dieses Attribut auf 0x30 (ADS_RIGHT_DS_READ_PROP | ADS_RIGHT_DS_WRITE_PROP) fest. Legen Sie für Zugriffssteuerungsrechte dieses Attribut auf 0x100 (ADS_RIGHT_DS_CONTROL_ACCESS) fest. Die Seite mit den Sicherheitseigenschaften erkennt Zugriffssteuerungsrechte nur, wenn das attribut validAccesses auf den entsprechenden Wert festgelegt ist. Bei null wird das Steuerelementzugriffsrecht ignoriert oder von der Seite mit den Sicherheitseigenschaften nicht angezeigt.

Beachten Sie, dass die vordefinierten Schemaklassen das localizationDisplayId-Attribut eines controlAccessRight-Objekts verwenden, um einen Nachrichtenbezeichner anzugeben, der zum Abrufen eines lokalisierten Anzeigenamens aus Dssec.dll verwendet wird. Legen Sie das localizationDisplayId-Attribut nicht fest, wenn Sie ein neues controlAccessRight-Objekt definieren.