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

Политика аттестации — это файл, отправленный для аттестации 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=MajorVersion.MinorVersion	
    
    Сейчас поддерживается только одна версия: 1.0.
  • authorizationrules: коллекция правил утверждений, которые проверяются сначала, чтобы определить, следует ли Аттестация Azure перейти к выдаче. Правила утверждений применяются в том порядке, в который они определены.
  • issuancerules: коллекция правил утверждений, которые оцениваются для добавления дополнительных сведений в результат аттестации, как определено в политике. Правила утверждений применяются в порядке, который они определены, и также являются необязательными.

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

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

  1. Создайте новый файл .
  2. Добавьте версию в файл.
  3. Добавьте разделы для authorizationrules и issuancerules.
    version=1.0;
    authorizationrules
    {
    =>deny();
    };
    
    issuancerules
    {
    };
    
    Правила авторизации содержат действие deny() без каких-либо условий, чтобы правила выпуска не обрабатывались. Кроме того, правило авторизации может также содержать действие allow(), разрешающее обработку правил выпуска.
  4. Добавление правил утверждения в правила авторизации
    version=1.0;
    authorizationrules
    {
        [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
    };
    
    issuancerules
    {
    };
    
    Если входящий набор утверждений содержит утверждение, соответствующее типу, значению и издателю, действие permit() сообщает обработчику политик об обработке выдачи.
  5. Добавьте правила утверждений в раздел 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"]
    
    Аналогичным образом можно создавать сложные политики. Дополнительные сведения см. в примерах политики аттестации.
  6. Сохраните файл.

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

После создания файла политики для отправки политики в формате веб-подписи JSON (JWS) выполните следующие действия.

  1. Создайте JWS, RFC7515 с политикой (в кодировке utf-8) в качестве полезных данных. Идентификатор полезных данных для политики, закодированной в Base64Url, должен быть указан как AttestationPolicy.

    Пример JWT:

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

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

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

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