Создание политики аттестации
Политика аттестации — это файл, отправленный для аттестации Microsoft Azure. Аттестация Azure обеспечивает гибкость при отправке политики в формате, специально предназначенном для аттестации. Также возможна передача закодированной версии политики, JSON Web Signature. За написание политики аттестации отвечает администратор политики. В большинстве сценариев аттестации в качестве администратора политики выступает проверяющая сторона. Клиент, выполняющий вызов аттестации, отправляет свидетельство об аттестации, которое служба анализирует и преобразует во входящие утверждения (набор свойств, значение). Затем служба обрабатывает утверждения в зависимости от того, что определено в политике, и возвращает вычисленный результат.
Политика содержит правила, определяющие критерии авторизации, свойства и содержимое маркера аттестации:
version=1.0;
authorizationrules
{
c:[type="secureBootEnabled", issuer=="AttestationService"]=> permit()
};
issuancerules
{
c:[type="secureBootEnabled", issuer=="AttestationService"]=> issue(claim=c)
c:[type="notSafeMode", issuer=="AttestationService"]=> issue(claim=c)
};
Файл политики содержит три сегмента:
- версия: версия — это номер версии грамматической грамматики, за которой следует.
Сейчас поддерживается только одна версия: 1.0.version=MajorVersion.MinorVersion
- authorizationrules: коллекция правил утверждений, которые проверяются сначала, чтобы определить, следует ли Аттестация Azure перейти к выдаче. Правила утверждений применяются в том порядке, в который они определены.
- issuancerules: коллекция правил утверждений, которые оцениваются для добавления дополнительных сведений в результат аттестации, как определено в политике. Правила утверждений применяются в порядке, который они определены, и также являются необязательными.
Дополнительные сведения см. в правилах утверждений и утверждений.
Создание файла политики
- Создайте новый файл .
- Добавьте версию в файл.
- Добавьте разделы для authorizationrules и issuancerules.
Правила авторизации содержат действие deny() без каких-либо условий, чтобы правила выпуска не обрабатывались. Кроме того, правило авторизации может также содержать действие allow(), разрешающее обработку правил выпуска.version=1.0; authorizationrules { =>deny(); }; issuancerules { };
- Добавление правил утверждения в правила авторизации
Если входящий набор утверждений содержит утверждение, соответствующее типу, значению и издателю, действие permit() сообщает обработчику политик об обработке выдачи.version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { };
- Добавьте правила утверждений в раздел issuancerules.
Исходящий набор утверждений содержит утверждение с:version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { => issue(type="SecurityLevelValue", value=100); };
Аналогичным образом можно создавать сложные политики. Дополнительные сведения см. в примерах политики аттестации.[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
- Сохраните файл.
Создание файла политики в формате JSON Web Signature
После создания файла политики для отправки политики в формате веб-подписи JSON (JWS) выполните следующие действия.
Создайте JWS, RFC7515 с политикой (в кодировке utf-8) в качестве полезных данных. Идентификатор полезных данных для политики, закодированной в Base64Url, должен быть указан как AttestationPolicy.
Пример JWT:
Header: {"alg":"none"} Payload: {"AttestationPolicy":" Base64Url (policy)"} Signature: {} JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
Подписыв политику (необязательно). Аттестация Azure поддерживает следующие алгоритмы.
- Нет. Не подписывайте полезные данные политики.
- RS256: поддерживаемый алгоритм для подписи полезных данных политики.
Отправьте JWS и проверьте политику.
- Если файл политики не является синтаксической ошибкой, служба принимает файл политики.
- Если файл политики содержит синтаксические ошибки, служба отклоняет файл политики.