Como criar uma política de atestado

A política de atestado é um arquivo carregado no Atestado do Microsoft Azure. O Atestado do Azure oferece a flexibilidade para carregar uma política em um formato de política específico de atestado. Como alternativa, uma versão codificada da política, na Assinatura da Web JSON, também pode ser carregada. O administrador da política é responsável por escrever a política de atestado. Na maioria dos cenários de atestado, a terceira parte confiável funciona como o administrador da política. O cliente que faz a chamada de atestado envias a evidência de atestado, que o serviço analisa e converte em declarações de entrada (conjunto de propriedades, valor). Em seguida, o serviço processa as declarações, com base no que está definido na política, e retorna 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:

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 arquivo de política tem três segmentos:

  • versão: a versão é o número de versão da gramática seguida.
    version=MajorVersion.MinorVersion	
    
    Atualmente, a única versão compatível é 1.0.
  • authorizationrules: uma coleção de regras de declaração que são verificadas primeiro para determinar se o Atestado do Azure deve prosseguir para issuancerules. As regras de declaração se aplicam na ordem em que são definidas.
  • issuancerules: uma coleção de regras de declaração que é avaliada para adicionar outras informações ao resultado do atestado, conforme definido na política. As regras de declaração se aplicam na ordem em que são definidas e também são opcionais.

Confira Declaração e regras de declaração para obter mais informações.

Como criar a versão preliminar do arquivo de política

  1. Crie um arquivo.
  2. Adicione a versão ao arquivo.
  3. Adicione seções a authorizationrules e issuancerules.
    version=1.0;
    authorizationrules
    {
    =>deny();
    };
    
    issuancerules
    {
    };
    
    As regras de autorização contêm a ação deny() sem nenhuma condição, a fim de garantir que nenhuma regra de emissão seja processada. Como alternativa, a regra de autorização também pode conter a ação permit(), a fim de permitir o processamento das regras de emissão.
  4. Adicionar regras de declaração às regras de autorização
    version=1.0;
    authorizationrules
    {
        [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
    };
    
    issuancerules
    {
    };
    
    Se o conjunto de declarações de entrada contiver uma declaração correspondente ao tipo, ao valor e ao emissor, a ação permit() instruirá o mecanismo de política a processar as issuancerules.
  5. Adicione regras de declaração a issuancerules.
    version=1.0;
    authorizationrules
    {
        [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
    };
    
    issuancerules
    {
        => issue(type="SecurityLevelValue", value=100);
    };
    
    O conjunto de declarações de saída contém uma declaração com:
    [type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
    
    Políticas complexas podem ser criadas de maneira semelhante. Para obter mais informações, confira Exemplos de política de atestado.
  6. Salve o arquivo.

Como criar o arquivo de política no formato de Assinatura da Web JSON

Depois de criar um arquivo de política, para carregar uma política no formato JWS (JSON Web Signature), siga as etapas abaixo.

  1. Gere o JWS, RFC7515 com a política (codificada em UTF-8) como o conteúdo. O identificador de conteúdo da política codificada em Base64Url deve ser "AttestationPolicy".

    JWT de exemplo:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. Assine a política (opcional). O Atestado do Azure dá suporte aos seguintes algoritmos:

    • Nenhum: não assine o conteúdo da política.
    • RS256: algoritmo com suporte para assinar o conteúdo da política.
  3. Carregue o JWS e valide a política.

    • Se o arquivo de política estiver livre de erros de sintaxe, o serviço aceitará o arquivo de política.
    • Se o arquivo de política contiver erros de sintaxe, o serviço rejeitará o arquivo de política.

Próximas etapas