特定管理 > 確保資料安全性 > 安全性標籤與協定 > 配置安全性標籤 > 安全性標籤組態步驟 > 步驟 24.為安全性標籤定義物件初始化規則 - 選用
步驟 24.為安全性標籤定義物件初始化規則 - 選用
* 
如果您要定義安全性標籤的物件初始化規則,則必須按照步驟 8 所定義的方式將安全性標籤新增至 RuleConfigurableTypeAttribute.properties。如需詳細資訊,請參閱步驟 8.將安全性標籤新增至 RuleConfigurableTypeAttribute.properties - 選用
在使物件可在您的系統中使用之前,在物件上正確設定安全性標籤很重要。例如,應在最初入庫物件時設定安全性標籤,以防止將敏感資訊暴露給非預期使用者。如果在建立物件時尚未設定安全性標籤,安全性標籤會自動預設為其空值。然後物件會被取消限制,而且可由對物件具有「讀取」存取權限的任何使用者檢視。在需要非空預設安全性標籤值的地方,定義物件初始化規則是您的責任。
某些物件沒有可用於建立的使用者介面。例如,使用「從壓縮檔案上載文件」動作建立的推進通知及文件便沒有介面。如果這些物件受到限制,它們必須定義物件初始化規則,以便在建立物件時會設定適當的安全性標籤值。
物件初始化規則也可用來為使用建立使用者介面的物件類型設定預設安全性標籤值。如需可標示安全性之物件的清單,請參閱 <Windchill>/conf/exposedSecurityLabelObjects.xml 檔案,其中的 <Windchill> 是安裝 Windchill 解決方案的位置。
下列屬性條件約束可用於在新建物件視窗上設定安全性標籤值:
GetHiddenConstraint:隱藏安全性標籤與安全性標籤值,不在新建物件視窗中顯示。
GetDiscreteSetConstraint:僅在下拉清單中顯示在物件初始化規則中指定的標籤值。
* 
如果您正在使用自訂安全性標籤,使用 GetDiscreteSetConstraint 屬性條件約束設定物件初始化規則可讓您限制使用者可為自訂安全性標籤指定的值。
GetImmutableConstraint:防止使用者變更顯示的值。
GetServerAssignedConstraint:顯示標籤名稱,而不顯示標籤值。取代值顯示的文字為 「(已產生)」
GetServerPreGeneratedValue:將指定值顯示為標籤的預設值。
您可以透過「物件初始化規則管理」公用程式來建立及編輯物件初始化規則。以下為針對物件類型建立或更新物件初始化規則的一般步驟。如需有關使用「物件初始化規則管理」公用程式的詳細資訊,請參閱物件初始化規則表
1. 從您要定義其規則的前後關聯的「公用程式」頁中開啟「物件初始化規則管理」公用程式。可以在任何前後關聯階層指定物件初始化規則。這表示,您可以在網站層級前後關聯中為某一類型的所有物件設定預設規則,並在組織前後關聯或特定應用程式前後關聯 (例如產品或專案) 中指定不同規則。例如,您可以指定物件初始化規則,以使在您網站中建立的任何文件都有預設的「公司專利」安全性標籤值 (「私密」),但卻指定特定專案中的所有文件都有預設的「公司專利」安全性標籤值 (「公司最私密」)。
2. 如果存在物件類型的規則,請將該現有規則下載到您的本機電腦中,然後在文字編輯器中開啟 XML 檔案。如果您要建立新規則,PTC 建議您下載現有規則並將其另存為一個新檔案,以將其作為新規則的範本使用。
3. 編輯 XML 檔案以為安全性標籤新增所需預設值。雖然在特定前後關聯中一個物件只能有一個物件初始化規則,但該規則可以包含多個元素。
例如,若要指定 Export Control 安全性標籤應預設為「需要授權 - 國家」,且在顯示值清單的情況下此值預設為選取,請新增下列內容:
<!--set default security label values-->
<AttrValue id="EXPORT_CONTROL" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>LNS</Arg>
</AttrValue>
<AttrConstraint id="EXPORT_CONTROL" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerPreGeneratedValue"/>
</AttrConstraint>
用於預設安全性標籤值的演算法需要產生包含安全性標籤值名稱的字串,如針對 <Arg> 元素所述。例如,可以使用 wt.rule.algorithm.StringConstant 演算法。
AttrValue 元素 id 屬性的值為安全性標籤組態檔案中定義的安全性標籤名稱。
可以為您系統上的每個安全性標籤新增 AttrValue 元素。
Arg 元素應為在標準安全性標籤的 securityLabelsConfiguration.xml 檔案中指定的安全性標籤值名稱與自訂安全性標籤之安全性標籤值的外部值。
4. 將 XML 檔案儲存到您電腦上的已知位置。如有需要,您可以為檔案建立一個有意義的名稱。
5. 如果已編輯過現有規則,請在「物件初始化規則管理」表中從規則的動作清單中選取「編輯」。瀏覽到您剛剛編輯的 XML 檔案。
如果您要建立新規則,請按一下「新建物件初始化規則」圖示 。輸入物件的名稱與類型識別元,然後瀏覽到您剛剛編輯的 XML 檔案。
6. 按一下「確定」。規則將會立即生效。您無需重新啟動應用伺服器。
範例
下列範例說明如何將屬性條件約束套用至「公司專利」範例安全性標籤的安全性標籤值選取項。如需有關範例標籤及可用值的詳細資訊,請參閱公司專利 - 範例安全性標籤
所需行為:將安全性標籤設定為預設值並隱藏安全性標籤,讓使用者無法變更值。若未指定預設值,則會設定為空 (不受限制的) 值。
屬性條件約束︰GetHiddenConstraint
範例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetHiddenConstraint"/>
</AttrConstraint>
所需行為:將安全性標籤設定為預設值,並使值可見,但為唯讀。
屬性條件約束:GetServerPreGeneratedValueGetImmutableConstraint
範例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerPreGeneratedValue"/>
<Value algorithm="com.ptc.core.rule.server.impl.
GetImmutableConstraint"/>
</AttrConstraint>
所需行為:在建立物件時顯示「(已產生)」 並設定值。
屬性條件約束:GetServerAssignedConstraintGetImmutableConstraint
範例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerAssignedConstraint"/>
<Value algorithm="com.ptc.core.rule.server.impl.
GetImmutableConstraint"/>
</AttrConstraint>
所需行為:針對標準安全性標籤,將顯示在下拉清單中的值限制為指定值。針對自訂安全性標籤,僅於下拉清單中列出某些值,而非允許任何值出現在文字方塊中。
屬性條件約束︰GetDiscreteSetConstraint
範例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>NULL</Arg>
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetDiscreteSetConstraint">
<Arg>INT</Arg>
</Value>
</AttrConstraint>
所需行為:針對標準安全性標籤,在下拉清單中顯示預設值而非空 (不受限制的) 值。針對自訂安全性標籤,於文字方塊中列出預設值。
屬性條件約束︰GetServerPreGeneratedValue
範例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerPreGeneratedValue"/>
</AttrConstraint>
屬意行為:對於支援多個值的標準安全性標籤,設定預設值並使這些值處於可見但唯讀狀態。請注意,針對標準安全性標籤所定義的多個值在引數標籤中始終以逗號分隔。
屬性條件約束:GetServerPreGeneratedValueGetImmutableConstraint
範例:
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerPreGeneratedValue"/>
<Value algorithm="com.ptc.core.rule.server.impl.GetImmutableConstraint"/>
</AttrConstraint>
屬意行為:對於支援多個值的標準安全性標籤,在下拉式清單中顯示非空值 (不受限制) 的預設值。請注意,針對標準安全性標籤所定義的多個值在引數標籤中始終以逗號分隔。
屬性條件約束:GetServerPreGeneratedValue
範例:
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerPreGeneratedValue"/>
</AttrConstraint>
屬意行為:對於支援多個值的標準安全性標籤,顯示 (已產生) 並在建立物件時設定值。請注意,針對標準安全性標籤所定義的多個值在引數標籤中始終以逗號分隔。
屬性條件約束:GetServerAssignedConstraint
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>
</AttrConstraint>
這是否有幫助?