Claim en claimregels
Voor een goed begrip van de grammatica van claimregels moet u eerst Attestation-beleidsclaims begrijpen.
Claim
Een claim is een set eigenschappen die samen worden gegroepeerd om relevante informatie te bieden. Voor Azure Attestation bevat een claim de volgende eigenschappen:
- type: Een tekenreekswaarde die het type claim vertegenwoordigt.
- waarde: Een Booleaanse waarde, geheel getal of tekenreekswaarde die de waarde van de claim vertegenwoordigt.
- valueType: het gegevenstype van de informatie die is opgeslagen in de waardeeigenschap. Ondersteunde typen zijn String (tekenreeks), Integer (geheel getal) en Boolean (Booleaanse waarde). Als deze niet is gedefinieerd, is de standaardwaarde 'Tekenreeks'.
- uitgever: informatie over de uitgever van de claim. De uitgever is een van de volgende typen.
- AttestationService: Bepaalde claims worden beschikbaar gesteld aan de beleidsauteur van Azure Attestation, die de auteur van het attestation-beleid kan gebruiken om het juiste beleid te maken.
- AttestationPolicy: Het beleid (zoals gedefinieerd door de beheerder) zelf kan claims toevoegen aan het binnenkomende bewijs tijdens de verwerking. De issuer (uitgever) wordt in dit geval ingesteld op 'AttestationPolicy'.
- CustomClaim: De attestor (client) kan ook meer claims toevoegen aan het attestation-bewijs. De issuer (uitgever) wordt in dit geval ingesteld op 'CustomClaim'.
Als deze niet is gedefinieerd, is de standaardwaarde 'CustomClaim'.
Claimregel
De binnenkomende claimset wordt door de beleidsengine gebruikt om het Attestation-resultaat te berekenen. Een claimregel is een set voorwaarden die wordt gebruikt om de binnenkomende claims te valideren en de gedefinieerde actie uit te voeren.
Conditions list => Action (Claim)
Azure Attestation evalueert een claimregel met de volgende stappen:
- Als de lijst met voorwaarden niet aanwezig is, voert u de actie met de opgegeven claim uit. Evalueer anders de voorwaarden van de voorwaardenlijst.
- Stop als de voorwaardenlijst wordt geëvalueerd als onwaar. Ga anders verder.
De voorwaarden in een claimregel worden gebruikt om te bepalen of de actie moet worden uitgevoerd. De voorwaardenlijst bestaat uit een reeks voorwaarden die worden gescheiden door de operator '&&'.
De voorwaardenlijst is gestructureerd als:
Condition && Condition && ...
De voorwaarde is gestructureerd als:
Identifier:[ClaimPropertyCondition, ClaimPropertyCondition,…]
De lijst met voorwaarden bestaat uit afzonderlijke voorwaarden op verschillende eigenschappen van een claim. Een voorwaarde kan een optionele id hebben, die kan worden gebruikt om de claims te verwijzen die voldoen aan de voorwaarde. Deze verwijzing kan worden gebruikt in de andere voorwaarden of de actie van dezelfde regel.
Bijvoorbeeld
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);
De volgende operatoren kunnen worden gebruikt om voorwaarden te controleren:
ValueType | Ondersteunde bewerkingen |
---|---|
Geheel getal | == (gelijk aan), != (niet gelijk aan), <= (kleiner dan of gelijk aan), < (kleiner dan), = (groter dan of gelijk aan), >> (groter dan) |
String | == (gelijk aan), != (niet gelijk aan) |
Booleaanse waarde | == (gelijk aan), != (niet gelijk aan) |
Evaluatie van de voorwaardenlijst:
- De aanwezigheid van de operator '&&' impliceert dat een voorwaardenlijst alleen als waar wordt geëvalueerd als alle voorwaarden in de lijst waar zijn.
- Een voorwaarde vertegenwoordigt filtercriteria voor de set met claims. De voorwaarde zelf wordt geëvalueerd als waar als er ten minste één claim wordt gevonden die aan de voorwaarde voldoet.
- Een claim voldoet aan het filtercriterium van de voorwaarde als elk van de eigenschappen ervan voldoet aan de overeenkomstige claimvoorwaarden in de voorwaarde.
De set acties die zijn toegestaan in een beleid:
Actiewerkwoord | Beschrijving | Beleidssecties waarop deze van toepassing zijn |
---|---|---|
permit() | De binnenkomende claimset kan worden gebruikt om issuanceruleste berekenen. Neemt geen claim als parameter. | authorizationrules |
deny() | De binnenkomende claimset mag niet worden gebruikt voor het berekenen van issuancerules. Gebruikt geen claim als parameter | authorizationrules |
add(claim) | Voegt de claim toe aan de binnenkomende claimset. Elke claim die is toegevoegd aan de inkomende claimset, is beschikbaar voor de volgende claimregels. | authorizationrules, issuancerules |
issue(claim) | Hiermee voegt u de claim toe aan de inkomende en uitgaande claimset. | issuancerules |
issueproperty(claim) | Hiermee voegt u de claim toe aan de inkomende claimset en eigenschapsclaims. | issuancerules |