Jak utworzyć zasady zaświadczania

Zasady zaświadczania to plik przekazany do Azure Attestation firmy Microsoft. Azure Attestation oferuje elastyczność przekazywania zasad w formacie zasad specyficznych dla zaświadczania. Alternatywnie można przekazać zakodowaną wersję zasad w podpisie internetowym JSON. Administrator zasad jest odpowiedzialny za pisanie zasad zaświadczania. W większości scenariuszy zaświadczania jednostka uzależniona pełni rolę administratora zasad. Klient tworzący wywołanie zaświadczania wysyła dowody zaświadczania, które usługa analizuje i konwertuje na oświadczenia przychodzące (zestaw właściwości, wartość). Następnie usługa przetwarza oświadczenia, na podstawie tego, co jest zdefiniowane w zasadach, i zwraca obliczony wynik.

Zasady zawierają reguły określające kryteria autoryzacji, właściwości i zawartość tokenu zaświadczania. Przykładowy plik zasad wygląda następująco:

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

Plik zasad ma trzy segmenty, jak pokazano powyżej:

  • version: wersja jest numerem wersji gramatyki, która jest obserwowana.

    version=MajorVersion.MinorVersion	
    

    Obecnie jedyną obsługiwaną wersją jest wersja 1.0.

  • authorizationrules: kolekcja reguł oświadczeń, które będą najpierw sprawdzane, aby określić, czy Azure Attestation powinny przejść do wystawiania. Reguły oświadczeń mają zastosowanie w kolejności, w której są zdefiniowane.

  • wystawianie: kolekcja reguł oświadczeń, które zostaną ocenione w celu dodania dodatkowych informacji do wyniku zaświadczania zgodnie z definicją w zasadach. Reguły oświadczeń mają zastosowanie w kolejności, w której są zdefiniowane i są również opcjonalne.

Aby uzyskać więcej informacji, zobacz reguły oświadczeń i oświadczeń .

Drafting the policy file (Opracowywanie pliku zasad)

  1. Utwórz nowy plik.
  2. Dodaj wersję do pliku.
  3. Dodaj sekcje autoryzacji i wystawiania.
version=1.0;
authorizationrules
{
=>deny();
};

issuancerules
{
};

Reguły autoryzacji zawierają akcję deny() bez żadnego warunku, aby upewnić się, że żadne reguły wystawiania nie są przetwarzane. Alternatywnie reguła autoryzacji może również zawierać akcję allow(), aby umożliwić przetwarzanie reguł wystawiania.

  1. Dodawanie reguł oświadczeń do reguł autoryzacji
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
};

Jeśli zestaw oświadczeń przychodzących zawiera oświadczenie zgodne z typem, wartością i wystawcą, akcja permit() poinformuje aparat zasad o przetworzeniu wystawiania.

  1. Dodaj reguły oświadczeń do wystawiania.
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
=> issue(type="SecurityLevelValue", value=100);
};

Zestaw oświadczeń wychodzących będzie zawierać oświadczenie z:

[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]

Złożone zasady można tworzyć w podobny sposób. Aby uzyskać więcej informacji, zobacz przykłady zasad zaświadczania.

  1. Zapisz plik.

Tworzenie pliku zasad w formacie JSON Web Signature

Po utworzeniu pliku zasad, aby przekazać zasady w formacie JWS, wykonaj poniższe kroki.

  1. Generowanie zestawu JWS, RFC 7515 przy użyciu zasad (zakodowanych w formacie utf-8) jako ładunku

    • Identyfikator ładunku dla zasad zakodowanych w formacie Base64Url powinien mieć wartość "AttestationPolicy".

    Przykładowy zestaw JWT:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. (Opcjonalnie) Podpisz zasady. Azure Attestation obsługuje następujące algorytmy:

    • Brak: nie podpisz ładunku zasad.
    • RS256: Obsługiwany algorytm podpisywania ładunku zasad
  3. Przekaż zestaw JWS i zweryfikuj zasady.

    • Jeśli plik zasad jest wolny od błędów składniowych, plik zasad jest akceptowany przez usługę.
    • Jeśli plik zasad zawiera błędy składni, plik zasad zostanie odrzucony przez usługę.

Następne kroki