宣告和宣告規則

若要瞭解宣告規則的文法,您必須先瞭解證明原則宣告。

索賠

宣告是一組群組在一起的屬性,以提供相關信息。 針對 Azure 證明,宣告包含下列屬性:

  • type:代表宣告類型的字串值。
  • value:代表宣告值的布爾值、整數或字串值。
  • valueType:儲存在 value 屬性中之資訊的數據類型。 支援的型別為 String、Integer 和 Boolean。 如果未定義,預設值會是 “String”。
  • 簽發者:宣告簽發者的相關信息。 簽發者會是下列其中一種類型:
    • AttestationService:某些宣告可透過 Azure 證明 提供給原則作者,而證明原則作者可以使用這些宣告來製作適當的原則。
    • 證明原則:原則(如系統管理員所定義)本身可以在處理期間將宣告新增至傳入辨識項。 在此情況下,簽發者會設定為 “AttestationPolicy”。
    • CustomClaim:證明者(用戶端)也可以將額外的宣告新增至證明辨識項。 在此情況下,簽發者會設定為 「CustomClaim」。。

如果未定義。 默認值會是 「CustomClaim」。。

宣告規則

原則引擎會使用傳入宣告集來計算證明結果。 宣告規則是一組用來驗證傳入宣告並採取已定義動作的條件。

Conditions list => Action (Claim)

Azure 證明 宣告規則的評估牽涉到下列步驟:

  • 如果條件清單不存在,請使用指定的宣告執行動作
  • 否則,請從條件清單中評估條件。
  • 如果條件清單評估為 false,請停止。 否則,請繼續進行。

宣告規則中的條件可用來判斷是否需要執行動作。 條件清單是以 「&&」 運算子分隔的條件序列。

條件清單的結構如下:

Condition && Condition && ...

條件的結構如下:

Identifier:[ClaimPropertyCondition, ClaimPropertyCondition,…]

條件清單是由宣告的各種屬性上的個別條件所組成。 條件可以有選擇性的標識碼,可用來參考滿足條件的宣告/秒。 此參考可用於其他條件或相同規則的動作。

例如:

F1:[type=="OSName" , issuer=="CustomClaim"] && 
[type=="OSName" , issuer=="AttestationService", value== F1.value ] 
=> issueproperty(type="report_validity_in_minutes", value=1440);

F1:[type=="OSName" , issuer=="CustomClaim"] && 
C2:[type=="OSName" , issuer=="AttestationService", value== F1.value ] 
=> issue(claim = C2);

以下是可用來檢查條件的運算子:

Valuetype 支援的作業
整數 == (equals)、!= (不等於)、 <= (小於或等於)、 < (小於)、 >= (大於或等於)、 > (大於)
String == (等於),!= (不相等)
布林值 == (等於),!= (不相等)

評估條件清單:

  • “&&&” 運算子的存在表示只有在清單中所有條件評估為 true 時,條件清單才會評估為 true。
  • 條件代表宣告集的篩選準則。 如果發現至少有一個符合條件的宣告,則條件本身會評估為 true。
  • 如果條件中的每個屬性都符合條件中存在的對應宣告屬性條件,則宣告即滿足條件所代表的篩選準則。

原則中允許的動作集如下所述。

動作動詞 描述 這些套用的原則區段
permit() 傳入宣告集可用來計算 發行rules。 不接受任何宣告做為參數 authorizationrules
deny() 傳入宣告集不應用來計算 發行rules 不採用任何宣告做為參數 authorizationrules
add(claim) 將宣告加入至傳入宣告集。 任何新增至傳入宣告集的宣告,都可供後續的宣告規則使用。 authorizationrulesissuancerules
issue(claim) 將宣告新增至傳入和傳出宣告集 issuancerules
issueproperty(claim) 將宣告新增至傳入和屬性宣告集 issuancerules

下一步