Partilhar via


Regras de reclamação e reclamação

Para entender a gramática das regras de reivindicação, você deve primeiro entender as declarações da política de atestado.

Afirmação

Uma reivindicação é um conjunto de propriedades agrupadas para fornecer informações relevantes. Para o Atestado do Azure, uma declaração contém as seguintes propriedades:

  • type: um valor de cadeia de caracteres que representa o tipo da declaração.
  • value: um valor booleano, inteiro ou de cadeia de caracteres que representa o valor da declaração.
  • valueType: O tipo de dados das informações armazenadas na propriedade value. Os tipos suportados são String, Integer e Boolean. Se não estiver definido, o valor padrão será "String".
  • emitente: informações relativas ao emitente do crédito. O emissor é um dos seguintes tipos.
    • AttestationService: Determinadas declarações são disponibilizadas ao autor da política pelo Azure Attestation, que o autor da política de atestado pode usar para criar a política apropriada.
    • AttestationPolicy: A própria política (conforme definido pelo administrador) pode adicionar declarações às evidências recebidas durante o processamento. Neste caso, o emissor está definido como "AttestationPolicy".
    • CustomClaim: O atestado (cliente) também pode adicionar mais reivindicações à evidência do atestado. O emissor, neste caso, está definido como "CustomClaim".

Se não estiver definido, o valor padrão será "CustomClaim".

Regra de reivindicação

O conjunto de declarações de entrada é usado pelo mecanismo de política para calcular o resultado do atestado. Uma regra de declaração é um conjunto de condições usadas para validar as declarações recebidas e executar a ação definida.

Conditions list => Action (Claim)

A avaliação do Atestado do Azure de uma regra de declaração envolve as seguintes etapas:

  • Se a lista de condições não estiver presente, execute a ação com a declaração especificada. Caso contrário, avalie as condições da lista de condições.
  • Se a lista de condições for avaliada como false, pare. Caso contrário, prossiga.

As condições em uma regra de declaração são usadas para determinar se a ação precisa ser executada. A lista de condições é uma sequência de condições separadas pelo operador "&&".

A lista de condições está estruturada como:

Condition && Condition && ...

A condição está estruturada como:

Identifier:[ClaimPropertyCondition, ClaimPropertyCondition,…]

A lista de condições é composta por condições individuais sobre várias propriedades de uma reivindicação. Uma condição pode ter um identificador opcional, que pode ser usado para referir a(s) reivindicação(ões) que satisfazem a condição. Esta referência pode ser usada nas outras condições ou na ação da mesma regra.

Por exemplo

F1:[type=="OSName" , issuer=="CustomClaim"] && 
[type=="OSName" , issuer=="AttestationService", value== F1.value ] 
=> issueproperty(type="report_validity_in_minutes", value=1440);

F1:[type=="OSName" , issuer=="CustomClaim"] && 
C2:[type=="OSName" , issuer=="AttestationService", value== F1.value ] 
=> issue(claim = C2);

A seguir estão os operadores que podem ser usados para verificar as condições:

Tipo de valor Operações suportadas
Número inteiro == (igual), != (não igual), <= (menor ou igual), < (menor que), >= (maior que ou igual), > (maior que)
String == (igual), != (não igual)
Boolean == (igual), != (não igual)

Avaliação da lista de condições:

  • A presença do operador "&&" implica que uma lista de condições é avaliada como verdadeira somente se todas as condições da lista forem avaliadas como verdadeiras.
  • Uma condição representa critérios de filtragem no conjunto de declarações. Diz-se que a condição em si avalia como verdadeira se for encontrada pelo menos uma alegação que satisfaça a condição.
  • Diz-se que uma reivindicação satisfaz o critério de filtragem representado pela condição se cada uma das suas propriedades satisfizer as condições de propriedade da reivindicação correspondentes presentes na condição.

O conjunto de ações permitidas em uma política:

Verbo de ação Description Secções políticas às quais se aplicam
licença() O conjunto de declarações de entrada pode ser usado para calcular regras de emissão. Não toma qualquer reivindicação como parâmetro. regras de autorização
negar() O conjunto de declarações de entrada não deve ser usado para calcular regras de emissão Não toma nenhuma reivindicação como parâmetro regras de autorização
add(reivindicação) Adiciona a declaração ao conjunto de declarações de entrada. Qualquer declaração adicionada ao conjunto de declarações de entrada está disponível para as regras de declaração subsequentes. regras de autorização, regras de emissão
emissão(reclamação) Adiciona a declaração ao conjunto de declarações de entrada e saída. regras de emissão
issueproperty(reivindicação) Adiciona a declaração ao conjunto de declarações de entrada e propriedade. regras de emissão

Próximos passos