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 |