Anspråks- och anspråksregler

För att förstå grammatiken i anspråksregler måste du först förstå attesteringsprincipanspråk.

Anspråk

Ett anspråk är en uppsättning egenskaper grupperade tillsammans för att tillhandahålla relevant information. För Azure-attestering innehåller ett anspråk följande egenskaper:

  • typ: Ett strängvärde som representerar anspråkets typ.
  • värde: Ett booleskt värde, heltal eller strängvärde som representerar anspråkets värde.
  • valueType: Datatypen för den information som lagras i värdeegenskapen. Typer som stöds är Sträng, Heltal och Booleskt värde. Om det inte har definierats blir standardvärdet "Sträng".
  • emittent: Information om utfärdaren av anspråket. Utfärdaren är en av följande typer:
    • AttestationService: Vissa anspråk görs tillgängliga för principförfattaren av Azure Attestation, som kan användas av attesteringsprincipens författare för att skapa rätt princip.
    • AttestationPolicy: Principen (enligt administratörens definition) kan lägga till anspråk till inkommande bevis under bearbetningen. Utfärdaren i det här fallet är inställd på "AttestationPolicy".
    • CustomClaim: Attestor (klient) kan också lägga till ytterligare anspråk till attesteringsbeviset. Utfärdaren i det här fallet är inställd på "CustomClaim".

Om det inte har definierats. standardvärdet är "CustomClaim".

Anspråksregel

Den inkommande anspråksuppsättningen används av principmotorn för att beräkna attesteringsresultatet. En anspråksregel är en uppsättning villkor som används för att verifiera inkommande anspråk och vidta den definierade åtgärden.

Conditions list => Action (Claim)

Azure Attestation-utvärdering av en anspråksregel omfattar följande steg:

  • Om villkorslistan inte finns kör du åtgärden med angivet anspråk
  • Annars utvärderar du villkoren från villkorslistan.
  • Om villkorslistan utvärderas till false stoppar du. Annars fortsätter du.

Villkoren i en anspråksregel används för att avgöra om åtgärden behöver utföras. Villkorslistan är en sekvens med villkor som avgränsas med operatorn "&&".

Villkorslistan är strukturerad som:

Condition && Condition && ...

Villkoret är strukturerat som:

Identifier:[ClaimPropertyCondition, ClaimPropertyCondition,…]

Villkorslistan består av individuella villkor för olika egenskaper hos ett anspråk. Ett villkor kan ha en valfri identifierare som kan användas för att referera till de anspråk/s som uppfyller villkoret. Den här referensen kan användas i andra villkor eller i samma regels åtgärd.

Till exempel

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);

Följande är de operatorer som kan användas för att kontrollera villkoren:

Valuetype Åtgärder som stöds
Integer == (lika med), != (inte lika), <= (mindre än eller lika), < (mindre än), >= (större än eller lika), > (större än)
String == (lika med), != (inte lika med)
Booleskt == (lika med), != (inte lika med)

Utvärdering av villkorslista:

  • Förekomsten av "&&"-operatorn innebär att en villkorslista utvärderas som sann endast om alla villkor i listan utvärderas till true.
  • Ett villkor representerar filtreringskriterier för uppsättningen anspråk. Villkoret i sig sägs utvärderas till sant om det finns minst ett anspråk som uppfyller villkoret.
  • Ett anspråk sägs uppfylla filtreringskriteriet som representeras av villkoret om var och en av dess egenskaper uppfyller motsvarande krav på anspråksegenskap som finns i villkoret.

Den uppsättning åtgärder som tillåts i en princip beskrivs nedan.

Åtgärdsverb beskrivning Principavsnitt som dessa gäller för
permit() Den inkommande anspråksuppsättningen kan användas för att beräkna utfärdanderegler. Tar inte något anspråk som en parameter authorizationrules
neka() Den inkommande anspråksuppsättningen ska inte användas för att beräkna utfärdanderegler Tar inte något anspråk som en parameter authorizationrules
add(claim) Lägger till anspråket i den inkommande anspråksuppsättningen. Alla anspråk som läggs till i den inkommande anspråksuppsättningen kommer att vara tillgängliga för efterföljande anspråksregler. authorizationrules, utfärdanderegler
issue(claim) Lägger till anspråket i den inkommande och utgående anspråksuppsättningen utfärdanderegler
issueproperty(claim) Lägger till anspråket i uppsättningen inkommande anspråk och egenskapsanspråk utfärdanderegler

Nästa steg