Поделиться через


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

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

Утверждение

Утверждением называется набор свойств, которые сгруппированы для предоставления важной информации. В службе "Аттестация 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

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