Утверждения и правила утверждений

Чтобы разобраться в грамматике правил утверждения, сначала важно понять принцип утверждений политики аттестации.

Утверждение

Утверждением называется набор свойств, которые сгруппированы для предоставления важной информации. В службе "Аттестация Azure" утверждение содержит следующие свойства:

  • тип: строковое значение, представляющее тип утверждения.
  • значение: логическое, целое число или строковое значение, представляющее значение утверждения.
  • valueType: тип данных сведений, хранящихся в свойстве значения. Поддерживаются следующие типы: String, Integer и Boolean. Если значение не указано, по умолчанию используется String.
  • издатель: сведения о издателе утверждения. Издатель будет одним из следующих типов:
    • АттестацияService: некоторые утверждения предоставляются автору политики Аттестация Azure, который может использоваться автором политики аттестации для создания соответствующей политики.
    • АттестацияPolicy: политика (как определено администратором) может добавлять утверждения в входящие доказательства во время обработки. В этом случае в качестве издателя будет указано значение AttestationPolicy.
    • CustomClaim: аттестация (клиент) также может добавлять дополнительные утверждения в доказательства аттестации. В этом случае в качестве издателя будет указано значение CustomClaim.

Если это значение не определено, будет использоваться значение по умолчанию (CustomClaim).

Правило утверждения

Набор входящих утверждений используется подсистемой обработки политик для вычисления результата аттестации. Правило утверждения представляет собой набор условий, которые используются для проверки входящих утверждений и выполнения определенного действия.

Conditions list => Action (Claim)

Оценка правила утверждений в службе "Аттестация Azure" включает следующие шаги:

  • Если список условий отсутствует, выполняется действие с указанным утверждением.
  • В противном случае выполняется оценка условий в списке условий.
  • Если для списка условий получено значение False, обработка останавливается. В противном случае обработка продолжается.

Условия в правиле утверждений применяются для определения, нужно ли выполнять действие. Список условий содержит последовательность условий, разделенных оператором "&&".

Список условий имеет следующую структуру:

Condition && Condition && ...

Каждое отдельное условие имеет следующую структуру:

Identifier:[ClaimPropertyCondition, ClaimPropertyCondition,…]

Список условий состоит из нескольких условий, применяемых к разным свойствам утверждения. Условие может иметь необязательный идентификатор, который можно использовать для создания ссылки на одно или несколько утверждений, соответствующих условию. Эту ссылку можно применять в других условиях или в действии этого правила.

Например.

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);

Ниже приведены операторы, которые можно использовать для проверки условий.

Тип значения Поддерживаемые операции
Целое == (равно), != (не равно), <= (меньше или равно), (меньше), <>= (больше или равно), (больше или равно), > (больше)
Строка == (равно), != (не равно)
Логический == (равно), != (не равно)

Оценка списка условий

  • Использование оператора && означает, что список условий получает значение True только в том случае, если все условия из этого списка получают значение True.
  • Каждое условие содержит критерии фильтрации для набора утверждений. Само условие получает значение True, если найдено хотя бы одно утверждение, удовлетворяющее указанному для него условию.
  • Утверждение считается удовлетворяющим критерию фильтрации, которое указано в условии, если каждое из его свойств удовлетворяет условиям для соответствующего свойства утверждения, указанным в условии.

Ниже описан набор действий, которые допускаются в политике.

Команда действия Description Разделы политики, к которым она применяется
permit() Набор входящих утверждений можно использовать для вычисления issuancerules. Не принимает утверждения в качестве параметров. authorizationrules
deny() Набор входящих утверждений не следует использовать для вычислений issuancerules. Не принимает утверждения в качестве параметров. authorizationrules
add(claim) Добавляет утверждение в набор входящих утверждений. Любое утверждение, добавленное в набор входящих утверждений, становится доступно для всех последующих правил утверждения. authorizationrules, issuancerules
issue(claim) Добавляет утверждение в наборы входящих и исходящих утверждений. issuancerules
issueproperty(claim) Добавляет утверждение в наборы входящих утверждений и утверждений свойств. issuancerules

Следующие шаги