Creación de una directiva de atestación
La directiva de atestación es un archivo cargado en Microsoft Azure Attestation. Azure Attestation ofrece la flexibilidad para cargar una directiva en un formato específico de la atestación. Como alternativa, también se puede cargar una versión codificada de la directiva, en firma web JSON. El administrador de directivas es el responsable de escribir la directiva de atestación. En la mayoría de los escenarios de atestación, el usuario de confianza actúa como administrador de directivas. El cliente que realiza la llamada de atestación envía la evidencia de la misma, que el servicio analiza y convierte en notificaciones entrantes (conjunto de propiedades, valor). Después, el servicio procesa las notificaciones, en función de lo que se defina en la directiva, y devuelve el resultado calculado.
La directiva contiene reglas que determinan los criterios de autorización, las propiedades y el contenido del token de atestación:
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)
};
Un archivo de directiva tiene tres segmentos:
- version: el número de versión de la gramática que se sigue.
Actualmente, la única versión admitida es "1.0".version=MajorVersion.MinorVersion
- authorizationrules: Una colección de las reglas de notificación que se comprobarán en primer lugar para determinar si Azure Attestation debe continuar con issuancerules. Las reglas de notificación se aplican en el orden en el que se definan.
- issuancerules: colección de las reglas de notificación que se evalúan para agregar información adicional al resultado de la atestación tal y como se defina en la directiva. Las reglas de notificación se aplican en el orden en el que se definen y también son opcionales.
Para obtener más información, consulte Reglas de notificación y notificación.
Borrador del archivo de directiva
- Cree un archivo.
- Agregue la versión al archivo.
- Agregue secciones para authorizationrules e issuancerules.
Las reglas de autorización contienen la acción deny() sin ninguna condición, para asegurarse de que no se procese ninguna regla de emisión. Como alternativa, la regla de autorización también puede contener la acción permit() para permitir el procesamiento de las reglas de emisión.version=1.0; authorizationrules { =>deny(); }; issuancerules { };
- Incorporación de reglas de notificación a las reglas de autorización
Si el conjunto de notificaciones entrantes contiene una notificación que coincida con el tipo, el valor y el emisor, la acción permit() le indica al motor de directivas que procese las issuancerules.version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { };
- Agregue reglas de notificación a issuancerules.
El conjunto de notificaciones salientes contiene una notificación con:version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { => issue(type="SecurityLevelValue", value=100); };
Las directivas complejas se pueden diseñar de manera similar. Para más información, consulte los ejemplos de directivas de atestación.[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
- Guarde el archivo.
Creación del archivo de directivas en formato de firma Web de JSON
Después de crear un archivo de directiva, para cargar una directiva en formato JSON Web Signature (JWS), siga estos pasos.
Genere el JWS, RFC7515 con la directiva (codificado en UTF-8) como la carga. El identificador de carga de la directiva codificada en Base64Url debe ser "AttestationPolicy".
JWT de ejemplo:
Header: {"alg":"none"} Payload: {"AttestationPolicy":" Base64Url (policy)"} Signature: {} JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
Firme la directiva (opcional). Azure Attestation admite los siguientes algoritmos:
- Ninguna: no firme la carga de la directiva.
- RS256: algoritmo admitido para firmar la carga de la directiva.
Cargue el JWS y valide la directiva.
- Si el archivo de directiva no tiene errores de sintaxis, el servicio acepta el archivo de directiva.
- Si el archivo de directiva contiene errores de sintaxis, el servicio rechaza el archivo de directiva.