Создание политики аттестации

Политика аттестации — это файл, отправленный для аттестации 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 — коллекция правил утверждений, которые будут оцениваться для добавления дополнительных сведений в результат аттестации, как определено в политике. Правила утверждений являются необязательными и применяются в том порядке, в котором они определены.

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

Создание файла политики

  1. Создайте новый файл.
  2. Добавьте версию в файл.
  3. Добавьте разделы для authorizationrules и issuancerules.
version=1.0;
authorizationrules
{
=>deny();
};

issuancerules
{
};

Правила авторизации содержат действие deny() без каких-либо условий, чтобы правила выпуска не обрабатывались. Кроме того, правило авторизации может также содержать действие allow(), разрешающее обработку правил выпуска.

  1. Добавьте правила утверждений в правила авторизации.
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
};

Если входящий набор утверждений содержит утверждение, соответствующее типу, значению и издателю, действие permit() сообщит обработчику политики, что нужно обработать раздел issuancerules.

  1. Добавьте правила утверждений в раздел 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"]

Аналогичным образом можно создавать сложные политики. Дополнительные сведения см. в примерах политики аттестации.

  1. Сохраните файл.

Создание файла политики в формате JSON Web Signature

После создания файла политики, чтобы отправить политику в формате JWS, выполните следующие действия.

  1. Создайте файл JWS (RFC 7515) с политикой (в кодировке UTF-8) в качестве полезных данных.

    • Идентификатор полезных данных для политики, закодированной в Base64Url, должен быть указан как AttestationPolicy.

    Пример JWT:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. Подпишите политику (необязательно). Аттестация Azure поддерживает следующие алгоритмы.

    • Нет — не подписывать полезные данные политики.
    • RS256 — поддерживаемый алгоритм для подписи полезных данных политики.
  3. Отправьте JWS и проверьте политику.

    • Если в файле политики нет синтаксических ошибок, файл политики будет принят службой.
    • Если файл политики содержит синтаксические ошибки, то служба отклонит файл политики.

Дальнейшие действия