高级自定义 > 业务逻辑自定义 > 自定义安全标签 > 自定义安全标签
  
自定义安全标签
Windchill 中提供了两种类型的安全标签:自定义安全标签和标准安全标签。对于标准和自定义安全标签,安全标签始终具有空的或未受限制的标签值,并且可以具有一个或多个其他标签值。可以对这些非空标签值进行定义,以仅允许具有该标签值许可的用户访问。具有许可的用户称为已授权的参与者。授权所有用户的安全标签只能用作信息标记。
标准安全标签有一个预定义的空值集以及在配置标准安全标签时建立的一个或多个非空值。将标准安全标签应用于对象时,用户可从下拉列表中选择空值或任一预定义的非 null 值。每个对象只能为所配置的每个标准安全标签应用一个值。如果将标准安全标签配置为具有多个值,则可以应用多个值。
自定义安全标签没有预定义的值集。将自定义安全标签应用于对象时,用户可在文本字段中输入自定义安全标签值,或将文本字段留空以指定 null 值。自定义值集可能太多或太复杂而无法预定义,也可能源自于 Windchill 外部。您可以对自定义安全标签值在文本字段中的外部显示值和存储在 Windchill 中的内部值之间的转换方式进行自定义。此外,您还可以自定义如何针对自定义或标准安全标签上的每个安全标签值确定已授权的参与者,以及如何确定允许修改每个安全标签值的参与者。
通过使用这些自定义,您可以将 Windchill 系统链接到另一个可能包含用户数据来确定是否已针对安全标签值准许参与者的系统。例如,在每次公司间交互时,您的公司可能会使用单独的非公开协议 (NDA) 与其他公司进行协作。在用户同意 NDA 后,该用户会自动添加到相应的 Windchill 组 (表示参与者在 NDA 中)。由于某些交互发生在多个公司之间,因此用户需要是每个 NDA 组中的成员,才能对协作产品中的所有 Windchill 数据具有完全访问权限。
要将此方案设置为能够与安全标签配合使用,可以实现自定义安全标签,以允许可以表示多个 NDA 组的值,而不是使用标准安全标签提供的配置值列表。您还可以使用自定义评估器来确定参与者是否是访问对象所需的每个组的成员。例如,已在您的公司和其他两个公司 (公司 A 和公司 B) 之间设置了一个协作产品。用户必须是公司 A 的 NDA 组和公司 B 的 NDA 组的成员才能访问协作产品中的对象。产品中的对象有一个名称为 Third Party Proprietary 的自定义安全标签,其值为 CompanyA,CompanyB。自定义安全标签值由可以修改安全标签值的用户以文本字符串的形式输入到用户界面中提供的文本框中。此外,自定义安全标签也可使用对象初始化规则进行设置。
* 
安全标签可能已定义为具有预定义值 CompanyA、CompanyB 和 CompanyA-CompanyB 的标准标签。但是,如果您的公司与多家公司合作,并且公司列表会发生变化,则预先定义可应用于特定对象的所有公司和 NDA 的组合可能并不可行。
Third Party Proprietary 自定义安全标签的已授权参与者使用自定义评估器类确定。当用户尝试访问应用了 Third Party Proprietary 标签的对象时,自定义评估器类会进行搜索,以确定该用户是否具有与所应用的安全标签值相关联的相应组的成员,然后返回 true 或 false 值来指定是否已针对安全标签准许该用户,以及是否可在之后访问该对象。
自定义评估器类还可用于确定哪些参与者能够修改应用于对象的安全标签值。在某些情况下,用户可能不熟悉您公司和公司 A 之间的合同,因此您不希望该用户修改对象上的 Third Party Proprietary 安全标签设置。您可能希望根据对象的生命周期状态防止用户更改对象的安全标签值。例如,您可以创建一个自定义评估器来限制对“已发布”状态对象的值的修改。在自定义或标准安全标签上使用自定义评估器类,可以指定能够修改特定安全标签值的参与者。
以下自定义可更改安全标签的工作方式:
securityLabelsConfiguration.xml 文件中包括自定义安全标签。
使用自定义转换器类在外部和内部自定义安全标签值之间进行转换。
指定安全标签值的已授权参与者,以及可使用自定义评估器类修改安全标签值的用户。
* 
自定义评估器类对于标准和自定义安全标签均适用。
* 
由于在执行自定义评估器类和转换器类时,Windchill 需要频繁调用这些自定义类中的方法,因此性能会受到影响。例如,设置对外部系统的调用时,可以考虑通过缓存返回值来提高性能,以便进行后续方法调用。
有关安全标签的信息,请参阅以下主题:
“安全标签”
配置安全标签