Zasady zaświadczania w wersji 1.0
Właściciele wystąpień mogą używać zasad zaświadczania platformy Azure, aby zdefiniować, co należy zweryfikować podczas przepływu zaświadczania. W tym artykule przedstawiono działanie usługi zaświadczania i aparatu zasad. Każdy typ zaświadczania ma własne zasady zaświadczania. Obsługiwana gramatyka i przetwarzanie są zasadniczo takie same.
Zasady w wersji 1.0
Minimalna wersja zasad obsługiwanych przez usługę to wersja 1.0.
Przepływ usługi zaświadczania jest następujący:
- Platforma wysyła dowody zaświadczania w wywołaniu zaświadczania do usługi zaświadczania.
- Usługa zaświadczania analizuje dowody i tworzy listę oświadczeń używanych w ocenie zaświadczania. Te oświadczenia są logicznie kategoryzowane jako przychodzące zestawy oświadczeń.
- Przekazane zasady zaświadczania służą do oceny dowodów dotyczących reguł utworzonych w zasadach zaświadczania.
Zasady w wersji 1.0 mają trzy segmenty:
- version: wersja jest numerem wersji gramatyki, która jest obserwowana.
- authorizationrules: kolekcja reguł oświadczeń, które są sprawdzane jako pierwsze, aby określić, czy zaświadczanie powinno przejść do wystawiania. Użyj tej sekcji, aby odfiltrować wywołania, które nie wymagają zastosowania reguł wystawiania. W tej sekcji nie można wydać żadnych oświadczeń do tokenu odpowiedzi. Te reguły mogą służyć do zaświadczania o niepowieść.
- wystawianie: kolekcja reguł oświadczeń, które są oceniane w celu dodania informacji do wyniku zaświadczania zgodnie z definicją w zasadach. Reguły oświadczeń mają zastosowanie w kolejności, w której są zdefiniowane. Są one również opcjonalne. Te reguły mogą służyć do dodawania do zestawu oświadczeń wychodzących i tokenu odpowiedzi. Tych reguł nie można użyć do zaświadczania o niepowieść.
Następujące oświadczenia są obsługiwane przez zasady w wersji 1.0 w ramach oświadczeń przychodzących.
Poświadczanie za pomocą modułu TPM
Użyj tych oświadczeń, aby zdefiniować reguły autoryzacji w zasadach zaświadczania modułu TPM (Trusted Platform Module):
- aikValidated: wartość logiczna zawierająca informacje, jeśli certyfikat klucza tożsamości zaświadczania (AIK) został zweryfikowany lub nie.
- aikPubHash: ciąg zawierający klucz publiczny AIK base64 (SHA256) w formacie DER.
- tpmVersion: wartość całkowita zawierająca wersję główną modułu TPM.
- secureBootEnabled: wartość logiczna wskazująca, czy bezpieczny rozruch jest włączony.
- iommuEnabled:Wartość logiczna wskazująca, czy jednostka zarządzania pamięcią wejściową jest włączona.
- bootDebuggingDisabled: wartość logiczna wskazująca, czy debugowanie rozruchu jest wyłączone.
- notSafeMode: wartość logiczna wskazująca, czy system Windows nie działa w trybie awaryjnym.
- notWinPE: wartość logiczna wskazująca, czy system Windows nie jest uruchomiony w trybie WinPE.
- vbsEnabled: wartość logiczna wskazująca, czy zabezpieczenia oparte na wirtualizacji (VBS) są włączone.
- vbsReportPresent: wartość logiczna wskazująca, czy raport enklawy VBS jest dostępny.
Zaświadczenie VBS
Użyj następujących oświadczeń, aby zdefiniować reguły autoryzacji w zasadach zaświadczania VBS:
- enklawaAuthorId: wartość ciągu zawierająca zakodowaną wartość Base64Url identyfikatora autora enklawy. Jest to identyfikator autora modułu podstawowego dla enklawy.
- enlaveImageId: wartość ciągu zawierająca zakodowaną wartość Base64Url identyfikatora obrazu enklawy. Jest to identyfikator obrazu modułu podstawowego dla enklawy.
- enklawaOwnerId: wartość ciągu zawierająca zakodowaną wartość Base64Url identyfikatora właściciela enklawy. Jest to identyfikator właściciela enklawy.
- enklawaFamilyId: wartość ciągu zawierająca zakodowaną wartość Base64Url identyfikatora rodziny enklawy. Jest to identyfikator rodziny modułu podstawowego dla enklawy.
- enklawaSvn: wartość całkowita zawierająca numer wersji zabezpieczeń modułu podstawowego dla enklawy.
- enlavePlatformSvn: wartość całkowita zawierająca numer wersji zabezpieczeń platformy, która hostuje enklawę.
- enklawaFlags: oświadczenie enklawyFlags jest wartością całkowitą zawierającą flagi opisujące zasady środowiska uruchomieniowego dla enklawy.
Przykładowe zasady dla różnych typów zaświadczania
Przykładowe zasady dla modułu TPM:
version=1.0;
authorizationrules {
=> permit();
};
issuancerules
{
[type=="aikValidated", value==true]&&
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] &&
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};