Erstellen einer Nachweisrichtlinie

Bei einer Nachweisrichtlinie handelt es sich um eine Datei, die in Microsoft Azure Attestation hochgeladen wird. Mit Azure Attestation kann eine Richtlinie in einem nachweisspezifischen Richtlinienformat hochgeladen werden. Alternativ kann auch eine mit JSON Web Signature codierte Version der Richtlinie hochgeladen werden. Der Richtlinienadministrator ist für das Schreiben der Nachweisrichtlinie verantwortlich. In den meisten Nachweisszenarien fungiert die vertrauende Seite als Richtlinienadministrator. Der Client, der den Nachweisaufruf durchführt, sendet einen Nachweisbeweis. Dieser wird vom Dienst analysiert und in eingehende Ansprüche konvertiert (verschiedene Eigenschaften, Wert). Anschließend verarbeitet der Dienst die Ansprüche basierend auf der Definition in der Richtlinie und gibt das berechnete Ergebnis zurück.

Die Richtlinie enthält Regeln, die die Autorisierungskriterien, die Eigenschaften und den Inhalt des Nachweistokens bestimmen:

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)
};

Eine Richtliniendatei enthält drei Segmente:

  • version: Die Version ist die Versionsnummer der befolgten Grammatik.
    version=MajorVersion.MinorVersion	
    
    Die einzige derzeit unterstützte Version lautet „1.0“.
  • authorizationrules: eine Sammlung von Anspruchsregeln, die zuerst geprüft werden, um zu bestimmen, ob Azure Attestation mit issuancerules fortfahren soll. Die Anspruchsregeln werden in der Reihenfolge angewandt, in der sie definiert wurden.
  • issuancerules: eine Sammlung von Anspruchsregeln, die ausgewertet werden, um dem Nachweisergebnis gemäß der Definition in der Richtlinie weitere Informationen hinzuzufügen. Die Anspruchsregeln werden in der Reihenfolge angewendet, in der sie definiert wurden, und sind ebenfalls optional.

Weitere Informationen finden Sie unter Anspruch und Anspruchsregeln.

Entwerfen der Richtliniendatei

  1. Erstellen Sie eine neue Datei.
  2. Fügen Sie der Datei eine Version hinzu.
  3. Fügen Sie Abschnitte für authorizationrules und issuancerules hinzu.
    version=1.0;
    authorizationrules
    {
    =>deny();
    };
    
    issuancerules
    {
    };
    
    Die Autorisierungsregeln enthalten die Aktion „deny()“ ohne jegliche Bedingung. So wird sichergestellt, dass keine Ausstellungsregeln verarbeitet werden. Alternativ kann die Autorisierungsregel auch die Aktion „permit()“ enthalten, um die Verarbeitung von Ausstellungsregeln zuzulassen.
  4. Hinzufügen von Anspruchsregeln zu den Autorisierungsregeln
    version=1.0;
    authorizationrules
    {
        [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
    };
    
    issuancerules
    {
    };
    
    Wenn der eingehende Anspruchssatz einen Anspruch enthält, der mit Typ, Wert und Aussteller übereinstimmt, weist die permit()-Aktion die Richtlinien-Engine an, issuancerules zu verarbeiten.
  5. Fügen Sie issuancerules Anspruchsregeln hinzu.
    version=1.0;
    authorizationrules
    {
        [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
    };
    
    issuancerules
    {
        => issue(type="SecurityLevelValue", value=100);
    };
    
    Der ausgehende Anspruchssatz enthält einen Anspruch mit folgenden Angaben:
    [type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
    
    Komplexe Richtlinien können auf ähnliche Weise erstellt werden. Weitere Informationen finden Sie unter Beispiele für eine Nachweisrichtlinie.
  6. Speichern Sie die Datei .

Erstellen der Richtliniendatei im JSON Web Signature-Format

Führen Sie nach dem Erstellen einer Richtliniendatei die folgenden Schritte aus, um eine Richtlinie im JWS-Format (JSON Web Signature) hochzuladen.

  1. Generieren Sie die JWS-Datei nach RFC 7515 mit der Richtlinie (UTF-8-codiert) als Nutzlast. Die Nutzlast-ID für die Base64Url-codierte Richtlinie muss „AttestationPolicy“ lauten.

    JWT-Beispiel:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. Signieren Sie die Richtlinie (optional). Azure Attestation unterstützt die folgenden Algorithmen:

    • Keine: Signieren Sie die Richtliniennutzlast nicht.
    • RS256: unterstützter Algorithmus zum Signieren der Richtliniennutzlast.
  3. Laden Sie die JWS-Datei hoch, und überprüfen Sie die Richtlinie.

    • Enthält die Richtliniendatei keine Syntaxfehler, wird sie vom Dienst akzeptiert.
    • Enthält die Richtliniendatei Syntaxfehler, wird sie vom Dienst abgelehnt.

Nächste Schritte