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 de carregar uma política em um formato de política específico do atestado. Como alternativa, uma versão codificada da política, em JSON Web Signature, 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 atua como administrador da política. O cliente que faz a chamada de atestado envia evidências 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:

  • version: 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 declaração que são verificadas primeiro, para determinar se o Atestado do Azure deve prosseguir para regras de emissão. As regras de reclamação aplicam-se pela ordem em que são definidas.
  • regras de emissão: uma coleção de regras de declaração que são avaliadas para adicionar informações adicionais ao resultado do atestado, conforme definido na política. As regras de reivindicação aplicam-se na ordem em que são definidas e também são opcionais.

Para obter mais informações, consulte Regras de declaração e declaração.

Elaboração do dossiê político

  1. Crie um novo arquivo.
  2. Adicione a versão ao arquivo.
  3. Adicione seções para authorizationrules e issuerules.
    version=1.0;
    authorizationrules
    {
    =>deny();
    };
    
    issuancerules
    {
    };
    
    As regras de autorização contêm a ação deny() sem qualquer condição, para garantir que nenhuma regra de emissão seja processada. Alternativamente, a regra de autorização também pode conter a ação permit(), para permitir o processamento de 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, valor e emissor, a ação permit() informará ao mecanismo de política para processar as regras de emissão.
  5. Adicione regras de reivindicação às regras de emissão.
    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 reivindicação com:
    [type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
    
    Políticas complexas podem ser criadas de maneira semelhante. Para obter mais informações, consulte exemplos de política de atestado.
  6. Guarde o ficheiro.

Criando o arquivo de política no formato JSON Web Signature

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

  1. Gere o JWS, RFC7515 com policy (utf-8 codificado) como carga útil. O identificador de carga útil para a política codificada Base64Url deve ser "AttestationPolicy".

    Exemplo de JWT:

    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 a carga útil da apólice.
    • RS256: Algoritmo suportado para assinar a carga útil 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óximos passos