Anspruch und Anspruchsregeln
Um die Grammatik von Anspruchsregeln zu verstehen, müssen Sie sich zunächst mit Nachweisrichtlinienansprüchen vertraut machen.
Anspruch
Bei einem Anspruch handelt es sich um eine Gruppe von Eigenschaften zur Bereitstellung relevanter Informationen. Für Azure Attestation enthält ein Anspruch folgende Eigenschaften:
- Typ: Ein Zeichenfolgenwert, der die Art des Anspruchs darstellt.
- value: Ein boolescher Wert, ein ganzzahliger Wert oder ein Zeichenfolgenwert, der den Wert des Anspruchs darstellt.
- valueType: Der Datentyp der in der Eigenschaft „value“ gespeicherten Informationen. Unterstützte Typen sind „String“ (Zeichenfolge), „Integer“ (ganze Zahl) und „Boolean (boolescher Wert). Wenn nicht definiert, ist der Standardwert „String“.
- issuer: Informationen zum Aussteller des Anspruchs. Der Aussteller weist einen der folgenden Typen auf.
- AttestationService: Bestimmte Ansprüche werden dem Richtlinienersteller von Azure Attestation zur Verfügung gestellt und können von diesem verwendet werden, um die entsprechende Richtlinie zu erstellen.
- AttestationPolicy: Durch die (vom Administrator definierte) Richtlinie können im Rahmen der Verarbeitung Ansprüche zu eingehenden Beweisen hinzugefügt werden. In diesem Fall wird der Aussteller auf „AttestationPolicy“ festgelegt.
- CustomClaim: Der Testator (Client) kann dem Nachweisbeweis weitere Ansprüche hinzufügen. In diesem Fall wird der Aussteller auf „CustomClaim“ festgelegt.
Wenn nicht definiert, ist der Standardwert „CustomClaim“.
Anspruchsregel
Der eingehende Anspruchssatz wird von der Richtlinienengine zur Berechnung des Nachweisergebnisses verwendet. Bei einer Anspruchsregel handelt es sich um eine Gruppe von Bedingungen, die dazu dienen, die eingehenden Ansprüche zu überprüfen und die definierte Aktion auszuführen.
Conditions list => Action (Claim)
Die Azure Attestation-Auswertung einer Anspruchsregel umfasst folgende Schritte:
- Ist keine Bedingungsliste vorhanden, wird die Aktion mit dem angegebenen Anspruch ausgeführt. Andernfalls werden die Bedingungen aus der Bedingungsliste ausgewertet.
- Ergibt die Auswertung der Bedingungsliste „false“, wird der Vorgang beendet. Andernfalls wird der Vorgang fortgesetzt.
Die Bedingungen in einer Anspruchsregel werden verwendet, um zu bestimmen, ob die Aktion ausgeführt werden muss. Bei der Bedingungsliste handelt es sich um eine Reihe von Bedingungen, die jeweils durch den Operator „&&“ getrennt sind.
Die Bedingungsliste ist wie folgt strukturiert:
Condition && Condition && ...
Die Bedingung ist wie folgt strukturiert:
Identifier:[ClaimPropertyCondition, ClaimPropertyCondition,…]
Die Liste der Bedingungen setzt sich aus einzelnen Bedingungen für verschiedene Eigenschaften eines Anspruchs zusammen. Eine Bedingung kann über einen optionalen Bezeichner verfügen, mit dem auf die Ansprüche verwiesen werden kann, die die Bedingung erfüllen. Dieser Verweis kann in den anderen Bedingungen oder in der Aktion der gleichen Regel verwendet werden.
Beispiel:
F1:[type=="OSName" , issuer=="CustomClaim"] &&
[type=="OSName" , issuer=="AttestationService", value== F1.value ]
=> issueproperty(type="report_validity_in_minutes", value=1440);
F1:[type=="OSName" , issuer=="CustomClaim"] &&
C2:[type=="OSName" , issuer=="AttestationService", value== F1.value ]
=> issue(claim = C2);
Folgende Operatoren können zur Überprüfung von Bedingungen verwendet werden:
Werttyp | Unterstützte Vorgänge |
---|---|
Integer | == (gleich), != (ungleich), <= (kleiner als oder gleich), < (kleiner als), >= (größer als oder gleich), > (größer als) |
Zeichenfolge | == (gleich), != (ungleich) |
Boolesch | == (gleich), != (ungleich) |
Auswertung der Bedingungsliste:
- Wenn der Operator „&&“ vorhanden ist, impliziert dies, dass die Auswertung der Bedingungsliste nur dann „true“ ergibt, wenn alle Bedingungen erfüllt sind.
- Eine Bedingung stellt Filterkriterien für die Ansprüche dar. Die Auswertung der Bedingung selbst ergibt „true“, wenn mindestens ein Anspruch gefunden wird, der die Bedingung erfüllt.
- Ein Anspruch erfüllt das durch die Bedingung dargestellte Filterkriterium, wenn jede seiner Eigenschaften die entsprechenden Anspruchseigenschaftsbedingungen aus der Bedingung erfüllt.
Für die Aktionen, die in einer Richtlinie zulässig sind, gilt:
Aktionsverb | BESCHREIBUNG | Relevante Richtlinienabschnitte |
---|---|---|
permit() | Der eingehende Anspruchssatz kann zur Berechnung von issuancerules verwendet werden. Sie akzeptieren keinen Anspruch als Parameter. | authorizationrules |
deny() | Der eingehende Anspruchssatz darf nicht zur Berechnung von issuancerules verwendet werden. Akzeptiert keinen Anspruch als Parameter. | authorizationrules |
add(Anspruch) | Fügt den Anspruch dem eingehenden Anspruchssatz hinzu. Jeder Anspruch, der dem eingehenden Anspruchssatz hinzugefügt wird, steht für nachfolgende Anspruchsregeln zur Verfügung. | authorizationrules, issuancerules |
issue(Anspruch) | Sie fügen den Anspruch dem ein- und ausgehenden Anspruchssatz hinzu. | issuancerules |
issueproperty(Anspruch) | Sie fügen den Anspruch dem eingehenden Anspruchssatz und dem Eigenschaftsanspruchssatz hinzu. | issuancerules |