Dela via


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-webbsignaturen. 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:

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:

  • 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 ska fortsätta att utfärda regler. Anspråksreglerna gäller i den ordning de definieras.
  • utfärdanderegler: En samling anspråksregler som 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.
  4. 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.
  5. 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å ett liknande sätt. Mer information finns i exempel på attesteringsprinciper.
  6. Spara filen.

Skapa principfilen i JSON-webbsignaturformat

Följ stegen nedan för att ladda upp en princip i JSON Web Signature-format (JWS) när du har skapat en principfil.

  1. Generera JWS, RFC7515 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. Signera principen (valfritt). Azure Attestation stöder följande algoritmer:

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

    • Om principfilen är fri från syntaxfel accepterar tjänsten principfilen.
    • Om principfilen innehåller syntaxfel avvisar tjänsten principfilen.

Nästa steg