Share via


Como criar uma política de atestado

A política de atestado é um ficheiro carregado para o Microsoft Azure Attestation. Azure Attestation oferece a flexibilidade para carregar uma política num formato de política específico do atestado. Em alternativa, uma versão codificada da política, na Assinatura Web JSON, também pode ser carregada. O administrador de políticas é responsável por escrever a política de atestado. Na maioria dos cenários de atestado, a entidade confiadora atua como administrador de políticas. O cliente que faz a chamada de atestado envia provas de atestado, que o serviço analisa e converte em afirmações de entrada (conjunto de propriedades, valor). Em seguida, o serviço processa as afirmações, com base no que é definido na política, e devolve o resultado calculado.

A política contém regras que determinam os critérios de autorização, as propriedades e o conteúdo do token de atestado. Um ficheiro de política de exemplo tem o seguinte aspeto:

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

Um ficheiro de política tem três segmentos, conforme visto acima:

  • versão: a versão é o número da versão da gramática que é seguida.

    version=MajorVersion.MinorVersion	
    

    Atualmente, a única versão suportada é a versão 1.0.

  • authorizationrules: uma coleção de regras de afirmação que serão verificadas primeiro, para determinar se Azure Attestation deve prosseguir para as regras de emissão. As regras de afirmação aplicam-se pela ordem em que são definidas.

  • issuancerules: uma coleção de regras de afirmação que será avaliada para adicionar informações adicionais ao resultado do atestado, conforme definido na política. As regras de afirmação aplicam-se pela ordem em que são definidas e também são opcionais.

Veja regras de afirmação e afirmação para obter mais informações.

Redigir o ficheiro de política

  1. Criar um novo ficheiro.
  2. Adicione a versão ao ficheiro.
  3. Adicione secções para authorizationrules e issuancerules.
version=1.0;
authorizationrules
{
=>deny();
};

issuancerules
{
};

As regras de autorização contêm a ação deny() sem qualquer condição, para garantir que não são processadas regras de emissão. Em alternativa, a regra de autorização também pode conter a ação de autorização() para permitir o processamento de regras de emissão.

  1. Adicionar regras de afirmação às regras de autorização
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
};

Se o conjunto de afirmações de entrada contiver uma afirmação que corresponda ao tipo, valor e emissor, a ação permitir() indicará ao motor de política para processar as emissão.

  1. Adicione regras de afirmação a issuancerules.
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

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

O conjunto de afirmações de saída irá conter uma afirmação com:

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

As políticas complexas podem ser criadas de forma semelhante. Para obter mais informações, veja exemplos de políticas de atestado.

  1. Guarde o ficheiro.

Criar o ficheiro de política no formato JSON Web Signature

Depois de criar um ficheiro de política, para carregar uma política no formato JWS, siga os passos abaixo.

  1. Gerar o JWS, RFC 7515 com a política (codificada utf-8) como payload

    • O identificador de payload da política codificada base64Url deve ser "AttestationPolicy".

    JWT de exemplo:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. (Opcional) Assinar a política. Azure Attestation suporta os seguintes algoritmos:

    • Nenhum: não assine o payload da política.
    • RS256: Algoritmo suportado para assinar o payload da política
  3. Carregue o JWS e valide a política.

    • Se o ficheiro de política não tiver erros de sintaxe, o ficheiro de política é aceite pelo serviço.
    • Se o ficheiro de política contiver erros de sintaxe, o ficheiro de política é rejeitado pelo serviço.

Passos seguintes