Создание политики аттестации
Политика аттестации — это файл, отправленный для аттестации 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)
};
Файл политики содержит три сегмента, как показано выше:
version: версия — это номер версии грамматики, за которой следует.
version=MajorVersion.MinorVersion
Сейчас поддерживается только одна версия: 1.0.
authorizationrules — коллекция правил утверждений, которые будут проверяться первыми, чтобы определить, следует ли продолжать аттестацию Azure в сегменте issuancerules. Правила утверждений применяются в том порядке, в котором они определены.
issuancerules — коллекция правил утверждений, которые будут оцениваться для добавления дополнительных сведений в результат аттестации, как определено в политике. Правила утверждений являются необязательными и применяются в том порядке, в котором они определены.
Дополнительные сведения см. в разделе Утверждения и правила утверждений.
Создание файла политики
- Создайте новый файл.
- Добавьте версию в файл.
- Добавьте разделы для authorizationrules и issuancerules.
version=1.0;
authorizationrules
{
=>deny();
};
issuancerules
{
};
Правила авторизации содержат действие deny() без каких-либо условий, чтобы правила выпуска не обрабатывались. Кроме того, правило авторизации может также содержать действие allow(), разрешающее обработку правил выпуска.
- Добавьте правила утверждений в правила авторизации.
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};
issuancerules
{
};
Если входящий набор утверждений содержит утверждение, соответствующее типу, значению и издателю, действие 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
После создания файла политики, чтобы отправить политику в формате JWS, выполните следующие действия.
Создайте файл JWS (RFC 7515) с политикой (в кодировке UTF-8) в качестве полезных данных.
- Идентификатор полезных данных для политики, закодированной в Base64Url, должен быть указан как AttestationPolicy.
Пример JWT:
Header: {"alg":"none"} Payload: {"AttestationPolicy":" Base64Url (policy)"} Signature: {} JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
Подпишите политику (необязательно). Аттестация Azure поддерживает следующие алгоритмы.
- Нет — не подписывать полезные данные политики.
- RS256 — поддерживаемый алгоритм для подписи полезных данных политики.
Отправьте JWS и проверьте политику.
- Если в файле политики нет синтаксических ошибок, файл политики будет принят службой.
- Если файл политики содержит синтаксические ошибки, то служба отклонит файл политики.