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.
Atualmente, a única versão suportada é a versão 1.0.version=MajorVersion.MinorVersion
- 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
- Crie um novo arquivo.
- Adicione a versão ao arquivo.
- Adicione seções para authorizationrules e issuerules.
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.version=1.0; authorizationrules { =>deny(); }; issuancerules { };
- Adicionar regras de declaração às regras de autorização
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.version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { };
- Adicione regras de reivindicação às regras de emissão.
O conjunto de declarações de saída contém uma reivindicação com:version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { => issue(type="SecurityLevelValue", value=100); };
Políticas complexas podem ser criadas de maneira semelhante. Para obter mais informações, consulte exemplos de política de atestado.[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
- 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.
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.
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.
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.