Skapa en attesteringsprincip

Attesteringsprincipen är en fil som laddas upp till Microsoft Azure Attestation. Azure Attestation ger flexibiliteten att ladda upp en princip i ett attesteringsspecifikt principformat. Du kan också ladda upp en kodad version av principen i JSON-webbsignatur. Principadministratören ansvarar för att skriva attesteringsprincipen. I de flesta attesteringsscenarier fungerar den förlitande parten som principadministratör. Klienten som gör attesteringsanropet skickar attesteringsbevis, som tjänsten parsar och konverterar till inkommande anspråk (uppsättning av egenskaper, värde). Tjänsten bearbetar sedan anspråken baserat på vad som definieras i principen och returnerar det beräknade resultatet.

Principen innehåller regler som bestämmer auktoriseringsvillkor, egenskaper och innehållet i attesteringstoken. En exempelprincipfil ser ut så här:

version=1.0;
authorizationrules
{
   c:[type="secureBootEnabled", issuer=="AttestationService"]=> permit()
};

issuancerules
{
  c:[type="secureBootEnabled", issuer=="AttestationService"]=> issue(claim=c)
  c:[type="notSafeMode", issuer=="AttestationService"]=> issue(claim=c)
};

En principfil har tre segment enligt ovan:

  • version: Versionen är versionsnumret för grammatiken som följs.

    version=MajorVersion.MinorVersion	
    

    Den enda version som stöds är för närvarande version 1.0.

  • authorizationrules: En samling anspråksregler som kontrolleras först, för att avgöra om Azure Attestation bör fortsätta att utfärda regler. Anspråksreglerna gäller i den ordning de definieras.

  • utfärdanderegler: En samling anspråksregler som ska utvärderas för att lägga till ytterligare information i attesteringsresultatet enligt definitionen i principen. Anspråksreglerna gäller i den ordning de definieras och är också valfria.

Mer information finns i anspråks- och anspråksregler .

Skapa principfilen

  1. Skapa en ny fil.
  2. Lägg till version i filen.
  3. Lägg till avsnitt för auktoriseringsregler och utfärdanderegler.
version=1.0;
authorizationrules
{
=>deny();
};

issuancerules
{
};

Auktoriseringsreglerna innehåller åtgärden neka() utan villkor för att säkerställa att inga utfärdanderegler bearbetas. Auktoriseringsregeln kan också innehålla åtgärden permit() för att tillåta bearbetning av utfärdanderegler.

  1. Lägga till anspråksregler i auktoriseringsreglerna
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
};

Om den inkommande anspråksuppsättningen innehåller ett anspråk som matchar typen, värdet och utfärdaren instruerar åtgärden permit() principmotorn att bearbeta utfärdandereglerna.

  1. Lägg till anspråksregler i utfärdanderegler.
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
=> issue(type="SecurityLevelValue", value=100);
};

Den utgående anspråksuppsättningen innehåller ett anspråk med:

[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]

Komplexa principer kan utformas på liknande sätt. Mer information finns i exempel på attesteringsprinciper.

  1. Spara filen.

Skapa principfilen i JSON Web Signature-format

När du har skapat en principfil kan du ladda upp en princip i JWS-format genom att följa stegen nedan.

  1. Generera JWS, RFC 7515 med principen (utf-8-kodad) som nyttolast

    • Nyttolastidentifieraren för den Base64Url-kodade principen ska vara "AttestationPolicy".

    Exempel på JWT:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. (Valfritt) Signera principen. Azure Attestation stöder följande algoritmer:

    • Ingen: Signera inte principens nyttolast.
    • RS256: Algoritm som stöds för att signera principens nyttolast
  3. Ladda upp JWS och verifiera principen.

    • Om principfilen är fri från syntaxfel godkänns principfilen av tjänsten.
    • Om principfilen innehåller syntaxfel avvisas principfilen av tjänsten.

Nästa steg