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
- Criar um novo ficheiro.
- Adicione a versão ao ficheiro.
- 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.
- 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.
- 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.
- 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.
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.
(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
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.