Attestation-beleid ontwerpen

Een Attestation-beleid is een naar Microsoft Azure Attestation geĆ¼pload bestand. Azure Attestation biedt de flexibiliteit voor het uploaden van een beleid in een beleidsindeling die specifiek is voor Attestation. U kunt ook een gecodeerde versie van het beleid in JSON Web Signature uploaden. De beleidsbeheerder is verantwoordelijk voor het schrijven van het Attestation-beleid. In de meeste scenario's fungeert de Relying Party als beleidsbeheerder. De client die de Attestation-aanroep doet, verzendt Attestation-bewijzen, die door de service worden geparseerd en omgezet in binnenkomende claims (sets van eigenschappen, waarde). De service verwerkt vervolgens de claims op basis van het gedefinieerde beleid en retourneert het berekende resultaat.

Het beleid bevat regels die de autorisatiecriteria, eigenschappen en de inhoud van de Attestation-token bepalen. Een voorbeeld van een beleidsbestand ziet er als volgt uit:

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

Een beleidsbestand heeft drie segmenten, zoals hierboven te zien is:

  • versie: de versie is het versienummer van de grammatica die wordt gevolgd.

    version=MajorVersion.MinorVersion	
    

    Momenteel wordt alleen versie 1.0 ondersteund.

  • authorizationrules (autorisatieregels): Een verzameling claimregels die eerst worden gecontroleerd, om te bepalen of Azure Attestation door moet gaan naar issuancerules. De claimregels worden toegepast in de volgorde waarin ze zijn gedefinieerd.

  • issuancerules (uitgifteregels): Een verzameling claimregels die wordt geĆ«valueerd om aanvullende informatie toe te voegen aan het Attestation-resultaat zoals gedefinieerd in het beleid. De claimregels worden toegepast in de volgorde waarin ze zijn gedefinieerd en zijn ook optioneel.

Zie claim en claimregels voor meer informatie.

Het beleidsbestand opstellen

  1. Maak een nieuw bestand.
  2. Voeg de versie toe aan het bestand.
  3. Voeg secties toe voor authorizationrules en issuancerules.
version=1.0;
authorizationrules
{
=>deny();
};

issuancerules
{
};

De autorisatieregels bevatten de actie deny() (afwijzen) zonder voorwaarde, om ervoor te zorgen dat er geen uitgifteregels worden verwerkt. De autorisatieregel kan ook de actie permit() (toestaan) bevatten, om de verwerking van uitgifteregels toe te staan.

  1. Claimregels toevoegen aan de autorisatieregels
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
};

Als de binnenkomende claimset een claim bevat die overeenkomt met het type, de waarde en de verlener, geeft de actie permit() aan dat de beleidsengine de issuancerules moet verwerken.

  1. Voeg claimregels toe aan issuancerules.
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

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

De set uitgaande claims bevat een claim met:

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

Complexe beleidsregels kunnen op een vergelijkbare manier worden ontworpen. Zie Attestation-beleidsvoorbeeldenvoor meer informatie.

  1. Sla het bestand op.

Het beleidsbestand maken in de indeling JSON Web Signature

Nadat u een beleidsbestand hebt gemaakt, volgt u de onderstaande stappen om een beleid te uploaden in de JWS-indeling.

  1. Genereer de JWS, RFC 7515 met beleid (UTF-8 gecodeerd) als de payload

    • De payload-id voor het met Base64Url gecodeerde beleid moet "AttestationPolicy" zijn.

    Voorbeeld-JWT:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. (Optioneel) Onderteken het beleid. Azure Attestation ondersteunt de volgende algoritmen:

    • Geen: De payload van het beleid niet ondertekenen.
    • RS256: Ondersteund algoritme voor het ondertekenen van de payload van het beleid
  3. Upload de JWS en valideer het beleid.

    • Als het beleidsbestand geen syntaxisfouten bevat, wordt het geaccepteerd door de service.
    • Als het beleidsbestand wel syntaxisfouten bevat, wordt het afgewezen door de service.

Volgende stappen