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