共用方式為


宣告和宣告規則

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

索賠

宣告是為提供相關資訊而群組在一起的一組屬性。 針對 Azure 證明,宣告包含下列屬性:

  • type: 代表宣告類型的字串值。
  • value: 代表宣告值的布林值、整數值或字串值。
  • valueType: 儲存在值屬性中的資訊資料類型。 支援的類型為字串、整數和布林值。 若未定義,預設值為 "String"。
  • issuer: 宣告簽發者的相關資訊。 簽發者將會是下列其中一種類型。
    • AttestationService: Azure 證明可將某些宣告提供給原則作者使用,證明原則的作者可以利用其來製作適當的原則。
    • AttestationPolicy: 原則 (由系統管理員定義) 本身可以在處理期間將宣告新增至連入證據。 在此案例中,簽發者會設定為 "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 支援的作業
整數 == (等於)、!= (不等於)、<= (小於或等於)、< (小於)、>= (大於或等於)、> (大於)
String == (等於)、!= (不等於)
布林值 == (等於)、!= (不等於)

條件清單的評估:

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

原則中所允許的動作集合:

動作的動詞命令 描述 適用的原則區段
permit() 連入宣告集可以用來計算 issuancerules。 不接受任何宣告作為參數。 authorizationrules
deny() 連入宣告集不應用來計算 issuancerules 不接受任何宣告作為參數 authorizationrules
add(claim) 將宣告新增至連入宣告集。 新增到連入宣告集的任何宣告,都會提供給後續的宣告規則使用。 authorizationrulesissuancerules
issue(claim) 將宣告新增至連入和連出宣告集。 issuancerules
issueproperty(claim) 將宣告新增至連入的和屬性宣告集。 issuancerules

下一步