Guide pratique pour créer une stratégie d’attestation
Une stratégie d’attestation est un fichier chargé sur Microsoft Azure Attestation. Azure Attestation offre la possibilité de charger une stratégie dans un format de stratégie spécifique à l’attestation. Une version encodée de la stratégie, au format JSON Web Signature, peut également être chargée. L’administrateur de stratégies est responsable de l’écriture de la stratégie d’attestation. Dans la plupart des scénarios d’attestation, la partie de confiance fait office d’administrateur de stratégies. Le client qui effectue l’appel d’attestation envoie une preuve d’attestation, que le service analyse et convertit en revendications entrantes (ensemble de propriétés, valeur). Le service traite ensuite les revendications, en fonction de ce qui est défini dans la stratégie, et retourne le résultat calculé.
La stratégie contient des règles qui déterminent les critères d’autorisation, les propriétés et le contenu du jeton d’attestation :
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 fichier de stratégie comporte trois sections :
- version : la version est le numéro de version de la grammaire qui est suivie.
La seule version prise en charge est la version « 1.0 ».version=MajorVersion.MinorVersion
- authorizationrules : collection de règles de revendication qui sont vérifiées en premier pour déterminer si Azure Attestation doit passer à la section issuancerules. Les règles de revendication s’appliquent dans l’ordre dans lequel elles sont définies.
- issuancerules : collection de règles de revendication qui sont évaluées pour ajouter des informations supplémentaires au résultat de l’attestation, tel que défini dans la stratégie. Les règles de revendication s’appliquent dans l’ordre dans lequel elles sont définies et sont également facultatives.
Pour plus d’informations, consultez Revendication et règles de revendication.
Rédaction du fichier de stratégie
- Créez un fichier.
- Ajoutez une version au fichier.
- Ajoutez des sections pour authorizationrules et issuancerules.
Les règles d’autorisation contiennent l’action deny() sans condition, afin qu’aucune règle d’émission ne soit traitée. La règle d’autorisation peut également contenir l’action permit(), afin de permettre le traitement des règles d’émission.version=1.0; authorizationrules { =>deny(); }; issuancerules { };
- Ajouter des règles de revendication aux règles d’autorisation
Si le jeu de revendications entrantes contient une revendication correspondant au type, à la valeur et à l’émetteur, l’action permit() indique au moteur de stratégie de traiter la section issuancerules.version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { };
- Ajoutez des règles de revendication à la section issuancerules.
Le jeu de revendications sortantes contient une revendication avec :version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { => issue(type="SecurityLevelValue", value=100); };
Des stratégies complexes peuvent être créées de la même manière. Pour plus d’informations, consultez Exemples de stratégie d’attestation.[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
- Enregistrez le fichier .
Création du fichier de stratégie au format JSON Web Signature
Après avoir créé un fichier de stratégie, suivez les étapes ci-dessous pour charger une stratégie au format JSON Web Signature (JWS).
Générez la signature JWS (RFC7515) avec la stratégie (encodée en utf-8) comme charge utile. L’identificateur de charge utile pour la stratégie encodée Base64Url doit être « AttestationPolicy ».
Exemple de jeton JWT :
Header: {"alg":"none"} Payload: {"AttestationPolicy":" Base64Url (policy)"} Signature: {} JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
Signez la stratégie (facultatif). Azure Attestation prend en charge les algorithmes suivants :
- Aucun : ne pas signer la charge utile de la stratégie.
- RS256 : algorithme pris en charge pour signer la charge utile de la stratégie.
Chargez la signature JWS et validez la stratégie.
- Si le fichier de stratégie est exempt d’erreurs de syntaxe, le service l’accepte.
- Si le fichier de stratégie contient des erreurs de syntaxe, le service le rejette.